Commit Graph

349 Commits

Author SHA1 Message Date
Santiago Pastorino and Adrian Mugnolo
8fa252b4fd Make sure generator hooks get run
Use Rails::Engine#load_generators instead of require +
Rails::Generators::configure!.
2013-12-30 12:03:51 -02:00
Adrian Mugnolo
1c9ab8fd24 Drop reference to self 2013-12-30 10:57:39 -02:00
Adrian Mugnolo and Santiago Pastorino
0f4547eb77 Rename method to serializable_object 2013-12-17 16:13:50 -02:00
Adrian Mugnolo and Santiago Pastorino
f14f931957 Clean up HasOne array wrapping logic
Introduce private _wrap_in_array option for now.
2013-12-17 15:42:35 -02:00
Adrian Mugnolo and Santiago Pastorino
28fbb62ec4 Avoid unneeded logic 2013-12-17 13:14:39 -02:00
Santiago Pastorino
80d9fb56d2 Merge pull request #452 from plexus/has_one_each_serializer_fix
Using a HasOne association twice raises an exception (Undefined method `map')
2013-12-16 17:49:26 -08:00
Adrian Mugnolo and Santiago Pastorino
700e6b83c1 Serializers now inherit root 2013-12-16 17:55:50 -02:00
Adrian Mugnolo and Santiago Pastorino
115de49004 Remove explicit reference to self 2013-12-16 17:27:49 -02:00
Santiago Pastorino
adee76181f Merge pull request #468 from stas/attrs_and_assoc_inheritance
Serializers now inherit attributes and associations.
2013-12-16 11:14:16 -08:00
Santiago Pastorino
5c00ce0443 Merge pull request #451 from plexus/embed_in_root_merge
embed_in_root only returns the associated objects of a single instance
2013-12-16 10:39:53 -08:00
Stas SUȘCOV
0febd8f628 Serializers now inherit attributes and associations. 2013-12-11 17:59:32 +02:00
Jason Truluck
a110df6caf Add @options back into serializers to maintain the functionality of render :json as noted in the docs
This functionality used to exist in v0.8.1. This adds the ability to
pass other options that will be usable in the serializer via the
options accessor.

This works by adding an attr_accessor for options so it is available
and is set by the remaining options in the provided options hash during
initialization.
2013-11-12 12:57:31 -05:00
Arne Brasseur
8c3866532a Fixes a bug in the HasOne association where serializing twice in a row causes
an exception.
2013-11-11 15:30:46 +01:00
Arne Brasseur
1db96ec7a9 When using embed: :ids ; embed_in_root: true, and serializing multiple objects,
only the associated objects of the last object in the collection will actually
show up in the serialized data.

For example, if you serialize a collection of two posts, each containing one or
more comments, only the comments of the last post show up. The reason is a
Hash#merge wich overwrites the array rather than appending to it.

This commit fixes this by merging the collection arrays, rather than the top-level
hashes.
2013-11-11 14:30:34 +01:00
Todd Bealmear
e0a564aa68 Fixed Rails 3 compatibility. 2013-11-04 17:45:36 -08:00
Todd Bealmear
f10f72c763 Fixed Rails 4 Controller Scaffold Generator. 2013-11-04 17:31:19 -08:00
Santiago Pastorino
99677c0c58 Pass scope through to associations via @lastobelus
Closes #433
2013-11-04 10:48:19 -02:00
Santiago Pastorino
60b5901af8 Don't treat has_one associations embed objects as an array
Closes #442

Thanks @arrtchiu for reporing and giving a test case
2013-11-04 10:09:29 -02:00
Santiago Pastorino
ef1ec65ae7 Make DefaultSerializer include AM::Serializable so embedded_in_root_associations is always defined also there 2013-11-01 22:35:56 -02:00
Santiago Pastorino
882dbafa7e embedded_in_root_associations is always defined 2013-11-01 21:37:49 -02:00
Santiago Pastorino
66f9256534 Embed objects should return singular and not wrap in array
Closes #437
2013-11-01 14:22:52 -02:00
Santiago Pastorino
d3d6c98148 Make ArraySerializer reuse Serializer embedded_in_root_associations code 2013-10-31 17:28:39 -02:00
Santiago Pastorino
5598bb0f79 Make Associations in root work with ArraySerializer
Closes #414
2013-10-31 17:27:36 -02:00
Santiago Pastorino
85a9c185ca Move responsibility of setting a serializer class and building a serializer for an association to the association class 2013-10-31 16:45:00 -02:00
Santiago Pastorino
616938dc63 Improve build_json_serializer readability a bit 2013-10-30 23:37:36 -02:00
Santiago Pastorino
4d4b820cbe has_one returns arrays with roots pluralized 2013-10-30 15:26:13 -02:00
Santiago Pastorino
1eea008336 Split root construction and serialization logic 2013-10-29 19:39:27 -02:00
Santiago Pastorino
49ab359a34 Support passing a custom ArraySerializer for has_many associations
Thanks @phoet

Closes #316
2013-10-29 00:26:45 -02:00
Santiago Pastorino
d5308b4d0b Remove old unneeded code 2013-10-26 03:01:17 -02:00
Santiago Pastorino
1eb09476ef Revert "Merge pull request #422 from marclove/reduce-serializer-code-complexity"
This reverts commit 449849516b, reversing
changes made to e103569c22.

Conflicts:
	lib/active_model/serializer.rb
2013-10-26 01:19:15 -02:00
Arthur Neves
303ac21428 Small refactoring 2013-10-25 19:58:06 -04:00
Marc Love
5ac6e626b5 Reduce complexity and duplication; make accessor definition more explicit 2013-10-25 15:33:24 -07:00
Santiago Pastorino
439643ba5a Fix the stupid previous commit 2013-10-24 19:23:50 -02:00
Santiago Pastorino
b44e1af5dd Move synchronize to setup method and make CONFIG private 2013-10-24 17:42:20 -02:00
Santiago Pastorino
dc33dac56b This is not being used 2013-10-24 16:57:42 -02:00
Santiago Pastorino
dfdc292e35 Align = 2013-10-24 16:32:18 -02:00
Arthur Neves
860acad9af s/side_load/embed_in_root 2013-10-24 14:12:02 -04:00
Santiago Pastorino
2b70503896 Add ActiveModel::SerializerSupport 2013-10-24 16:09:00 -02:00
Santiago Pastorino
cef6f85f44 Deprecate include in favor of side_load 2013-10-24 15:09:26 -02:00
Santiago Pastorino
48db253765 embed_in_root is now side_load 2013-10-24 14:57:41 -02:00
Santiago Pastorino
5c6541145a Allow to embed nothing but still side loading
Closes #361, #399, #401
2013-10-24 13:24:49 -02:00
Santiago Pastorino
df5ef33ae6 Allow to turn off ams
Closes #378

You can define now

```
def default_serializer_options
  { serializer: false }
end
```
2013-10-23 20:34:34 -02:00
Łukasz Strzałkowski
d46584af40 Wrap config's data hash in mutex 2013-10-21 20:27:01 +00:00
Arthur Neves
05ec509e1c Use ActiveSupport::Deprecation.warn instead of warn 2013-10-21 15:02:39 -04:00
Santiago Pastorino
7dcef9f0f5 Rename Settings to Config and use accessors to configure things 2013-10-21 16:23:35 -02:00
Arthur Neves
84801301b9 Add deprecation message to .embed method 2013-10-21 13:08:07 -04:00
Arthur Neves
41f1855056 Add accessors to settings class 2013-10-21 13:05:39 -04:00
Santiago Pastorino
4ab16381bd Bump version to 0.9.0.pre 2013-10-18 17:49:22 -02:00
Santiago Pastorino
73774649e3 Implement Generators 2013-10-18 17:49:21 -02:00
Santiago Pastorino
91f9317713 There's no need to define read_attribute_for_serialization in the Serializer class 2013-10-18 17:49:21 -02:00