Commit Graph

49 Commits

Author SHA1 Message Date
Benjamin Fleischer
60ba54a3b0
Set up GitHub actions CI (#2403)
* Set up GitHub actions CI
* Remove simplecov entirely for now
* Fix deprecations
* Relax dev deps
* Address Rails 6.0 blocking hosts
* Rails 6.1 content type changed to application/json; charset=utf-8
* Test a few more rubies and rails
* Stop testing grape. We should drop grape support

```
/home/runner/work/active_model_serializers/active_model_serializers/vendor/bundle/ruby/2.6.0/gems/grape-0.19.0/lib/grape/error_formatter.rb:16: warning: in `formatters': the last argument was passed as a single Hash
/home/runner/work/active_model_serializers/active_model_serializers/vendor/bundle/ruby/2.6.0/gems/grape-0.19.0/lib/grape/error_formatter.rb:21: warning: although a splat keyword arguments here
Run options: --seed 23470

..........................................................................................................................................................................................................................................................................................................................................................................................................................................E

ActiveModelSerializers::GrapeTest#test_render_helper_passes_through_options_correctly:
NoMethodError: undefined method `[]' for nil:NilClass

bin/rails test /home/runner/work/active_model_serializers/active_model_serializers/test/grape_test.rb:126

W, [2020-12-29T02:27:48.991413 #2790]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#size defined in Hash. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method.
W, [2020-12-29T02:27:48.991505 #2790]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#size defined in Hash. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method.
W, [2020-12-29T02:27:48.991581 #2790]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#size defined in Hash. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method.
W, [2020-12-29T02:27:48.991625 #2790]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#size defined in Hash. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method.
E

Error:
ActiveModelSerializers::GrapeTest#test_implicit_formatter_handles_collections:
NoMethodError: undefined method `[]' for nil:NilClass

bin/rails test /home/runner/work/active_model_serializers/active_model_serializers/test/grape_test.rb:185

...............................................................................................................................................

Finished in 2.052241s, 280.6688 runs/s, 473.6285 assertions/s.
576 runs, 972 assertions, 0 failures, 7 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -w -I"lib:lib:test" -r./test/test_helper.rb  -w -I"/home/runner/work/active_model_serializers/active_model_serializers/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib" "/home/runner/work/active_model_serializers/active_model_serializers/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb" "test/action_controller/adapter_selector_test.rb" "test/action_controller/explicit_serializer_test.rb" "test/action_controller/json/include_test.rb" "test/action_controller/json_api/deserialization_test.rb" "test/action_controller/json_api/errors_test.rb" "test/action_controller/json_api/fields_test.rb" "test/action_controller/json_api/linked_test.rb" "test/action_controller/json_api/pagination_test.rb" "test/action_controller/json_api/transform_test.rb" "test/action_controller/lookup_proc_test.rb" "test/action_controller/namespace_lookup_test.rb" "test/action_controller/serialization_scope_name_test.rb" "test/action_controller/serialization_test.rb" "test/active_model_serializers/adapter_for_test.rb" "test/active_model_serializers/json_pointer_test.rb" "test/active_model_serializers/logging_test.rb" "test/active_model_serializers/model_test.rb" "test/active_model_serializers/test/schema_test.rb" "test/active_model_serializers/test/serializer_test.rb" "test/active_record_test.rb" "test/adapter/attributes_test.rb" "test/adapter/deprecation_test.rb" "test/adapter/json/belongs_to_test.rb" "test/adapter/json/collection_test.rb" "test/adapter/json/fields_test.rb" "test/adapter/json/has_many_test.rb" "test/adapter/json/transform_test.rb" "test/adapter/json_api/belongs_to_test.rb" "test/adapter/json_api/collection_test.rb" "test/adapter/json_api/errors_test.rb" "test/adapter/json_api/fields_test.rb" "test/adapter/json_api/has_many_explicit_serializer_test.rb" "test/adapter/json_api/has_many_test.rb" "test/adapter/json_api/has_one_test.rb" "test/adapter/json_api/include_data_if_sideloaded_test.rb" "test/adapter/json_api/json_api_test.rb" "test/adapter/json_api/linked_test.rb" "test/adapter/json_api/links_test.rb" "test/adapter/json_api/pagination_links_test.rb" "test/adapter/json_api/parse_test.rb" "test/adapter/json_api/relationship_test.rb" "test/adapter/json_api/resource_meta_test.rb" "test/adapter/json_api/toplevel_jsonapi_test.rb" "test/adapter/json_api/transform_test.rb" "test/adapter/json_api/type_test.rb" "test/adapter/json_test.rb" "test/adapter/null_test.rb" "test/adapter/polymorphic_test.rb" "test/adapter_test.rb" "test/array_serializer_test.rb" "test/cache_test.rb" "test/collection_serializer_test.rb" "test/generators/scaffold_controller_generator_test.rb" "test/generators/serializer_generator_test.rb" "test/grape_test.rb" "test/lint_test.rb" "test/logger_test.rb" "test/poro_test.rb" "test/serializable_resource_test.rb" "test/serializers/association_macros_test.rb" "test/serializers/associations_test.rb" "test/serializers/attribute_test.rb" "test/serializers/attributes_test.rb" "test/serializers/configuration_test.rb" "test/serializers/fieldset_test.rb" "test/serializers/meta_test.rb" "test/serializers/options_test.rb" "test/serializers/read_attribute_for_serialization_test.rb" "test/serializers/reflection_test.rb" "test/serializers/root_test.rb" "test/serializers/serialization_test.rb" "test/serializers/serializer_for_test.rb" "test/serializers/serializer_for_with_namespace_test.rb" ]
/home/runner/work/active_model_serializers/active_model_serializers/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/opt/hostedtoolcache/Ruby/2.6.6/x64/bin/bundle:23:in `load'
/opt/hostedtoolcache/Ruby/2.6.6/x64/bin/bundle:23:in `<main>'
Tasks: TOP => default => test
(See full trace by running task with --trace)
Error: Process completed with exit code 1.
```
2020-12-31 17:15:21 -05:00
Ritikesh
f2643c1e3b Update rails dependency to < 6.2 2020-12-09 03:12:21 +05:30
Benjamin Fleischer
bc082848e5 Relax bundler dev dep 2020-12-04 09:07:40 -06:00
Wasif Hossain
64c7fee7a8 Code cleanup (#2369)
* Lint travis.yml on https://config.travis-ci.com/explore

* Replace deprecated 'thread_safe' with 'concurrent-ruby' alternative

'thread_safe' gem is now deprecated and merged into 'concurrent-ruby'.
Ref: 52e5f373a9 (diff-42d5a45da331eaa07d2b315bd3c9e738)

* Fix deprecation warning for Ruby 2.7

https://bugs.ruby-lang.org/issues/15539


* Remove a TODO tag that is already resolved
2020-01-02 21:53:59 -05:00
Wasif Hossain
2581fe0362
Lookup fieldset using either string or symbol 2019-07-17 15:51:15 +06:00
Prem Sichanugrist
a829bc05b0 Allow AMS to run on Rails 6.0.x 2019-05-31 14:45:14 +09:00
Grey Baker
14113ba85b Slim down bundled gem by excluding test files and docs 2019-04-23 15:06:40 +01:00
Krzysztof Rybka
873cf4add2 Add frozen_string_literal pragma to ruby files 2018-12-17 16:54:56 +01:00
Benjamin Fleischer
4f9d64096b Minitest 5.11 breaks; needs something like ::Minitest::Result.from 2018-10-09 14:39:41 -05:00
Geremia Taglialatela
1c9214d041
Update version constraint for jsonapi-renderer 2017-09-19 16:57:09 +02:00
Cassidy K
729882caaa Modifying gemspec to use grape v0.19.1 2017-04-16 10:03:43 -04: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
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
Pierre-Alexandre Kofron
9eacf9f3b7 Update jsonapi runtime dependency to 0.1.1.beta6 2016-12-16 18:00:49 +01:00
L. Preston Sego III
0422a1e772 Swap out KeyTransform for CaseTransform (#1993)
* delete KeyTransform, use CaseTransform

* added changelog
2016-12-07 10:49:38 -05:00
Lucas Hosseini
cb20b957ed Pin jsonapi version. (#1955) 2016-10-25 07:43:40 -04:00
Guilherme
586ad64be7 Make railties an optional dependency 2016-09-09 16:07:08 +02:00
Alexey Dubovskoy
f15f6850de re: RuboCop: Bulk minor style corrections 2016-06-20 22:12:16 +01:00
Lucas Hosseini
f48fd2a327 Extract IncludeTree. (#1685) 2016-05-28 10:07:11 -04:00
Ben Mills
4de8d8c16a Remove default key case change message (#1752) 2016-05-26 15:15:30 -04:00
Benjamin Fleischer
b089a7277d Correct ruby/rails version requirements in gemspec 2016-05-18 10:16:05 -05:00
Robin Mehner
a3fd209612 Fix link to key transforms doc in post install message 2016-04-05 10:12:45 +02:00
Ben Mills
3498647d1a Apply key transforms to keys referenced in values 2016-04-04 10:16:04 -06:00
Benjamin Fleischer
638e8853cc Remove annoying progress reporter 2016-03-26 19:27:33 -05:00
Eric Guo
1a881e7c15 Rake 11.1.1 fix JRuby issue.
https://github.com/ruby/rake/pull/121

Revert "Revert "Safe to using rake 11.0.1 now.""

This reverts commit 82cbe66443.
2016-03-14 13:01:14 +08:00
Benjamin Fleischer
fa0bc9567d Restrict rake dep to 10.x for now; 11.x breaks 2016-03-12 23:27:10 -06:00
Benjamin Fleischer
82cbe66443 Revert "Safe to using rake 11.0.1 now." 2016-03-12 23:15:42 -06:00
Eric Guo
5927f73caf Safe to using rake 11.1.0 2016-03-12 09:46:26 +08:00
Benjamin Fleischer
4cc454d49b Setup benchmarking structure
- Setup dummy app files in `test/dummy`
- Setup dummy test server `bin/serve_dummy
  - Note:  Serializer caching can be completely disabled by passing in
  `CACHE_ON=off bin/serve_dummy start` since Serializer#_cache is only
  set at boot.
