Commit Graph

68 Commits

Author SHA1 Message Date
Benjamin Fleischer
8981683b9f Merge pull request #1352 from bf4/railties
Fix generators (@dgynn); load Railtie only with Rails, ensures caching configured
2016-01-18 23:24:40 -05:00
Lucas Hosseini
f2d59b20ca Update rendering.md 2016-01-17 16:58:35 +01:00
Benjamin Fleischer
d3bdc9be57 Replace load hook :active_model_serializers with :action_controller 2016-01-15 01:58:14 -06:00
Benjamin Fleischer
92e8a0a246 Merge pull request #1417 from koryteg/custom_root_docs
[DOCS] added documentation for adding custom root
2016-01-15 00:52:56 -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
e60937bc2f Remove duplicate documentation 2016-01-13 21:47:08 -06:00
Mauro George
c0b99c980c Bring back assert_serializer for controller testing
The `assert_serializer` test helper was added in 0.9.0.apha1[1],
and was not included in 0.10.

This patch brings back the `assert_serializer` test helper. This is the last
revision[2] that has the helper. The original helper was used as base.

[1]: https://github.com/rails-api/active_model_serializers/pull/596
[2]: 610aeb2e92

- Create the AssertSerializer

- Use the Test namespace

- Make the tests pass on the Rails master
  - Rails 5 does not include `assert_template` but we need this on the tests of
the helper.
  - This add the `rails-controller-testing` to keep support on `assert_template`.

- Only load test helpers in the test environment
2016-01-13 20:54:22 -06:00
Benjamin Fleischer
dde843d162 Add serialization docs PR request note for conditional attributes 2016-01-13 10:19:07 -06:00
Igor Zubkov
aa8e306782 Fix ARCHITECTURE.md 2016-01-13 17:45:18 +02:00
Kory Tegman
aeefb6a080 revised docs to reflect the feedback 2016-01-06 22:21:19 -08:00
Kory Tegman
d153dfe2cd added documentation for adding custom root 2016-01-06 15:57:49 -08:00
Benjamin Fleischer
81b1654c4e Merge pull request #1388 from bf4/restore_docs_from_older_releases
Restore docs from older releases
2016-01-03 23:10:41 -06:00
George Millo
fdbc13c2de fix broken link 2015-12-31 16:44:54 +01:00
CorainChicago
66b068c542 fix link on Getting Started
update link on Getting Started to use the relative path
2015-12-29 22:52:22 -06:00
Benjamin Fleischer
7d678844ae Add original design doc from 0.8
https://github.com/rails-api/active_model_serializers/blob/0-8-stable/DESIGN.textile
2015-12-23 09:45:45 -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
30fd9d9eb7 Merge pull request #1353 from bf4/disable_serializer_lookup
Allow users to globally opt out of automatic serializer lookup
2015-12-20 20:04:16 -06:00
Benjamin Fleischer
13c9a90fa5 Fix grammar per nullvoxpopli [ci skip] 2015-12-16 12:56:55 -06:00
Benjamin Fleischer
9c3431db9e Fix grammar per duduribeiro [ci skip] 2015-12-15 21:34:25 -06:00
Benjamin Fleischer
51af5a4b76 fix typo caught by duduribeiro 2015-12-15 21:29:39 -06:00
Benjamin Fleischer
ce17a1b305 [DOCS] Refactor, update, create documentation [ci skip] 2015-12-14 14:38: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
614e349502 Merge pull request #1301 from rails-api/jsonapi_schema
Mapping JSON API spec / schema to AMS [ci skip]
2015-12-09 17:08:57 -06:00
Benjamin Fleischer
5301112c27 Merge pull request #1312 from NullVoxPopuli/integration-docs
[DOCS] begin integration docs
2015-12-03 11:26:06 -06:00
L. Preston Sego III
2dc78c5916 add information about server side changes 2015-12-01 14:49:57 -05:00
Benjamin Fleischer
28394340d8 Add config.serializer_lookup_enabled that defaults true 2015-11-30 00:20:58 -06:00
Trek Glowacki
170db3ba88 Allow users to globally opt out of automatic lookup 2015-11-30 00:15:02 -06:00
L. Preston Sego III
21fe3abdfc make issue number a link 2015-11-27 08:43:15 -05:00
L. Preston Sego III
21873130bb update docs with integration table, and remove the grape placeholder for now 2015-11-27 08:41:29 -05:00
Benjamin Fleischer
d1c44c719d Update for review per maurogeorge feedback 2015-11-19 12:41:51 -06:00
Benjamin Fleischer
21bb306d38 Keep Logging in the ActiveModelSerializers namespace 2015-11-10 03:09:24 -06:00
Mauro George
51424963da ActiveSupport::Notifications render.active_model_serializers
Squashed commits:

