43 Commits

Author SHA1 Message Date
Markus
843d943e07
Refactor caching support (#52)
- Very explicit where caching is stored
- No `Rails.cache` automagic with possible colliding keys
- Rails 5.2+ cache versioning support
- Implicit namespace support (by cache instance, e.g.
  ActiveSupport::Cache::MemoryStore.new(namespace: 'jast_jsonapi')
- All cache instance options are supported
2020-02-25 16:49:02 +00:00
Attila Horvath
3faca2d1e0 Fix conditional procedures with lambdas 2020-02-21 14:36:50 +00:00
Christopher Sansone
6d01bec146
Improved relationship serializer options (#32)
* allow the relationship's serializer key to be a Proc

* fixes

* specifically test the relationship name and the resource type

* support object blocks without a serializer defined

* stop validation gracefully if the relationship is polymorphic

* improve performance by using instance variables instead of accessor methods

* force initialization up front to avoid the iterative calls

* serializer procs should act like polymorphic when determining the id_method_name

* specs for serializer procs

* updated with more details and examples for relationship serializer options

* adjust specs to define the serializers

* avoid extra method calls for performance

* name change

* one less function call for better performance

* do not require lazy loaded relationships to resolve the serializer

* give polymorphic precedence for backwards compatibility

* move serializer inference into ObjectSerializer to allow for overriding

* move method for better diff

* fix race condition in multi-threaded environments
2020-02-15 14:57:44 +00:00
Brad Grzesiak
ddc261d8dc Allow "if: Proc..." on link (#15) 2019-10-25 09:32:56 -04:00
Shishir Kakaraddi
326f9784ca
Merge pull request #294 from nikz/add-links-option-to-relationship-serializer
Adds a :links option to the relationship macros
2018-11-03 11:35:39 -07:00
Maros Hluska
d5ea95370f Fix params not being hash by default 2018-10-18 22:59:33 +07:00
Austin Matzko
1ab5cd387a Don't share data_links among inherited serializers. 2018-10-03 17:51:37 -04:00
Nik Wakelin
100f850416
Merge branch 'dev' into add-links-option-to-relationship-serializer 2018-08-05 20:58:39 +01:00
nikz
89f007d069 Adds a :links option to the relationship macros
This allows specifying a `:links` option to a has_many/has_one
relationship, which means you can specify `self` or `related` links as
per the JSON API spec (these are often useful for not loading all
associated objects in a single payload)
2018-08-05 20:37:44 +01:00
Manoj M J
6d03db3a0c
Merge branch 'dev' into master 2018-07-21 10:06:56 +05:30
Trevor Hinesley
dfcbe263fb
Merge branch 'master' into params-in-nested-includes 2018-07-19 09:58:25 -05:00
Trevor Hinesley
07b6e614ac Params are now passed to nested includes 2018-07-19 09:57:22 -05:00
Manoj M J
9c659839e4 Evaluate ids via the specified ‘id_method_name’ when relationships are evaluated via a block 2018-07-19 15:40:20 +05:30
Erol
e05193fb5e Add spec for proc methods with optional arguments 2018-07-16 21:10:10 -07:00
Kyle Reeves
d47b74f71f all tests are passing, but still need to write tests for relationship class 2018-07-03 19:33:34 -07:00
Kyle Reeves
7b23adddc4 working on new relationship class 2018-07-03 19:33:34 -07:00
Kyle Reeves
0b70657a41 update test for conditional relationships 2018-07-03 19:33:34 -07:00
Kyle Reeves
5558dcd703 allow conditional relationships 2018-07-03 19:33:34 -07:00
Darren Johnson
4a333d7276 Set type value when setting key transform 2018-06-21 18:40:24 -07:00
Trevor Hinesley
bad004fd42 Allow conditional attributes 2018-06-21 18:38:42 -07:00
homer
44d5e0f9c5 Fix serialization for nested nil includes with block 2018-05-31 17:16:54 -07:00
Shishir Kakaraddi
cd1bc0968e dont create a object for a has one relationship unnecessarily just to fetch id 2018-05-20 15:11:07 -07:00
Shishir Kakaraddi
ea5296ac25 making object level links similar to attributes 2018-05-20 15:08:47 -07:00
Jodi Showers
74f27ccdf0 Links within data (#161) 2018-05-20 13:14:46 -07:00
Shishir Kakaraddi
3fb975602b fixes some unnecessary performance test failures 2018-05-14 19:27:50 -07:00
Jodi Showers
3ebf34928c Serialize nested includes (#152) 2018-05-10 21:17:32 -07:00
Shuhei Kitagawa
5b64e90956 Add tests for block relationship 2018-05-06 10:26:38 -07:00
Shuhei Kitagawa
5d8e1ce9e7 Refactor tests for key_transform method 2018-05-01 23:28:07 -07:00
Shuhei Kitagawa
af0aed4414 Clean up group_context.rb 2018-04-21 14:54:41 -07:00
Shuhei Kitagawa
fb7d01368a Integrate tests for #set_id and #attribute to object_serializer_class_methods_spec 2018-03-29 17:22:51 -07:00
Dmitriy Ivliev
c2e4c01bf1 fix behaviour for struct without id 2018-03-26 22:38:14 -07:00
Shuhei Kitagawa
cdfac8743d Refactor object serializer class methods spec (#134)
* Add object_serializer_class_methods_examples

* Change to require spec/shared/examples in every spec files

* Refactor object_serializer_class_methods_spec
2018-03-26 22:16:37 -07:00
corinnekunze
f029cf737a Adding specs for #as_json method on ObjectSerializer and making sure non-included attributes are removed 2018-03-12 22:36:50 -07:00
Guillermo Iguaran
eea4496e7b Add benchmarks for jsonapi-serializers library 2018-02-13 23:06:47 -08:00
Christopher Sansone
b30a53bc5f ability to customize rendering of attributes via a block (#54)
* add hash benchmarking to performance tests

* Add missing attribute in README example

* Disable GC before doing performance test

* Enable oj to AM for fair benchmark test

* ability to customize rendering of attributes via a block

* fixed attribute render spec

* minimized specs to specifially test this feature

* Update README to include attribute definitions

* Fixed syntax error

* Fixed merge issues
2018-02-09 08:59:07 -08:00
Roberto Quintanilla
6d516c217c Support for polymorphic associations (#64)
* add hash benchmarking to performance tests

* Add missing attribute in README example

* Disable GC before doing performance test

* Enable oj to AM for fair benchmark test

* Support for polymorphic associations

* Optional dictionary for polymorphic associations

* Added polymorphic record types memoization

* Updated performance tests for polymorphic examples to include jsonapi-rb
2018-02-08 22:18:46 -08:00
jeremyjung
e7caa7afd5 Allow has_one nil association (#48)
* Allow has_one nil association

* add test for when has_one returns nil

* modify has_one extension method, add active record test

* Use try operator to support old rubies
2018-02-07 08:54:53 -08:00
Benjamin Fleischer
7843e411f6 Better usage of AMS::Model 2018-02-05 22:34:17 -08:00
Min.Kim
22bea1505f Add jsonapi-rb test to benchmark suite 2018-02-05 22:30:24 -08:00
Min.Kim
4ccd40ac29 Add jsonapi data models for benchmark 2018-02-05 22:30:24 -08:00
Shishir Kakaraddi
a3a989244b initial commit to allow the same kind of key transforms as AMS 2018-02-05 21:06:57 -08:00
Sergii Makagon
7f27543081 Refactoring 2018-02-04 17:12:18 -08:00
Shishir Kakaraddi
5374a1378e initial commit 2018-01-31 16:20:40 -08:00