zertico 2.0.0.alpha.2 → 2.0.0.alpha.3

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
  SHA1:
3
- metadata.gz: bf85d369e45deaff1313840e328a09daa12e988b
4
- data.tar.gz: b9f61dc7c92ce62866353d0ef3ecb9956d224928
3
+ metadata.gz: 11c1692e1a912ed1299b06de71336e7fa7074e01
4
+ data.tar.gz: 474b9270363f5a8873af6bab6b489823c700d3fa
5
5
  SHA512:
6
- metadata.gz: 41fe10373503f628f382ce7c68c73a41ce98a3860c44942c329b856162b8d1e24c481b251a3904fcf72caf96a55b83ab3df8efbee61724fa67c781ff6acbb8fe
7
- data.tar.gz: 17e58d0959b8a3191f9e6f4df0d990f0490bc58473314608a2caeee6e75996e80889cfa1e888879503c35ac601f9ea327847a79f9c6f00f59f1b9eff4ca8b660
6
+ metadata.gz: 47f60cb1d5b3f3ca8a3f5a814752f3dfde063d046e97bce0a30eb5893353cc55a743fbf9c73e98235260c1890237cfe07d5fd64a2f719d6c513deb3967e74bac
7
+ data.tar.gz: cd6fbe21a296e58b43a54075a888c06d70e21aa9638cf5a78484f89d128fb6833aafd764c5cff56af88ba8bf88734412cb465bc9aca46bfb22067d64babb8fe2
@@ -52,7 +52,7 @@ module Zertico
52
52
  def initialize_service
53
53
  @service = "::#{self.class.name.gsub('Controller', 'Service')}".constantize.new
54
54
  rescue NameError
55
- @service = Zertico::Service.new
55
+ @service = Zertico::Service.new(self.class.name)
56
56
  end
57
57
 
58
58
  def set_responder
@@ -32,6 +32,29 @@ module Zertico
32
32
  def resource_source
33
33
  self.class.resource_source || interface_class
34
34
  end
35
+
36
+ def interface_class
37
+ return self.class.interface_class unless self.class.interface_class.nil?
38
+ name.chomp('Service').singularize.constantize
39
+ rescue NameError
40
+ name.chomp('Service').split('::').last.singularize.constantize
41
+ end
42
+
43
+ def interface_name
44
+ return self.class.interface_name unless self.class.interface_name.nil?
45
+ interface_class.name.singularize.underscore
46
+ end
47
+
48
+ def interface_id
49
+ return self.class.interface_id unless self.class.interface_id.nil?
50
+ if name.split('::').size > 1
51
+ "#{interface_name.gsub('/', '_')}_id"
52
+ else
53
+ 'id'
54
+ end
55
+ rescue NameError
56
+ 'id'
57
+ end
35
58
  end
36
59
  end
37
60
  end
@@ -1,6 +1,6 @@
1
1
  module Zertico
2
2
  class Service
3
- attr_reader :interface_class, :interface_name, :interface_id
3
+ attr_reader :name
4
4
 
5
5
  autoload :ClassMethods, 'zertico/service/class_methods'
6
6
  autoload :InstanceMethods, 'zertico/service/instance_methods'
@@ -8,31 +8,8 @@ module Zertico
8
8
  extend ClassMethods
9
9
  include InstanceMethods
10
10
 
11
- def initialize(options = {})
12
- @interface_class = options.fetch(:interface_class, self.class.interface_class)
13
- @interface_class ||= custom_interface_class
14
- @interface_name = options.fetch(:interface_name, self.class.interface_name)
15
- @interface_name ||= interface_class.name.singularize.underscore
16
- @interface_id = options.fetch(:interface_id, self.class.interface_id)
17
- @interface_id ||= custom_interface_id
18
- end
19
-
20
- private
21
-
22
- def custom_interface_class
23
- self.class.name.chomp('Service').singularize.constantize
24
- rescue NameError
25
- self.class.name.chomp('Service').split('::').last.singularize.constantize
26
- end
27
-
28
- def custom_interface_id
29
- if self.class.name.chomp('Controller').split('::').size > 1
30
- "#{interface_name.gsub('/', '_')}_id"
31
- else
32
- 'id'
33
- end
34
- rescue NameError
35
- 'id'
11
+ def initialize(controller_name = nil)
12
+ @name = (controller_name or self.class.name).gsub('Controller', 'Service')
36
13
  end
37
14
  end
38
15
  end
@@ -1,3 +1,3 @@
1
1
  module Zertico