Add Logging

Generates logging when renders a serializer.

Tunning performance on notify_active_support

- Use yield over block.call
- Freeze the event name string

Organize the logger architeture

* Keep only the `ActiveModel::Serializer.logger` to follow the same public API we
  have for example to config, like `ActiveModel::Serializer.config.adapter` and
  remove the `ActiveModelSerializers.logger` API.
* Define the logger on the load of the AMS, following the Rails convention on
  Railties [1], [2] and [3].

This way on non Rails apps we have a default logger and on Rails apps we will
use the `Rails.logger` the same way that Active Job do [4].

[1]: 2ad9afe4ff/activejob/lib/active_job/railtie.rb (L9-L11)
[2]: 2ad9afe4ff/activerecord/lib/active_record/railtie.rb (L75-L77)
[3]: 2ad9afe4ff/actionview/lib/action_view/railtie.rb (L19-L21)
[4]: 2ad9afe4ff/activejob/lib/active_job/logging.rb (L10-L11)

Performance tunning on LogSubscriber#render

Move the definition of locals to inside the `info` block this way the code is
executed only when the logger is called.

Remove not needed check on SerializableResource

Use SerializableResource on ActionController integration

On the ActionController was using a adapter, and since the instrumentation is
made on the SerializableResource we need to use the SerializableResource over
the adapter directly. Otherwise the logger is not called on a Rails app.

Use SerializableResource on the ActionController, since this is the main
interface to create and call a serializer.

Using always the SerializableResource we can keep the adapter code more easy to
mantain since no Adapter will need to call the instrumentation, only the
SerializableResource care about this.

Add docs about logging

Add a CHANGELOG entry

Keep the ActiveModelSerializers.logger

Better wording on Logging docs

[ci skip]

Add doc about instrumentation

[ci skip]

Use ActiveModel::Callbacks on the SerializableResource
2015-11-10 03:09:24 -06:00
Lucas Hosseini
831921ff07 Update adapters.md
Fix typos.
2015-10-31 18:51:10 +01:00
L. Preston Sego III
4cb5ad08e7 update ember docs with ember-data issue tracking urlForFindRecord / the inability to use query params on a single resource find 2015-10-30 14:10:17 -04:00
L. Preston Sego III
168ec0ec2a begin integration docs 2015-10-30 13:58:42 -04:00
L. Preston Sego III
11d8fee4d0 added docs for setting up ember for nested resources with the json api adapter
fix typo

fix intra-document links

fix spelling error in nested resources toc link

add example for post collection

Update ember-and-json-api.md

fix typo
2015-10-30 13:25:08 -04:00
Lucas Hosseini
68a751744e Update schema.md 2015-10-26 09:07:37 +01:00
Benjamin Fleischer
14e84640c1 Try to improve readability on github [ci skip] 2015-10-26 01:27:04 -05:00
Benjamin Fleischer
15c296d643 Table formatting? [ci skip] 2015-10-26 01:27:00 -05:00
Benjamin Fleischer
cf34a66527 Mapping JSON API spec / schema to AMS [ci skip] 2015-10-26 01:18:34 -05:00
Benjamin Fleischer
9b0c86546b Merge pull request #1253 from rails-api/architecture
Describe AMS architecture in the big picture
2015-10-22 10:37:46 -05:00
Benjamin Fleischer
8e1245a5b2 Merge pull request #1251 from bf4/collection_serializer
Rename ArraySerializer to CollectionSerializer for clarity
2015-10-22 10:29:02 -05:00
Lucas Hosseini
d3a8006562 Wording and typos. 2015-10-22 04:02:51 +02:00
Benjamin Fleischer
2c8b9b796d Rename ArraySerializer to CollectionSerializer for clarity 2015-10-21 16:53:26 -05:00
Benjamin Fleischer
a5defcb0aa Describe AMS architecture in the big picture [ci skip] 2015-10-21 16:19:00 -05:00
Benjamin Fleischer
200625fd02 Add image from commit strip [ci skip]
http://www.commitstrip.com/en/2014/05/07/the-truth-behind-open-source-apps/
2015-10-14 17:41:15 -05:00
Lucas Hosseini
9147469842 Extend serializer lookup to the parent serializer. 2015-10-08 18:23:54 +02:00
Benjamin Fleischer
9d7da8afc4 Add support for top level jsonapi member. 2015-10-01 21:22:49 -05:00
Benjamin Fleischer
c6f8d0f5f2 Rename FlattenJson to Attributes (allow plural adapter names) 2015-09-18 10:17:02 -05:00
Benjamin Fleischer
0091be89f8 Consistently refer to the 'JSON API' and the 'JsonApi' adapter 2015-09-17 15:22:28 -05:00