- run with
  - ./bin/bench
  - `bin/bench` etc adapted from ruby-bench-suite
  - target files are `test/dummy/bm_*.rb`. Just add another to run it.
  - benchmark cache/no cache
  - remove rake dependency that loads unnecessary files
- remove git gem dependency
  - Running over revisions to be added in subsequent PR
2016-03-09 12:42:25 -06:00
Ben Mills
7f29683cb6 Pin rake to < 11.0
https://stackoverflow.com/questions/35893584/nomethoderror-undefined-method-last-comment-after-upgrading-to-rake-11/35893625#35893625
2016-03-09 08:33:29 -07:00
Benjamin Fleischer
7b98cf3e36 Update SimpleCov; remove compatibility patch
Also, SimpleCov.start already called
   SimpleCov.pid = Process.pid
So, no need for that
2016-02-09 20:59:31 -06:00
Mauro George
5058694f4a Create assert_response_schema test helper
It is a common pattern to use JSON Schema to validate a API response[1], [2]
and [3].

This patch creates the `assert_response_schema` test helper that helps people do
this kind of validation easily on the controller tests.

[1]: https://robots.thoughtbot.com/validating-json-schemas-with-an-rspec-matcher
[2]: https://github.com/sharethrough/json-schema-rspec
[3]: https://github.com/rails-api/active_model_serializers/issues/1011#issuecomment-127608121
2016-01-15 00:45:56 -06:00
Benjamin Fleischer
fce856fc83 Merge pull request #1371 from bf4/documentation_updates
[DOCS] Refactor, update, create documentation
2015-12-20 22:30:44 -06:00
Benjamin Fleischer
dff607dc41 Merge pull request #1336 from johnhamelink/master
Grape formatter feature requested in #1258 - Rebased and Repushed (#1273)
2015-12-17 20:31:38 -06:00
Benjamin Fleischer
ce17a1b305 [DOCS] Refactor, update, create documentation [ci skip] 2015-12-14 14:38:29 -06:00
Mauro George
488370fc0b Drop support to Ruby 1.9.3 2015-12-14 14:18:29 -06:00
Julian Paas
d85a17bb33 Grape formatter feature requested in #1258
- adds handling for when the returned resource is not serializable via ams
 - fix for when resource is an Array
 - Moves grape include to grape namespace. Changes Enumerable to Array because a plain hash is enumerable.
 - Add integration test
 - Refine scope of Grape version dependency
 - Assert that the response is equal to a manually defined JSON string
 - Add single module to include in Grape projects
 - Create a Serializable Resource to test rails-api from Grape
 - Update docs
 - Fix discrepency between ActiveRecord 4.0 - 4.1 and 4.2
 - Updated Changelog
 - Remove parens from `render`, use `serializable` in all tests.