2
- VERSION = '2.0.0.alpha.2'
2
+ VERSION = '2.0.0.alpha.3'
3
3
  end
@@ -121,4 +121,125 @@ describe Zertico::Service do
121
121
  end
122
122
  end
123
123
  end
124
+
125
+ describe '#interface_id' do
126
+ context 'with a custom controller without a custom service' do
127
+ before :each do
128
+ @service = Zertico::Service.new('UserController')
129
+ end
130
+
131
+ it 'should return id' do
132
+ expect(@service.send(:interface_id)).to eq('id')
133
+ end
134
+ end
135
+
136
+ context 'on a pluralized service' do
137
+ it 'should return id' do
138
+ expect(users_service.send(:interface_id)).to eq('id')
139
+ end
140
+ end
141
+
142
+ context 'on a namespaced service and interface model' do
143
+ it 'should return id with the model name' do
144
+ expect(profile_service.send(:interface_id)).to eq('person_profile_id')
145
+ end
146
+ end
147
+
148
+ context 'on a namespaced service and non namespaced interface model' do
149
+ it 'should return id with the model name' do
150
+ expect(admin_service.send(:interface_id)).to eq('user_id')
151
+ end
152
+ end
153
+
154
+ context 'on a non namespaced service and non namespaced interface model' do
155
+ it 'should return id' do
156
+ expect(users_service.send(:interface_id)).to eq('id')
157
+ end
158
+ end
159
+
160
+ context 'when defined on class' do
161
+ before :each do
162
+ Person::GiftsService.instance_variable_set('@interface_id', 'abc')
163
+ @gifts_service = Person::GiftsService.new
164
+ end
165
+
166
+ it 'should return the defined value' do
167
+ expect(@gifts_service.send(:interface_id)).to eq('abc')
168
+ end
169
+ end
170
+ end
171
+
172
+ describe '#interface_name' do
173
+ context 'with a custom controller without a custom service' do
174
+ before :each do
175
+ @service = Zertico::Service.new('Person::GiftsController')
176
+ end
177
+
178
+ it 'should return it' do
179
+ expect(@service.send(:interface_name)).to eq('gift')
180
+ end
181
+ end
182
+
183
+ it 'should return the interface name' do
184
+ expect(users_service.send(:interface_name)).to eq('user')
185
+ end
186
+
187
+ context 'when defined on class' do
188
+ before :each do
189
+ Person::GiftsService.instance_variable_set('@interface_name', 'abc')
190
+ @gifts_service = Person::GiftsService.new
191
+ end
192
+
193
+ it 'should return the defined value' do
194
+ expect(@gifts_service.send(:interface_name)).to eq('abc')
195
+ end
196
+ end
197
+ end
198
+
199
+ describe '#interface_class' do
200
+ context 'with a custom controller without a custom service' do
201
+ before :each do
202
+ @service = Zertico::Service.new('Person::Gifts')
203
+ end
204
+
205
+ it 'should return it' do
206
+ expect(@service.send(:interface_class)).to eq(Gift)
207
+ end
208
+ end
209
+
210
+ context 'on a pluralized service' do
211
+ it 'should find the interface model' do
212
+ expect(users_service.send(:interface_class)).to eq(User)
213
+ end
214
+ end
215
+
216
+ context 'on a namespaced service and interface model' do
217
+ it 'should find the interface model' do
218
+ expect(profile_service.send(:interface_class)).to eq(Person::Profile)
219
+ end
220
+ end
221
+
222
+ context 'on a namespaced service and non namespaced interface model' do
223
+ it 'should find the interface model' do
224
+ expect(admin_service.send(:interface_class)).to eq(User)
225
+ end
226
+ end
227
+
228
+ context 'on a non namespaced service and non namespaced interface model' do
229
+ it 'should find the interface model' do
230
+ expect(users_service.send(:interface_class)).to eq(User)
231
+ end
232
+ end
233
+
234
+ context 'when defined on class' do
235
+ before :each do
236
+ Person::GiftsService.instance_variable_set('@interface_class', User)
237
+ @gifts_service = Person::GiftsService.new
238
+ end
239
+
240
+ it 'should return the defined value' do
241
+ expect(@gifts_service.send(:interface_class)).to eq(User)
242
+ end
243
+ end
244
+ end
124
245
  end
