Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Latest commit

 

History

History
417 lines (360 loc) · 36.1 KB

CHANGELOG.md

File metadata and controls

417 lines (360 loc) · 36.1 KB

0.10.x

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 rails-api#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 15:19 +00:00)

  • #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 21:30 +00:00)

  • #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 06:06 +00:00)

  • #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.

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.

  • 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

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

First Commit as Rails Serializers 0.0.1

(December 1, 2011).

Prehistory