pinkman 1.3.0 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
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.