Commit Graph

1400 Commits

Author SHA1 Message Date
Benjamin Fleischer
81d9766547 Expose id writer not being set 2017-03-13 10:17:26 -05:00
Benjamin Fleischer
87e929a255 Merge pull request #2072 from bf4/more_precise_rubocop
Add rubocop binstub that respects file patterns
2017-03-12 16:34:14 -05:00
Benjamin Fleischer
a36b25d2db Add rubocop binstub that rspects file patterns
Best of both worlds!

(Because you can't override the default rubocop includes)

The binstub basically, lets me safely `rubocop test/foo_test.rb`
instead of `bundle exec rubocop test/foo_test.rb`

```bash
  # ~/.profile
  # https://twitter.com/tpope/status/165631968996900865
  # tl;dr `mkdir .git/safe` to add `bin` to path, e.g. `bin/rails`
  PATH=".git/safe/../../bin:$PATH"
```
2017-03-12 15:50:05 -05:00
Matt Gardner
24c0212c83 Providing caveat in documentation (#2070)
* Providing caveat in documentation

I think it'd be helpful to mention that `jsonapi_parse!` will throw an InvalidDocument error.

* Update ember-and-json-api.md
2017-03-08 18:04:35 -05:00
Benjamin Fleischer
28b8e3dd17 Bump to v0.10.5 2017-03-07 15:41:20 -06:00
Benjamin Fleischer
0b96d3544a Merge pull request #2069 from Hitabis/patch-1
Remove typo from upgrade from 0.8 to 0.10 docs [ci skip]
2017-03-07 09:26:21 -06:00
Hitabis GmbH
d48aaefdb2 Remove typo from upgrade from 0.8 to 0.10 docs
Typo ActiveMode::Serializer was changed to ActiveModel::Serializer
2017-03-07 09:36:05 +01:00
Benjamin Fleischer
ff27032720 Merge pull request #2065 from akiicat/master
Update documentation serializers.md
2017-02-27 16:54:46 -06:00
Akiicat
19f8ada4af Update serializers.md 2017-02-28 05:23:19 +08:00
Benjamin Fleischer
6fbf59fdd0 Merge pull request #2057 from jaredbeck/jsonapi-renderer-0.1.2
Update version constraint for jsonapi-renderer
2017-02-20 14:08:16 -06:00
Jared Beck
1005aa60a9 Update version constraint for jsonapi-renderer
Currently (2017-02-20) the latest version is 0.1.2.

Why not use a version constraint like '~> 0.1.1'? Because
we know of no reason why 0.1.1.beta1 cannot still be used.
That said, we have done no research looking for such a reason.
2017-02-20 15:02:51 -05:00
Benjamin Fleischer
00fc1fe3c7 Merge pull request #2055 from jaredbeck/patch-2
jsonapi is deprecated, just use jsonapi-renderer
2017-02-19 20:34:44 -06:00
Jared Beck
a081e4ffc4 jsonapi is deprecated, just use jsonapi-renderer
From the author of jsonapi:

> .. The jsonapi gem was previously just a bundle of jsonapi-serializer and jsonapi-renderer, and AMS is using only a helper class of jsonapi-renderer (namely JSONAPI::IncludeDirective). The AMS dependency was previously not properly pinned to a specific version, which I saw as a risk for many users, so I avoided updating this gem. Moreover, the name jsonapi being somewhat too generic for what this gem evolved into (namely jsonapi-rb, which bundles jsonapi-renderer and jsonapi-parser, along with serializers and deserializers, with tight integrations with various frameworks), I decided to stay away from it for fairness.
> TL;DR: Yes, people should use jsonapi-parser and jsonapi-renderer directly (or give a try to jsonapi-rb, depending on their needs).

We should also update jsonapi-renderer to the latest, currently 0.1.2, but I thought that should be a separate PR.
2017-02-17 17:01:22 -05:00
Benjamin Fleischer
81a9fbd1c3 Merge pull request #2046 from leonelgalan/bug_filter_parameters
Fixes bug in Test::Schema when using filter_parameters
2017-02-16 11:55:23 -06:00
Benjamin Fleischer
f1f8714b89 Merge pull request #2054 from bf4/remove_unneeded_model_methods
ActiveModel::Model handles the ActiveModel::Errors API
2017-02-16 11:54:51 -06:00
Benjamin Fleischer
006956e56b ActiveModel::Model handles the ActiveModel::Errors API
As pointed out in
https://github.com/rails-api/active_model_serializers/issues/2049

ActiveModel::Model already extends ActiveModel::Translation which
implements human_attribute_name and lookup_ancestors
2017-02-15 20:30:28 -06:00
Nick Ottrando
a9d533d916 Update outside_controller_use.md (#2047)
* Update outside_controller_use.md

Provide example for options parameter when serializing a resource.
2017-02-08 15:06:31 -06:00
Leonel Galan
e7c79b1f49 Move Rails.application.config into configure block for test rails app. 2017-02-06 15:52:53 -05:00
Leonel Galan
7b9d71e99b Fixes bug in Test::Schema when using filter_parameters 2017-02-06 14:58:36 -05:00
Benjamin Fleischer
58e3983e4c Merge pull request #2037 from bf4/doc_derive_attributes_from_names_and_fix_accessors
Document Model declared attributes
2017-02-02 02:29:25 -06:00
Benjamin Fleischer
2d1c68044e Merge pull request #2035 from MSathieu/patch-1
Update logging documentation
2017-01-31 09:23:41 -06:00
Benjamin Fleischer
1e47c167a1 Merge branch 'master' into patch-1 2017-01-31 09:07:52 -06:00
Benjamin Fleischer
ab824e2b58 Merge pull request #2039 from biow0lf/documentation-fixes
Documentation fixes
2017-01-31 09:06:42 -06:00
Benjamin Fleischer
28c1b5bef6 Document Model delcared attributes 2017-01-31 09:02:51 -06:00
Benjamin Fleischer
9ccdb15610 Fix JRuby build on CI, with a suggestion from Travis CI support (#2040)
* Fix JRuby build on CI, with a suggestion from Travis CI support

per
13f30e287c
per https://twitter.com/jodosha/status/823522145745731586
2017-01-26 13:52:46 -06:00
Igor Zubkov
775ad66ffd Update CHANGELOG.md 2017-01-24 15:12:25 +02:00
Igor Zubkov
3c6eb57ee9 Replace object with collection.
Replace resource with collection.
2017-01-24 13:28:50 +02:00
Igor Zubkov
d6b1b1c81f Fix typo 2017-01-24 13:27:20 +02:00
MSathieu
bd50ae9ada Update CHANGELOG.md 2017-01-23 07:24:41 +01:00
MSathieu
ab98c4a664 Update logging.md 2017-01-22 13:14:19 +01:00
MSathieu
3d44bfcf28 Update logging.md 2017-01-17 18:21:21 +01:00
MSathieu
68f8ebedf4 Update logging.md 2017-01-17 17:43:22 +01:00
Benjamin Fleischer
93ca27fe44 Merge 0-10-stable into master (to fix breaking change). (#2023)
* Merge pull request #1990 from mxie/mx-result-typo

Fix typos and capitalization in Relationship Links docs [ci skip]

* Merge pull request #1992 from ojiry/bump_ruby_versions

Run tests by Ruby 2.2.6 and 2.3.3

* Merge pull request #1994 from bf4/promote_architecture

Promote important architecture description that answers a lot of questions we get
Conflicts:
	docs/ARCHITECTURE.md

* Merge pull request #1999 from bf4/typos

Fix typos [ci skip]

* Merge pull request #2000 from berfarah/patch-1

Link to 0.10.3 tag instead of `master` branch

* Merge pull request #2007 from bf4/check_ci

Test was failing due to change in JSON exception message when parsing empty string

* Swap out KeyTransform for CaseTransform (#1993)

* delete KeyTransform, use CaseTransform

* added changelog

Conflicts:
	CHANGELOG.md

* Merge pull request #2005 from kofronpi/support-ruby-2.4

Update jsonapi runtime dependency to 0.1.1.beta6

* Bump to v0.10.4

* Merge pull request #2018 from rails-api/bump_version

Bump to v0.10.4 [ci skip]
Conflicts:
	CHANGELOG.md

* Merge pull request #2019 from bf4/fix_method_redefined_warning

Fix AMS warnings

* Merge pull request #2020 from bf4/silence_grape_warnings

Silence Grape warnings

* Merge pull request #2017 from bf4/remove_warnings

Fix mt6 assert_nil warnings

* Updated isolated tests to assert correct behavior. (#2010)

* Updated isolated tests to assert correct behavior.
* Added check to get unsafe params if rails version is great than 5

* Merge pull request #2012 from bf4/cleanup_isolated_jsonapi_renderer_tests_a_bit

Cleanup assertions in isolated jsonapi renderer tests a bit

* Add Model#attributes helper; make test attributes explicit

* Fix model attributes accessors

* Fix typos

* Randomize testing of compatibility layer against regressions

* Test bugfix

* Add CHANGELOG

* Merge pull request #1981 from groyoh/link_doc

Fix relationship links doc
Conflicts:
	CHANGELOG.md
2017-01-10 02:28:50 -06:00
Benjamin Fleischer
2a6d373cb2 Merge pull request #1981 from groyoh/link_doc
Fix relationship links doc
2017-01-09 23:57:37 -06:00
Benjamin Fleischer
3b155de03f Merge pull request #2017 from bf4/remove_warnings
Fix mt6 assert_nil warnings
2017-01-07 16:23:34 -05:00
Benjamin Fleischer
c52af54b4e Improve tests found by assert_nil 2017-01-06 23:17:43 -06:00
Benjamin Fleischer
4dfbe2747b Fix test bug found by assert_nil 2017-01-06 22:49:50 -06:00
Benjamin Fleischer
6acb4055c9 Fix MT6 assert_nil warnings 2017-01-06 22:06:23 -06:00
Benjamin Fleischer
98194cc0be Merge pull request #2020 from bf4/silence_grape_warnings
Silence Grape warnings
2017-01-06 23:05:45 -05:00
Benjamin Fleischer
7efb3629e4 Merge pull request #2019 from bf4/fix_method_redefined_warning
Fix AMS warnings
2017-01-06 23:04:21 -05:00
Benjamin Fleischer
b620c275e5 Silence Grape warnings 2017-01-06 17:18:08 -06:00
Benjamin Fleischer
ced317d827 Fix thor warning to set type: :boolean, was setting { banner: "" }
```
require "rails/generators/rails/model/model_generator"

module Rails
  module Generators
    class ResourceGenerator < ModelGenerator # :nodoc:
      include ResourceHelpers

      hook_for :resource_controller, required: true do |controller|
        invoke controller, [ controller_name, options[:actions] ]
      end

      class_option :actions, type: :array, banner: "ACTION ACTION", default: [],
                             desc: "Actions for the resource controller"

      hook_for :resource_route, required: true
    end
  end
end
```

```
 # .bundle/ruby/2.2.0/bundler/gems/rails-4c5f1bc9d45e/railties/lib/rails/generators/base.rb
      # Invoke a generator based on the value supplied by the user to the
      # given option named "name". A class option is created when this method
      # is invoked and you can set a hash to customize it.
      #
      # ==== Examples
      #
      #   module Rails::Generators
      #     class ControllerGenerator < Base
      #       hook_for :test_framework, aliases: "-t"
      #     end
      #   end
      #
      # The example above will create a test framework option and will invoke
      # a generator based on the user supplied value.
      #
      # For example, if the user invoke the controller generator as:
      #
      #   rails generate controller Account --test-framework=test_unit
      #
      # The controller generator will then try to invoke the following generators:
      #
      #   "rails:test_unit", "test_unit:controller", "test_unit"
      #
      # Notice that "rails:generators:test_unit" could be loaded as well, what
      # Rails looks for is the first and last parts of the namespace. This is what
      # allows any test framework to hook into Rails as long as it provides any
      # of the hooks above.
      #
      # ==== Options
      #
      # The first and last part used to find the generator to be invoked are
      # guessed based on class invokes hook_for, as noticed in the example above.
      # This can be customized with two options: :in and :as.
      #
      # Let's suppose you are creating a generator that needs to invoke the
      # controller generator from test unit. Your first attempt is:
      #
      #   class AwesomeGenerator < Rails::Generators::Base
      #     hook_for :test_framework
      #   end
      #
      # The lookup in this case for test_unit as input is:
      #
      #   "test_unit:awesome", "test_unit"
      #
      # Which is not the desired lookup. You can change it by providing the
      # :as option:
      #
      #   class AwesomeGenerator < Rails::Generators::Base
      #     hook_for :test_framework, as: :controller
      #   end
      #
      # And now it will look up at:
      #
      #   "test_unit:controller", "test_unit"
      #
      # Similarly, if you want it to also look up in the rails namespace, you
      # just need to provide the :in value:
      #
      #   class AwesomeGenerator < Rails::Generators::Base
      #     hook_for :test_framework, in: :rails, as: :controller
      #   end
      #
      # And the lookup is exactly the same as previously:
      #
      #   "rails:test_unit", "test_unit:controller", "test_unit"
      #
      # ==== Switches
      #
      # All hooks come with switches for user interface. If you do not want
      # to use any test framework, you can do:
      #
      #   rails generate controller Account --skip-test-framework
      #
      # Or similarly:
      #
      #   rails generate controller Account --no-test-framework
      #
      # ==== Boolean hooks
      #
      # In some cases, you may want to provide a boolean hook. For example, webrat
      # developers might want to have webrat available on controller generator.
      # This can be achieved as:
      #
      #   Rails::Generators::ControllerGenerator.hook_for :webrat, type: :boolean
      #
      # Then, if you want webrat to be invoked, just supply:
      #
      #   rails generate controller Account --webrat
      #
      # The hooks lookup is similar as above:
      #
      #   "rails:generators:webrat", "webrat:generators:controller", "webrat"
      #
      # ==== Custom invocations
      #
      # You can also supply a block to hook_for to customize how the hook is
      # going to be invoked. The block receives two arguments, an instance
      # of the current class and the class to be invoked.
      #
      # For example, in the resource generator, the controller should be invoked
      # with a pluralized class name. But by default it is invoked with the same
      # name as the resource generator, which is singular. To change this, we
      # can give a block to customize how the controller can be invoked.
      #
      #   hook_for :resource_controller do |instance, controller|
      #     instance.invoke controller, [ instance.name.pluralize ]
      #   end
      #
      def self.hook_for(*names, &block)
        options = names.extract_options!
        in_base = options.delete(:in) || base_name
        as_hook = options.delete(:as) || generator_name

        names.each do |name|
          unless class_options.key?(name)
            defaults = if options[:type] == :boolean
              {}
            elsif [true, false].include?(default_value_for_option(name, options))
              { banner: "" }
            else
              { desc: "#{name.to_s.humanize} to be invoked", banner: "NAME" }
            end

            class_option(name, defaults.merge!(options))
          end

          hooks[name] = [ in_base, as_hook ]
          invoke_from_option(name, options, &block)
        end
      end
```

```
  # .bundle/ruby/2.2.0/gems/thor-0.19.4/lib/thor/parser/option.rb:113:in `validate!'
    #   parse :foo => true
    #   #=> Option foo with default value true and type boolean
    #
    # The valid types are :boolean, :numeric, :hash, :array and :string. If none
    # is given a default type is assumed. This default type accepts arguments as
    # string (--foo=value) or booleans (just --foo).
    #
    # By default all options are optional, unless :required is given.
    def validate_default_type!
      default_type = case @default
      when nil
        return
      when TrueClass, FalseClass
        required? ? :string : :boolean
      when Numeric
        :numeric
      when Symbol
        :string
      when Hash, Array, String
        @default.class.name.downcase.to_sym
      end

      # TODO: This should raise an ArgumentError in a future version of Thor
      if default_type != @type
        warn "Expected #{@type} default value for '#{switch_name}'; got #{@default.inspect} (#{default_type})"
      end
    end
```
2017-01-06 17:16:57 -06:00
Benjamin Fleischer
40489fa8a2 Fix method redefined warning 2017-01-06 17:14:56 -06:00
Benjamin Fleischer
ef19a9e703 Merge pull request #2018 from rails-api/bump_version
Bump to v0.10.4 [ci skip]
2017-01-06 18:11:01 -05:00
Benjamin Fleischer
655c721d0d Bump to v0.10.4
Conflicts:
	CHANGELOG.md
2017-01-06 16:23:54 -06:00
Yohan Robert
91128fadb8 [skip ci] Fix relationship link documentation 2016-12-30 21:02:03 +01:00
Benjamin Fleischer
ec045a5388 Merge pull request #2012 from bf4/cleanup_isolated_jsonapi_renderer_tests_a_bit
Cleanup assertions in isolated jsonapi renderer tests a bit
2016-12-25 13:42:33 -06:00
Benjamin Fleischer
6cf84c11e0 Less strict exception matching 2016-12-24 21:29:46 -06:00
Benjamin Fleischer
4394f76b86 Cleanup assertions in isolated jsonapi renderer tests a bit 2016-12-24 21:28:15 -06:00
Ankit Shah
f246741cc5 Updated isolated tests to assert correct behavior. (#2010)
* Updated isolated tests to assert correct behavior.
* Added check to get unsafe params if rails version is great than 5
2016-12-24 20:34:07 -06:00