2015-12-10 10:06:40 +00:00
Benjamin Fleischer
7d707aabdc Update Gemfile/gemspec dependencies for Rails 5/master 2015-11-25 21:56:01 -06:00
João M. D. Moura
1ca73e0c33 updating version to new release 2015-09-16 12:19:44 -03:00
Benjamin Fleischer
228cc1c92a Rubocop: Consistent spacing 2015-09-03 20:51:40 -05:00
Benjamin Fleischer
e3d3d92201 Clarify AMS dependencies 2015-08-30 22:26:25 -05:00
Bruno Bacarini
e040d6fcce add action test to pagination links 2015-08-18 19:04:02 -03:00
Rodrigo Ra
7412c8d1c8 Fix transient tests failures 2015-06-26 09:33:53 -03:00
Guillermo Iguaran
771e9edccb Require only activemodel instead of full rails 2014-09-29 15:46:57 -05:00
Steve Klabnik
729a823868 Getting started: attributes.
Super super basic collection of attributes. Nothing fancy.
2014-07-09 16:16:39 -04:00
Steve Klabnik
e021281eef Remove Rails 3.2 support for now.
It is impossible to run our tests on both Rails 3.2 and Rails 4:

1. Rails 3.2 relies on test/unit, which is MiniTest 4.
2. Rails 4 relies on MiniTest 5.
3. MiniTest 5 is not compatible with test/unit.

😢 😢 😢
2014-07-05 13:12:10 -04:00
Steve Klabnik
a5107b32e2 Set up the test helper and Gemfile.
Now Travis will build across all the Rails-es.
2014-07-05 12:03:48 -04:00
Steve Klabnik
8a20377239 Set up gemspec, version, and .travis.yml 2014-07-05 00:56:57 -04:00
Steve Klabnik
c718915075 Generate a basic gem 2014-07-05 00:53:48 -04:00