pragmatic_serializer 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8459cbb6e538aea800ea54a28f6c0af9b077139e
4
- data.tar.gz: 95149a2b02c694c1aa9facbdf03a84a3dcc51000
3
+ metadata.gz: ca1d512ed0627c1415e081f0f329ed004cb5ee1e
4
+ data.tar.gz: ff94902167c944b2ba87f518f05aa735218eeef8
5
5
  SHA512:
6
- metadata.gz: ed6ba603de3183efe1b893df58225b76532d9d379550517ea789724cade12e46afd78a9786aaf6fb9579679dd72b598c39cce2f4c972747cb8d642b545f781da
7
- data.tar.gz: f74a3dd99aace5e9f9dbd2110866916bc673d5923da7b93bbf49c487e683351f339dab17e88a75a548eb16948818bad45dbd9bfdd765a3be4c98d10fa5aa1f79
6
+ metadata.gz: e1d78a092027b7143d0f52f03782102649c934e16c126630762e227952000411d26a00c858e5a791f1fa3c54320223c46b7aced93024fc76de3a0822440a35c2
7
+ data.tar.gz: c03d3716f5394baa51d743237a1ef8d4e481e7e64336071c6dda4edca567588d9f2009f992cce841140c3f56ac46aeb9753df6078ef7fd885728f13703d3ed9a
@@ -7,6 +7,7 @@ module PragmaticSerializer
7
7
  base.send(:include, PragmaticSerializer::GeneralBaseJSON)
8
8
  base.send(:include, PragmaticSerializer::GeneralResourceJSON)
9
9
  base.send(:include, PragmaticSerializer::CollectionInterface)
10
+ base.send(:include, PragmaticSerializer::ResourceInterface)
10
11
  end
11
12
  end
12
13
  end
@@ -7,6 +7,17 @@ module PragmaticSerializer
7
7
  .tap { |cs| cs.resources = resources }
8
8
  .tap { |cs| cs.resource_options = resource_options }
9
9
  end
10
+
11
+ def collection_hash(resources, method=nil, resource_options: {})
12
+ collection(resources, resource_options: resource_options)
13
+ .tap do |cs|
14
+ # if method is specified pass it as serailzation method
15
+ # othervise the CollectionSerializer will use config.default_resource_serialization_method
16
+ # which is by default :as_json
17
+ cs.serialization_method = method if method
18
+ end
19
+ .as_json
20
+ end
10
21
  end
11
22
 
12
23
  def self.included(base)
@@ -0,0 +1,20 @@
1
+ module PragmaticSerializer
2
+ module ResourceInterface
3
+ module ClassMethods
4
+ # initialize new resource serializer
5
+ #
6
+ # this method exist for consistency purpose with CollectionInterface
7
+ def resource(resource)
8
+ self.new(resource)
9
+ end
10
+
11
+ def resource_hash(resource, method=:as_json)
12
+ resource(resource).send(method)
13
+ end
14
+ end
15
+
16
+ def self.included(base)
17
+ base.send(:extend, ClassMethods)
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module PragmaticSerializer
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -12,7 +12,9 @@ require "pragmatic_serializer/general_resource_json"
12
12
 
13
13
  require "pragmatic_serializer/pagination_json"
14
14
  require "pragmatic_serializer/collection_serializer"
15
+
15
16
  require "pragmatic_serializer/collection_interface"
17
+ require "pragmatic_serializer/resource_interface"
16
18
 
17
19
  require "pragmatic_serializer/all"
18
20
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pragmatic_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Valent
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-26 00:00:00.000000000 Z
11
+ date: 2016-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -109,6 +109,7 @@ files:
109
109
  - lib/pragmatic_serializer/general_resource_json.rb
110
110
  - lib/pragmatic_serializer/pagination_json.rb
111
111
  - lib/pragmatic_serializer/prefixes.rb
112
+ - lib/pragmatic_serializer/resource_interface.rb
112
113
  - lib/pragmatic_serializer/version.rb
113
114
  - pragmatic_serializer.gemspec
114
115
  homepage: https://github.com/equivalent/pragmatic_serializer