active_model_serializers/CHANGELOG.md
Ian C. Anderson 2423ca4999 Support key transformation for Attributes adapter (#1889)
The `:attributes` adapter is the default one, but it did not support
key transformation. This was very surprising behavior, since the
"Configuration Options" page in the guides didn't mention that this
behavior was not supported by the attributes adapter.

This commit adds key transform support to the attributes adapter, and
adds documentation about the default transform for the attributes
adapter (which is `:unaltered`).

This commit also handles arrays when transforming keys, which was needed
in the case where you're serializing a collection with the Attributes
adapter. With the JSON adapter, it was always guaranteed to pass a hash
to the KeyTransform functions because of the top-level key. Since there
is no top-level key for the Attributes adapter, the return value could
be an array.
2016-08-25 15:21:27 -04:00

49 KiB

0.10.x

master (unreleased)

Breaking changes:

Features:

  • #1791 (@bf4, @youroff, @NullVoxPopuli)
    • Added jsonapi_namespace_separator config option.
  • #1889 Support key transformation for Attributes adapter (@iancanderson, @danbee)

Fixes:

  • #1833 Remove relationship links if they are null (@groyoh)
  • #1881 ActiveModelSerializers::Model correctly works with string keys (@yevhene)

Misc:

  • #1839 fields tests demonstrating usage for both attributes and relationships. (@NullVoxPopuli)

  • #1878 Cache key generation for serializers now uses ActiveSupport::Cache.expand_cache_key instead of Array#join by default and is also overridable. This change should be backward-compatible. (@markiz)

v0.10.2 (2016-07-05)

Fixes:

  • #1814 Ensuring read_multi works with fragment cache
  • #1848 Redefine associations on inherited serializers. (@EhsanYousefi)

Misc:

  • #1808 Adds documentation for fields option. (@luizkowalski)

v0.10.1 (2016-06-16)

Features:

  • #1668 Exclude nil and empty links. (@sigmike)
  • #1426 Add ActiveModelSerializers.config.default_includes (@empact)

Fixes:

  • #1754 Fixes #1759, Grape integration, improves serialization_context missing error message on pagination. Document overriding CollectionSerializer#paginated?. (@bf4) Moved serialization_context creation to Grape formatter, so resource serialization works without explicit calls to the render helper method. Added Grape collection tests. (@onomated)
  • #1287 Pass fields options from adapter to serializer. (@vasilakisfil)
  • #1710 Prevent association loading when include_data option is set to false. (@groyoh)
  • #1747 Improve jsonapi mime type registration for Rails 5 (@remear)

Misc:

  • #1734 Adds documentation for conditional attribute (@lambda2)
  • #1685 Replace IncludeTree with IncludeDirective from the jsonapi gem.

v0.10.0 (2016-05-17)

Breaking changes:

  • #1662 Drop support for Rails 4.0 and Ruby 2.0.0. (@remear)

Features:

  • #1677 Add assert_schema, assert_request_schema, assert_request_response_schema. (@bf4)
  • #1697 Include actual exception message with custom exceptions; Test::Schema exceptions are now Minitest::Assertions. (@bf4)
  • #1699 String/Lambda support for conditional attributes/associations (@mtsmfm)
  • #1687 Only calculate _cache_digest (in cache_key) when skip_digest is false. (@bf4)
  • #1647 Restrict usage of serializable_hash options to the ActiveModel::Serialization and ActiveModel::Serializers::JSON interface. (@bf4)

Fixes:

  • #1700 Support pagination link for Kaminari when no data is returned. (@iamnader)
  • #1726 Adds polymorphic option to association definition which includes association type/nesting in serializer (@cgmckeever)

Misc:

  • #1673 Adds "How to" guide on using AMS with POROs (@DrSayre)
  • #1730 Adds documentation for overriding default serializer based on conditions (@groyoh/@cgmckeever)

v0.10.0.rc5 (2016-04-04)

Breaking changes:

  • #1645 Changed :dashed key transform to :dash. (@remear)
  • #1574 Default key case for the JsonApi adapter changed to dashed. (@remear)

Features:

  • #1645 Transform keys referenced in values. (@remear)
  • #1650 Fix serialization scope options scope, scope_name take precedence over serialization_scope in the controller. Fix tests that required tearing down dynamic methods. (@bf4)
  • #1644 Include adapter name in cache key so that the same serializer can be cached per adapter. (@bf4 via #1346 by @kevintyll)
  • #1642 Prefer object.cache_key over the generated cache key. (@bf4 via #1346 by @kevintyll)
  • #1637 Make references to 'ActionController::Base.cache_store' explicit in order to avoid issues when application controllers inherit from 'ActionController::API'. (@ncuesta)
  • #1633 Yield 'serializer' to serializer association blocks. (@bf4)
  • #1616 SerializableResource handles no serializer like controller. (@bf4)
  • #1618 Get collection root key for empty collection from explicit serializer option, when possible. (@bf4)
  • #1574 Provide key translation. (@remear)
  • #1494 Make serializers serializalbe (using the Attributes adapter by default). (@bf4)
  • #1550 Add Rails url_helpers to SerializationContext for use in links. (@remear, @bf4)
  • #1004 JSON API errors object implementation.
    • Only implements detail and source as derived from ActiveModel::Error
    • Provides checklist of remaining questions and remaining parts of the spec.
  • #1515 Adds support for symbols to the ActiveModel::Serializer.type method. (@groyoh)
  • #1504 Adds the changes missing from #1454 and add more tests for resource identifier and relationship objects. Fix association block with link returning data: nil.(@groyoh)
  • #1372 Support cache_store.read_multi. (@LcpMarvel)
  • #1018 Add more tests and docs for top-level links. (@leandrocp)
  • #1454 Add support for relationship-level links and meta attributes. (@beauby)
  • #1340 Add support for resource-level meta. (@beauby)

Fixes:

  • #1657 Add missing missing require "active_support/json". (@andreaseger)
  • #1661 Fixes read_attribute_for_serialization not seeing methods defined in serialization superclass (#1653, #1658, #1660), introduced in #1650. (@bf4)
  • #1651 Fix deserialization of nil relationships. (@NullVoxPopuli)
  • #1480 Fix setting of cache_store from Rails configuration. (@bf4) Fix unintentional mutating of value in memory cache store. (@groyoh)
  • #1622 Fragment cache changed from per-record to per-serializer. Now, two serializers that use the same model may be separately cached. (@lserman)
  • #1478 Cache store will now be correctly set when serializers are loaded before Rails initializes. (@bf4)
  • #1570 Fixed pagination issue with last page size. (@bmorrall)
  • #1516 No longer return a nil href when only adding meta to a relationship link. (@groyoh)
  • #1458 Preserve the serializer type when fragment caching. (@bdmac)
  • #1477 Fix fragment_cached? method to check if caching. (@bdmac)
  • #1501 Adds tests for SerializableResource::use_adapter?,doc typos (@domitian)
  • #1488 Require ActiveSupport's string inflections (@nate00)

Misc:

  • #1608 Move SerializableResource to ActiveModelSerializers (@groyoh)
  • #1602 Add output examples to Adapters docs (@remear)
  • #1557 Update docs regarding overriding the root key (@Jwan622)
  • #1471 [Cleanup] Serializer caching is its own concern. (@bf4)
  • #1482 Document JSON API implementation defs and progress in class. (@bf4)
  • #1551 Added codebeat badge (@korzonek)
  • #1527 Refactor fragment cache class. (@groyoh)
  • #1560 Update rubocop and address its warnings. (@bf4 @groyoh)
  • #1545 Document how to pass arbitrary options to the serializer (@CodedBeardedSignedTaylor)
  • #1496 Run all branches against JRuby on CI (@nadavshatz)
  • #1559 Add a deprecation DSL. (@bf4 @groyoh)
  • #1543 Add the changes missing from #1535. (@groyoh)
  • #1535 Move the adapter and adapter folder to active_model_serializers folder and changes the module namespace. (@domitian @bf4)
  • #1497 Add JRuby-9000 to appveyor.yml(@corainchicago)
  • #1420 Adds tests and documentation for polymorphism(@marcgarreau)

v0.10.0.rc4 (2016-01-27)

Breaking changes:

  • #1360 #1369 Drop support for Ruby 1.9.3 (@karaAJC, @maurogeorge)
  • #1131 Remove Serializer#root_name (@beauby)
  • #1138 Introduce Adapter::Base (@bf4)
    • Adapters now inherit Adapter::Base. 'Adapter' is now a module, no longer a class.
      • using a class as a namespace that you also inherit from is complicated and circular at times i.e. buggy (see https://github.com/rails-api/active_model_serializers/pull/1177)
      • The class methods on Adapter aren't necessarily related to the instance methods, they're more Adapter functions.
      • named Base because it's a Rails-ism.
      • It helps to isolate and highlight what the Adapter interface actually is.
  • #1418 serialized collections now use the root option as is; now, only the root derived from the serializer or object is always pluralized.

Features:

  • #1406 Allow for custom dynamic values in JSON API links (@beauby)
  • #1270 Adds assert_response_schema test helper (@maurogeorge)
  • #1099 Adds assert_serializer test helper (@maurogeorge)
  • #1403 Add support for if/unless on attributes/associations (@beauby)
  • #1248 Experimental: Add support for JSON API deserialization (@beauby)
  • #1378 Change association blocks to be evaluated in serializer scope, rather than association scope. (@bf4)
    • Syntax changes from e.g. has_many :titles do customers.pluck(:title) end (in #1356) to has_many :titles do object.customers.pluck(:title) end
  • #1356 Add inline syntax for attributes and associations (@bf4 @beauby @noahsilas)
    • Allows defining attributes so that they don't conflict with existing methods. e.g. attribute :title do 'Mr. Topum Hat' end
    • Allows defining associations so that they don't conflict with existing methods. e.g. has_many :titles do customers.pluck(:title) end
      • Allows dynamic associations, as compared to compare to using virtual_value. e.g. has_many :reviews, virtual_value: [{ id: 1 }, { id: 2 }]
    • Removes dynamically defined methods on the serializer
  • #1336 Added support for Grape >= 0.13, < 1.0 (@johnhamelink)
  • #1322 Instrumenting rendering of resources (@bf4, @maurogeorge)
  • #1291 Add logging (@maurogeorge)
  • #1272 Add PORO serializable base class: ActiveModelSerializers::Model (@bf4)
  • #1255 Make more class attributes inheritable (@bf4)
  • #1249 Inheritance of serializer inheriting the cache configuration(@Rodrigora)
  • #1247 Add support for toplevel JSON API links (@beauby)
  • #1246 Add support for resource-level JSON API links (@beauby)
  • #1225 Better serializer lookup, use nested serializer when it exists (@beauby)
  • #1213 type directive for serializer to control type field with json-api adapter (@youroff)
  • #1172 Better serializer registration, get more than just the first module (@bf4)
  • #1158 Add support for wildcards in include option (@beauby)
  • #1127 Add support for nested associations for JSON and Attributes adapters via the include option (@NullVoxPopuli, @beauby).
  • #1050 Add support for toplevel jsonapi member (@beauby, @bf4)
  • #1251 Rename ArraySerializer to CollectionSerializer for clarity, add ActiveModelSerializers.config.collection_serializer (@bf4)
  • #1295 Add config serializer_lookup_enabled that, when disabled, requires serializers to explicitly specified. (@trek)

Fixes:

  • #1352 Fix generators; Isolate Rails-specifc code in Railties (@dgynn, @bf4)
  • #1384Fix database state leaking across tests (@bf4)
  • #1297 Fix fields option to restrict relationships as well (@beauby)
  • #1239 Fix duplicates in JSON API compound documents (@beauby)
  • #1214 retrieve the key from the reflection options when building associations (@NullVoxPopuli, @hut8)
  • #1358 Handle serializer file paths with spaces (@rwstauner, @bf4)
  • #1195 Fix id override (@beauby)
  • #1185 Fix options passing in Json and Attributes adapters (@beauby)

Misc:

  • #1383 Simplify reflections handling (@beauby)
  • #1370 Simplify attributes handling via a mixin (@beauby)
  • #1301 Mapping JSON API spec / schema to AMS (@bf4)
  • #1271 Handle no serializer source file to digest (@bf4)
  • #1260 Serialization and Cache Documentation (@bf4)
  • #1259 Add more info to CONTRIBUTING (@bf4)
  • #1233 Top-level meta and meta_key options no longer handled at serializer level (@beauby)
  • #1232 fields option no longer handled at serializer level (@beauby)
  • #1220 Remove empty rubocop.rake (@maurogeorge)
  • #1178 env CAPTURE_STDERR=false lets devs see hard failures (@bf4)
  • #1177 Remove Adapter autoloads in favor of require (@bf4)
  • #1117 FlattenJson adapter no longer inherits Json adapter, renamed to Attributes (@bf4)
  • #1171 add require statements to top of file (@shicholas)
  • #1167 Delegate Serializer.attributes to Serializer.attribute (@bf4)
  • #1174 Consistently refer to the 'JSON API' and the 'JsonApi' adapter (@bf4)
  • #1173 Comment private accessor warnings (@bf4)
  • #1166 Prefer methods over instance variables (@bf4)
  • #1168 Fix appveyor failure cache not being expired (@bf4)
  • #1161 Remove duplicate test helper (@bf4)
  • #1360 Update CI to test 2.2.2 -> 2.2.3 (@karaAJC)
  • #1371 Refactor, update, create documentation (@bf4)

v0.10.0.rc3 (2015-09-16)

  • #1129 Remove SerializableResource.serialize in favor of .new (@bf4)
  • #1155 Outside controller use tutorial (@CodedBeardedSignedTaylor)
  • #1154 Rubocop fixes for issues introduced by #1089 (@NullVoxPopuli)
  • #1089 Add ActiveModelSerializers.logger with default null device (@bf4)
  • #1109 Make better use of Minitest's lifecycle (@bf4)
  • #1144 Fix Markdown to adapters documentation (@bacarini)
  • #1121 Refactor add_links in JSONAPI adapter. (@beauby)
  • #1150 Remove legacy method accidentally reintroduced in #1017 (@beauby)
  • #1149 Update README with nested included association example. (@mattmueller)
  • #1110 Add lint tests for AR models (@beauby)
  • #1131 Extended format for JSONAPI include option (@beauby)
    • adds extended format for include option to JsonApi adapter
  • #1142 Updating wording on cache expiry in README (@leighhalliday)
  • #1140 Fix typo in fieldset exception (@lautis)
  • #1132 Get rid of unnecessary instance variables, and implied dependencies. (@beauby)
  • #1139 Documentation for serializing resources without render (@PericlesTheo)
  • #1017 Make Adapters registerable so they are not namespace-constrained (@bf4)
  • #1120 Add windows platform to loading sqlite3 (@Eric-Guo)
  • #1123 Remove url options (@bacarini)
  • #1093 Factor with_adapter + force cache clear before each test. (@beauby)
  • #1095 Add documentation about configuration options. (@beauby)
  • #1069 Add test coverage; account for no artifacts on CI (@bf4)
  • #1103 Move id and json_api_type methods from Serializer to JsonApi. (@beauby)
  • #1106 Add Style enforcer (via Rubocop) (@bf4)
  • #1079 Add ArraySerializer#object like Serializer (@bf4)
  • #1096 Fix definition of serializer attributes with multiple calls to `attri… (@beauby)
  • #1105 Add ActiveRecord-backed fixtures. (@beauby)
  • #1108 Better lint (@bf4)
  • #1102 Remove remains of embed option. (@beauby)
  • #1090 Clarify AMS dependencies (@bf4)
  • #1081 Add configuration option to set resource type to singular/plural (@beauby)
  • #1067 Fix warnings (@bf4)
  • #1066 Adding appveyor to the project (@joaomdmoura, @Eric-Guo, @bf4)
  • #1071 Make testing suite running and pass in Windows (@Eric-Guo, @bf4)
  • #1041 Adding pagination links (@bacarini)
    • adds support for pagination links at top level of JsonApi adapter
  • #1063 Lead by example: lint PORO model (@bf4)
  • #1 Test caller line parsing and digesting (@bf4)
  • #1048 Let FlattenJson adapter decide it doesn't include meta (@bf4)
  • #1060 Update fragment cache to support namespaced objects (@aaronlerch)
  • #1052 Use underscored json_root when serializing a collection (@whatthewhat)
  • #1051 Fix some invalid JSON in docs (@tjschuck)
  • #1049 Fix incorrect s/options = {}/options ||= {} (@bf4)
  • #1037 allow for type attribute (@lanej)
  • #1034 allow id attribute to be overriden (@lanej)
  • #1035 Fixed Comments highlight (@artLopez)
  • #1031 Disallow to define multiple associations at once (@bolshakov)
  • #1032 Wrap railtie requirement with rescue (@elliotlarson)
  • #1026 Bump Version Number to 0.10.0.rc2 (@jfelchner)
  • #985 Associations implementation refactoring (@bolshakov)
  • #954 Encapsulate serialization in ActiveModel::SerializableResource (@bf4)
  • #972 Capture app warnings on test run (@bf4)
  • #1019 Improve README.md (@baojjeu)
  • #998 Changing root to model class name (@joaomdmoura)
  • #1006 Fix adapter inflection bug for api -> API (@bf4)
  • #1016 require rails/railtie before subclassing Rails::Railtie (@bf4)
  • #1013 Root option with empty array support (@vyrak, @mareczek)
  • #994 Starting Docs structure (@joaomdmoura)
  • #1007 Bug fix for ArraySerializer json_key (@jiajiawang)
  • #1003 Fix transient test failures (@Rodrigora)
  • #996 Add linter for serializable resource (@bf4)
  • #990 Adding json-api meta test (@joaomdmoura)
  • #984 Add option "key" to serializer associations (@Rodrigora)
  • #982 Fix typo (@bf4)
  • #981 Remove unused PORO#to_param (@bf4)
  • #978 fix generators template bug (@regonn)
  • #975 Fixes virtual value not being used (@GriffinHeart)
  • #970 Fix transient tests failures (@Rodrigora)
  • #962 Rendering objects that doesn't have serializers (@bf4, @joaomdmoura, @JustinAiken)
  • #939 Use a more precise generated cache key (@aaronlerch)
  • #971 Restore has_one to generator (@bf4)
  • #965 options fedault valueserializable_hash and as_json (@bf4)
  • #959 TYPO on README.md (@kangkyu)

v0.10.0.rc2 (2015-06-16)

  • #958 Splitting json adapter into two (@joaomdmoura)
    • adds FlattenJSON as default adapter
  • #953 use model name to determine the type (@lsylvester)
    • uses model name to determine the type
  • #949 Don't pass serializer option to associated serializers (@bf4, @edwardloveall)
  • #902 Added serializer file digest to the cache_key (@cristianbica)
  • #948 AMS supports JSONAPI 1.0 instead of RC4 (@SeyZ)
  • #936 Include meta when using json adapter with custom root (@chrisbranson)
  • #942 Small code styling issue (@thiagofm)
  • #930 Reverting PR #909 (@joaomdmoura)
  • #924 Avoid unecessary calls to attribute methods when fragment caching (@navinpeiris)
  • #925 Updates JSON API Adapter to generate RC4 schema (@benedikt)
    • adds JSON API support 1.0
  • #918 Adding rescue_with_handler to clear state (@ryansch)
  • #909 Defining Json-API Adapter as Default (@joaomdmoura)
    • remove root key option and split JSON adapter
  • #914 Prevent possible duplicated attributes in serializer (@groyoh)
  • #880 Inabling subclasses serializers to inherit attributes (@groyoh)
  • #913 Avoiding the serializer option when instantiating a new one for ArraySerializer Fixed #911 (@groyoh)
  • #897 Allow to define custom serializer for given class (@imanel)
  • #892 Fixed a bug that appeared when json adapter serialize a nil association (@groyoh)
  • #895 Adding a test to cover 'meta' and 'meta_key' attr_readers (@adomokos)
  • #894 Fixing typos in README.md (@adomokos)
  • #888 Changed duplicated test name in action controller test (@groyoh)
  • #890 Remove unused method def_serializer (@JustinAiken)
  • #887 Fixing tests on JRuby (@joaomdmoura)
  • #885 Updates rails versions for test and dev (@tonyta)

v0.10.0.rc1 (2015-04-22)

  • #810 Adding Fragment Cache to AMS (@joaomdmoura)
    • adds fragment cache support
  • #868 Fixed a bug that appears when a nil association is included (@groyoh)
  • #861 README: Add emphasis to single-word difference (@machty)
  • #858 Included resource fixes (@mateomurphy)
  • #853 RC3 Updates for JSON API (@mateomurphy)
  • #852 Fix options merge order in each_association (@mateomurphy)
  • #850 Use association value for determining serializer used (@mateomurphy)
  • #843 Remove the mailing list from the README (@JoshSmith)
  • #842 Add notes on how you can help to contributing documentation (@JoshSmith)
  • #833 Cache serializers for class (@lsylvester)
  • #837 Store options in array serializers (@kurko)
  • #836 Makes passed in options accessible inside serializers (@kurko)
  • #773 Make json api adapter 'include' option accept an array (@sweatypitts)
  • #830 Add contributing readme (@JoshSmith)
  • #811 Reimplement serialization scope and scope_name (@mateomurphy)
  • #725 Support has_one to be compatible with 0.8.x (@ggordon)
    • adds has_one attribute for backwards compatibility
  • #822 Replace has_one with attribute in template (@bf4)
  • #821 Fix explicit serializer for associations (@wjordan)
  • #798 Fix lost test test_include_multiple_posts_and_linked (@donbobka)
  • #807 Add Overriding attribute methods section to README. (@alexstophel)
  • #693 Cache Support at AMS 0.10.0 (@joaomdmoura)
    • adds cache support to attributes and associations.
  • #792 Association overrides (@kurko)
    • adds method to override association
  • #794 add to_param for correct URL generation (@carlesjove)

v0.10.0-pre

0.09.x

v0.9.3 (2015/01/21 20:29 +00:00)

Features:

  • #774 Fix nested include attributes (@nhocki)
  • #771 Make linked resource type names consistent with root names (@sweatypitts)
  • #696 Explicitly set serializer for associations (@ggordon)
  • #700 sparse fieldsets (@arenoir)
  • #768 Adds support for meta and meta_key attribute (@kurko)

v0.9.1 (2014/12/04 11:54 +00:00)

  • #707 A Friendly Note on Which AMS Version to Use (@jherdman)
  • #730 Fixes nested has_many links in JSONAPI (@kurko)
  • #718 Allow overriding the adapter with render option (@ggordon)
  • #720 Rename attribute with :key (0.8.x compatibility) (@ggordon)
  • #728 Use type as key for linked resources (@kurko)
  • #729 Use the new beta build env on Travis (@joshk)
  • #703 Support serializer and each_serializer options in renderer (@ggordon, @mieko)
  • #727 Includes links inside of linked resources (@kurko)
  • #726 Bugfix: include nested has_many associations (@kurko)
  • #722 Fix infinite recursion (@ggordon)
  • #1 Allow for the implicit use of ArraySerializer when :each_serializer is specified (@mieko)
  • #692 Include 'linked' member for json-api collections (@ggordon)
  • #714 Define as_json instead of to_json (@guilleiguaran)
  • #710 JSON-API: Don't include linked section if associations are empty (@guilleiguaran)
  • #711 Fixes rbx gems bundling on TravisCI (@kurko)
  • #709 Add type key when association name is different than object type (@guilleiguaran)
  • #708 Handle correctly null associations (@guilleiguaran)
  • #691 Fix embed option for associations (@jacob-s-son)
  • #689 Fix support for custom root in JSON-API adapter (@guilleiguaran)
  • #685 Serialize ids as strings in JSON-API adapter (@guilleiguaran)
  • #684 Refactor adapters to implement support for array serialization (@guilleiguaran)
  • #682 Include root by default in JSON-API serializers (@guilleiguaran)
  • #625 Add DSL for urls (@JordanFaust)
  • #677 Add support for embed: :ids option for in associations (@guilleiguaran)
  • #681 Check superclasses for Serializers (@quainjn)
  • #680 Add support for root keys (@NullVoxPopuli)
  • #675 Support Rails 4.2.0 (@tricknotes)
  • #667 Require only activemodel instead of full rails (@guilleiguaran)
  • #653 Add "_test" suffix to JsonApi::HasManyTest filename. (@alexgenco)
  • #631 Update build badge URL (@craiglittle)

0.9.0.alpha1 - January 7, 2014

0.9.0.pre

  • The following methods were removed

    • Model#active_model_serializer
    • Serializer#include!
    • Serializer#include?
    • Serializer#attr_disabled=
    • Serializer#cache
    • Serializer#perform_caching
    • Serializer#schema (needs more discussion)
    • Serializer#attribute
    • Serializer#include_#{name}? (filter method added)
    • Serializer#attributes (took a hash)
  • The following things were added

    • Serializer#filter method
    • CONFIG object
  • Remove support for ruby 1.8 versions.

  • Require rails >= 3.2.

  • Serializers for associations are being looked up in a parent serializer's namespace first. Same with controllers' namespaces.

  • Added a "prefix" option in case you want to use a different version of serializer.

  • Serializers default namespace can be set in default_serializer_options and inherited by associations.

  • Beginning of rewrite: c65d387705ec534db171712671ba7fcda4f49f68

0.08.x

v0.8.3 (2014/12/10 14:45 +00:00)

  • #753 Test against Ruby 2.2 on Travis CI (@tricknotes)
  • #745 Missing a word (@jockee)

v0.8.2 (2014/09/01 21:00 +00:00)

  • #612 Feature/adapter (@bolshakov)
    • adds adapters pattern
  • #615 Rails does not support const_defined? in development mode (@tpitale)
  • #613 README: typo fix on attributes (@spk)
  • #614 Fix rails 4.0.x build. (@arthurnn)
  • #610 ArraySerializer (@bolshakov)
  • #607 ruby syntax highlights (@zigomir)
  • #602 Add DSL for associations (@JordanFaust)

0.8.1 (May 6, 2013)

  • Fix bug whereby a serializer using 'options' would blow up.

0.8.0 (May 5, 2013)

  • Attributes can now have optional types.

  • A new DefaultSerializer ensures that POROs behave the same way as ActiveModels.

  • If you wish to override ActiveRecord::Base#to_Json, you can now require 'active_record/serializer_override'. We don't recommend you do this, but many users do, so we've left it optional.

  • Fixed a bug where ActionController wouldn't always have MimeResponds.

  • An optinal caching feature allows you to cache JSON & hashes that AMS uses. Adding 'cached true' to your Serializers will turn on this cache.

  • URL helpers used inside of Engines now work properly.

  • Serializers now can filter attributes with only and except:

    UserSerializer.new(user, only: [:first_name, :last_name])
    UserSerializer.new(user, except: :first_name)
    
  • Basic Mongoid support. We now include our mixins in the right place.

  • On Ruby 1.8, we now generate an id method that properly serializes id columns. See issue #127 for more.

  • Add an alias for scope method to be the name of the context. By default this is current_user. The name is automatically set when using serialization_scope in the controller.

  • Pass through serialization options (such as :include) when a model has no serializer defined.

0.7.0 (March 6, 2013)

  • embed_key option to allow embedding by attributes other than IDs
  • Fix rendering nil with custom serializer
  • Fix global self.root = false
  • Add support for specifying the serializer for an association as a String
  • Able to specify keys on the attributes method
  • Serializer Reloading via ActiveSupport::DescendantsTracker
  • Reduce double map to once; Fixes datamapper eager loading.

0.6.0 (October 22, 2012)

  • Serialize sets properly
  • Add root option to ArraySerializer
  • Support polymorphic associations
  • Support :each_serializer in ArraySerializer
  • Add scope method to easily access the scope in the serializer
  • Fix regression with Rails 3.2.6; add Rails 4 support
  • Allow serialization_scope to be disabled with serialization_scope nil
  • Array serializer should support pure ruby objects besides serializers

0.05.x

0.5.2 (June 5, 2012)

0.5.1 (May 23, 2012)

0.5.0 (May 16, 2012)

  • First tagged version
  • Changes generators to always generate an ApplicationSerializer

0.1.0 (December 21, 2011)

First Commit as Rails Serializers 0.0.1

(December 1, 2011).

Prehistory