responsible 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/consumer.rb +2 -11
- data/lib/responsible.rb +12 -7
- data/lib/responsible/consumer.rb +12 -0
- data/responsible.gemspec +5 -4
- data/spec/base_spec.rb +7 -7
- data/spec/spec_helper.rb +0 -1
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e1084e91625da4197eaa96fed35775417017e13
|
4
|
+
data.tar.gz: f6c0f35deb7af5e4ca968089d26225179b5746b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ae0698dc609fd3fce630239165dd01ba6b1a962dab46db98cbbd3724541857555a4ab7e73728892d232165f040a393a768a4d84ea3c26494ef54d4b3366d0d8
|
7
|
+
data.tar.gz: e36b92901668c778343a59d8e193c031804cb3dcb5a0427ded669ddbd6f1ca1e23a5620432ebb10a28f743fb59b90242ca616dbf097c574e764dc963908b88b3
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ class MySerializer < Responsible::Base
|
|
18
18
|
|
19
19
|
def value_2
|
20
20
|
# number.other[:value]
|
21
|
-
|
21
|
+
__data__.other[:value]
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -52,7 +52,7 @@ It is initialized using a consumer (see below) and a data object that the JSON w
|
|
52
52
|
### data_object_name
|
53
53
|
|
54
54
|
#### Pending code merge
|
55
|
-
This is a convenience method and allow you to specify an access name for the data object you passed into the initializer (you can also access this object using the ```
|
55
|
+
This is a convenience method and allow you to specify an access name for the data object you passed into the initializer (you can also access this object using the ```__data__``` method)
|
56
56
|
|
57
57
|
### property
|
58
58
|
|
data/lib/consumer.rb
CHANGED
@@ -1,12 +1,3 @@
|
|
1
|
-
|
2
|
-
class Consumer
|
3
|
-
def initialize(*valid_restrictions)
|
4
|
-
@valid_restrictions = valid_restrictions
|
5
|
-
end
|
1
|
+
warn "[DEPRECATION] #{Kernel.caller.first}\n[DEPRECATION] `require 'consumer'` is deprecated. File should now be correctly loaded using autoloading."
|
6
2
|
|
7
|
-
|
8
|
-
# always allow field with no restrictions to be seen
|
9
|
-
restrictions.nil? || (Array(@valid_restrictions) & Array(restrictions)).any?
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
3
|
+
require 'responsible/consumer'
|
data/lib/responsible.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'consumer'
|
1
|
+
require 'responsible/consumer'
|
2
2
|
|
3
3
|
module Responsible
|
4
4
|
|
@@ -10,7 +10,7 @@ module Responsible
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
def data_object_name name
|
13
|
-
alias_method name, :
|
13
|
+
alias_method name, :__data__
|
14
14
|
end
|
15
15
|
|
16
16
|
def doc(str=nil)
|
@@ -35,15 +35,15 @@ module Responsible
|
|
35
35
|
|
36
36
|
def delegate_method(name, to)
|
37
37
|
define_method name do
|
38
|
-
|
38
|
+
__data__.send(to || name)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
attr_reader :consumer, :
|
43
|
+
attr_reader :consumer, :__data__
|
44
44
|
|
45
45
|
def initialize(consumer, data)
|
46
|
-
@consumer, @
|
46
|
+
@consumer, @__data__ = consumer, data
|
47
47
|
|
48
48
|
undefined_properties = _properties_.keys - methods
|
49
49
|
|
@@ -63,11 +63,16 @@ module Responsible
|
|
63
63
|
|
64
64
|
result
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
|
+
def data
|
68
|
+
warn "[DEPRECATION] #{Kernel.caller.first}\n[DEPRECATION] `data` is deprecated. Please use `__data__` instead."
|
69
|
+
__data__
|
70
|
+
end
|
71
|
+
|
67
72
|
private
|
68
73
|
|
69
74
|
def _properties_
|
70
75
|
self.class.properties
|
71
76
|
end
|
72
77
|
end
|
73
|
-
end
|
78
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Responsible
|
2
|
+
class Consumer
|
3
|
+
def initialize(*valid_restrictions)
|
4
|
+
@valid_restrictions = valid_restrictions
|
5
|
+
end
|
6
|
+
|
7
|
+
def can_see?(restrictions)
|
8
|
+
# always allow field with no restrictions to be seen
|
9
|
+
restrictions.nil? || (Array(@valid_restrictions) & Array(restrictions)).any?
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/responsible.gemspec
CHANGED
@@ -3,18 +3,19 @@ $:.unshift 'lib'
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.name = "responsible"
|
6
|
-
s.version = "0.0
|
6
|
+
s.version = "0.1.0"
|
7
7
|
s.date = Time.now.strftime('%Y-%m-%d')
|
8
8
|
s.homepage = "https://github.com/reevoo/responsible"
|
9
9
|
s.authors = ["dw_henry", "lamp"]
|
10
10
|
s.email = "developers@reevoo.com"
|
11
11
|
s.summary = "Response builders"
|
12
|
+
s.description= "JSON building library"
|
12
13
|
|
13
14
|
s.files = %w[ Gemfile README.md responsible.gemspec LICENSE ]
|
14
15
|
s.files += Dir['lib/**/*']
|
15
16
|
s.test_files = Dir['spec/**/*']
|
16
17
|
|
17
|
-
s.add_development_dependency 'rake'
|
18
|
-
s.add_development_dependency 'minitest'
|
19
|
-
s.add_development_dependency 'rspec'
|
18
|
+
s.add_development_dependency 'rake', '~> 0'
|
19
|
+
s.add_development_dependency 'minitest', '~> 0'
|
20
|
+
s.add_development_dependency 'rspec', '~> 0'
|
20
21
|
end
|
data/spec/base_spec.rb
CHANGED
@@ -75,7 +75,7 @@ describe Responsible::Base do
|
|
75
75
|
property :no_role
|
76
76
|
|
77
77
|
def no_role
|
78
|
-
|
78
|
+
__data__.no_role
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
@@ -90,7 +90,7 @@ describe Responsible::Base do
|
|
90
90
|
property :with_role, restrict_to: :some_role
|
91
91
|
|
92
92
|
def with_role
|
93
|
-
|
93
|
+
__data__.with_role
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
@@ -106,19 +106,19 @@ describe Responsible::Base do
|
|
106
106
|
property :with_another_role, restrict_to: :another_role
|
107
107
|
|
108
108
|
def with_external_role
|
109
|
-
|
109
|
+
__data__.with_external_role
|
110
110
|
end
|
111
111
|
|
112
112
|
def with_analytics_role
|
113
|
-
|
113
|
+
__data__.with_analytics_role
|
114
114
|
end
|
115
115
|
|
116
116
|
def with_another_role
|
117
|
-
|
117
|
+
__data__.with_another_role
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
-
|
121
|
+
|
122
122
|
data = double(:data, with_external_role: 'external', with_analytics_role: 'analytics', with_another_role: 'another')
|
123
123
|
consumer = Responsible::Consumer.new(:external, :analytics)
|
124
124
|
|
@@ -127,7 +127,7 @@ describe Responsible::Base do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
describe "#data_object_name" do
|
130
|
-
|
130
|
+
|
131
131
|
let(:consumer) { double(:consumer, can_see?: true) }
|
132
132
|
|
133
133
|
it "allows aliasing of the data method to a more sensible name" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: responsible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dw_henry
|
@@ -9,51 +9,51 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: minitest
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
-
description:
|
56
|
+
description: JSON building library
|
57
57
|
email: developers@reevoo.com
|
58
58
|
executables: []
|
59
59
|
extensions: []
|
@@ -64,6 +64,7 @@ files:
|
|
64
64
|
- README.md
|
65
65
|
- lib/consumer.rb
|
66
66
|
- lib/responsible.rb
|
67
|
+
- lib/responsible/consumer.rb
|
67
68
|
- responsible.gemspec
|
68
69
|
- spec/base_spec.rb
|
69
70
|
- spec/consumer_spec.rb
|