pinkman 1.3.0 → 1.3.5

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
  SHA256:
3
- metadata.gz: b4969c611478b01b2eb3a9d42d1c29b8e9ffb5d9ac93af2782a06bab6338f7c5
4
- data.tar.gz: 45f10ea26c2b7f42768159d6568270c19b4214010be57c4db81bf6e13a0d18bc
3
+ metadata.gz: 0f74ed907906d1095d6b0f68f5f63f12a325ee3884573d6ab0440c9e4f9989e1
4
+ data.tar.gz: be891bb1ca37ab68918b35a334f55fb34142549b7550f4d6800cdab125b1e73b
5
5
  SHA512:
6
- metadata.gz: '0908aaf60135006c81c700a532d330a14b2cbe562f39defccf16cf219b11fd323ddd6ce6b6e0daef8c838dd2b5d6d1a5833d8d968161080bd79434e57884518f'
7
- data.tar.gz: 1e5a27236dec947b92fadab1be8ab5a1419b81e8863a49a76a50d9bbb698b4aa8602496cd576e5f138a47d592d9ee917f3c91380010cb86dba19ec494022aaee
6
+ metadata.gz: c9e629665aa5cb717b2e1a50fcd275171b4aa3dcb56556daebd593b12fd418c5ee1a3ca5d6b7ea1811992930563927d3996f4ea15e03e2ff86fcb6aee6958c93
7
+ data.tar.gz: 7875d63d6c2c88851cb48c4456ceedc063bf4377ac8f344213d4e4a9022da6c86d959cbc16f03362224a31126d758164be250c6dfffa3bdb7c8e79e8e885a68d
@@ -65,7 +65,7 @@ module Pinkman
65
65
  define_method attribute do
66
66
  reflection = object.class.reflections[attribute.to_s]
67
67
  if reflection
68
- Pinkman::Serializer::array(object.send(attribute), scope: @scope, params: @params)
68
+ Pinkman::Serializer::array(object.send(attribute), scope: get_assoc_scope(attribute, @scope), params: @params)
69
69
  end
70
70
  end
71
71
  end
@@ -78,7 +78,7 @@ module Pinkman
78
78
  define_method attribute do
79
79
  reflection = object.class.reflections[attribute.to_s]
80
80
  if reflection
81
- reflection.klass.serializer.new(object.send(attribute), scope: @scope, params: @params)
81
+ reflection.klass.serializer.new(object.send(attribute), scope: get_assoc_scope(attribute, @scope), params: @params)
82
82
  end
83
83
  end
84
84
  end
@@ -96,6 +96,15 @@ module Pinkman
96
96
  def self.reflections
97
97
  model.reflections
98
98
  end
99
+
100
+ def get_assoc_scope assoc, scope
101
+ assoc_scopes = begin self.class.scope(scope).assoc_scopes rescue nil end
102
+ if assoc_scopes.is_a?(Hash) and assoc_scopes[assoc]
103
+ assoc_scopes[assoc]
104
+ else
105
+ scope
106
+ end
107
+ end
99
108
 
100
109
  def attributes *args
101
110
  hash = super(*args)
@@ -2,7 +2,7 @@ module Pinkman
2
2
  module Serializer
3
3
  class Scope
4
4
 
5
- attr_accessor :name, :read, :write, :access, :serializer
5
+ attr_accessor :name, :read, :write, :access, :serializer, :assoc_scopes
6
6
 
7
7
  def initialize hash
8
8
  if hash.is_a?(Hash)
@@ -21,8 +21,18 @@ module Pinkman
21
21
  end
22
22
 
23
23
  def read_attributes *args
24
- self.read = args
25
- self.read = [] unless args.first
24
+ read_attrs = []
25
+ assoc_scopes = {}
26
+ args.each do |field|
27
+ if field.is_a?(Hash)
28
+ assoc_scopes.merge!(field)
29
+ read_attrs = read_attrs + field.keys
30
+ else
31
+ read_attrs << field
32
+ end
33
+ end
34
+ self.read = read_attrs
35
+ self.assoc_scopes = assoc_scopes
26
36
  query_optimizer
27
37
  read
28
38
  end
@@ -1,3 +1,3 @@
1
1
  module Pinkman
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinkman
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agilso Oliveira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-15 00:00:00.000000000 Z
11
+ date: 2019-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -322,8 +322,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
322
322
  - !ruby/object:Gem::Version
323
323
  version: '0'
324
324
  requirements: []
325
- rubyforge_project:
326
- rubygems_version: 2.7.6
325
+ rubygems_version: 3.0.3
327
326
  signing_key:
328
327
  specification_version: 4
329
328
  summary: Small Rails-js framework.