@@ -1,130 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Zertico::Service do
4
- let(:admin_service) { Admin::UserService.new }
5
- let(:gifts_service) { Person::GiftsService.new }
6
- let(:profile_service) { Person::ProfileService.new }
7
- let(:object) { Object.new }
8
- let(:users_service) { UsersService.new }
9
- let(:user) { User.new }
10
-
11
- describe '#interface_id' do
12
- context 'when passed to initialize' do
13
- before :each do
14
- @gifts_service = Person::GiftsService.new(:interface_id => 'teste')
15
- end
16
-
17
- it 'should return it' do
18
- expect(@gifts_service.send(:interface_id)).to eq('teste')
19
- end
20
- end
21
-
22
- context 'on a pluralized service' do
23
- it 'should return id' do
24
- expect(users_service.send(:interface_id)).to eq('id')
25
- end
26
- end
27
-
28
- context 'on a namespaced service and interface model' do
29
- it 'should return id with the model name' do
30
- expect(profile_service.send(:interface_id)).to eq('person_profile_id')
4
+ describe '#initialize' do
5
+ context 'with a custom controller' do
6
+ it 'should save the name based on the controller name' do
7
+ expect(Zertico::Service.new('UsersController').name).to eq('UsersService')
31
8
  end
32
9
  end
33
10
 
34
- context 'on a namespaced service and non namespaced interface model' do
35
- it 'should return id with the model name' do
36
- expect(admin_service.send(:interface_id)).to eq('user_id')
37
- end
38
- end
39
-
40
- context 'on a non namespaced service and non namespaced interface model' do
41
- it 'should return id' do
42
- expect(users_service.send(:interface_id)).to eq('id')
43
- end
44
- end
45
-
46
- context 'when defined on class' do
47
- before :each do
48
- Person::GiftsService.instance_variable_set('@interface_id', 'abc')
49
- @gifts_service = Person::GiftsService.new
50
- end
51
-
52
- it 'should return the defined value' do
53
- expect(@gifts_service.send(:interface_id)).to eq('abc')
54
- end
55
- end
56
- end
57
-
58
- describe '#interface_name' do
59
- context 'when passed to initialize' do
60
- before :each do
61
- @gifts_service = Person::GiftsService.new(:interface_name => 'teste')
62
- end
63
-
64
- it 'should return it' do
65
- expect(@gifts_service.send(:interface_name)).to eq('teste')
66
- end
67
- end
68
-
69
- it 'should return the interface name' do
70
- expect(users_service.send(:interface_name)).to eq('user')
71
- end
72
-
73
- context 'when defined on class' do
74
- before :each do
75
- Person::GiftsService.instance_variable_set('@interface_name', 'abc')
76
- @gifts_service = Person::GiftsService.new
77
- end
78
-
79
- it 'should return the defined value' do
80
- expect(@gifts_service.send(:interface_name)).to eq('abc')
81
- end
82
- end
83
- end
84
-
85
- describe '#interface_class' do
86
- context 'when passed to initialize' do
87
- before :each do
88
- @gifts_service = Person::GiftsService.new(:interface_class => User)
89
- end
90
-
91
- it 'should return it' do
92
- expect(@gifts_service.send(:interface_class)).to eq(User)
93
- end
94
- end
95
-
96
- context 'on a pluralized service' do
97
- it 'should find the interface model' do
98
- expect(users_service.send(:interface_class)).to eq(User)
99
- end
100
- end
101
-
102
- context 'on a namespaced service and interface model' do
103
- it 'should find the interface model' do
104
- expect(profile_service.send(:interface_class)).to eq(Person::Profile)
105
- end
106
- end
107
-
108
- context 'on a namespaced service and non namespaced interface model' do
109
- it 'should find the interface model' do
110
- expect(admin_service.send(:interface_class)).to eq(User)
111
- end
112
- end
113
-
114
- context 'on a non namespaced service and non namespaced interface model' do
115
- it 'should find the interface model' do
116
- expect(users_service.send(:interface_class)).to eq(User)
117
- end
118
- end
119
-
120
- context 'when defined on class' do
121
- before :each do
122
- Person::GiftsService.instance_variable_set('@interface_class', User)
123
- @gifts_service = Person::GiftsService.new
124
- end
125
-
126
- it 'should return the defined value' do
127
- expect(@gifts_service.send(:interface_class)).to eq(User)
11
+ context 'without a custom controller' do
12
+ it 'should save the name of the service' do
13
+ expect(Zertico::Service.new.name).to eq('Zertico::Service')
128
14
  end
129
15
  end
130
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zertico
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.alpha.2
4
+ version: 2.0.0.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Henrique Lopes Ribeiro