pisoni 1.23.2 → 1.24.0
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +1 -0
- data/lib/3scale/core/service.rb +25 -1
- data/lib/3scale/core/version.rb +1 -1
- data/spec/service_spec.rb +67 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4dc7a68d6d7ae8b6523c0956c9425a587c53b4cac5a18eb7466e9455c38ef15
|
4
|
+
data.tar.gz: e930a4713a961846d6c84207a2435c72f1a957acc6c4ea313c48123a5d953678
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5aa1351666750cd74d9b55652268155898ec5e3554bd085f8d0590fadc8d1a60d63152f6e31d7f7f48da191f26a503a543a6b6b31a470739f6af1a23d0aad11d
|
7
|
+
data.tar.gz: a40c08e47e58ec21db44a12e01dc0b202f0d264a34677ca9029fa23816689acb7426f4fe7d2a24abd6cb08f17c4833ea417a8d46e4833fdd3885b56b29c2d095
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
Notable changes to Pisoni will be tracked in this document.
|
4
4
|
|
5
|
+
## 1.24.0 - 2018-06-29
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- Services can now be activated/deactivated based on the `state` attribute.
|
10
|
+
([#7](https://github.com/3scale/pisoni/pull/7))
|
11
|
+
|
5
12
|
## 1.23.2 - 2018-06-04
|
6
13
|
|
7
14
|
### Changed
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
[](https://circleci.com/gh/3scale/pisoni)
|
2
2
|
[](https://codeclimate.com/github/3scale/pisoni/maintainability)
|
3
|
+
[](https://badge.fury.io/rb/pisoni)
|
3
4
|
|
4
5
|
# Pisoni
|
5
6
|
|
data/lib/3scale/core/service.rb
CHANGED
@@ -3,7 +3,7 @@ module ThreeScale
|
|
3
3
|
class Service < APIClient::Resource
|
4
4
|
attributes :provider_key, :id, :backend_version, :referrer_filters_required,
|
5
5
|
:user_registration_required, :default_user_plan_id,
|
6
|
-
:default_user_plan_name, :default_service
|
6
|
+
:default_user_plan_name, :default_service, :state
|
7
7
|
|
8
8
|
class << self
|
9
9
|
def load_by_id(service_id)
|
@@ -66,6 +66,19 @@ module ThreeScale
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
+
def initialize(attributes = {})
|
70
|
+
@state = :active
|
71
|
+
super(attributes)
|
72
|
+
end
|
73
|
+
|
74
|
+
def activate
|
75
|
+
self.state = :active
|
76
|
+
end
|
77
|
+
|
78
|
+
def deactivate
|
79
|
+
self.state = :suspended
|
80
|
+
end
|
81
|
+
|
69
82
|
def referrer_filters_required?
|
70
83
|
@referrer_filters_required
|
71
84
|
end
|
@@ -74,9 +87,20 @@ module ThreeScale
|
|
74
87
|
@user_registration_required
|
75
88
|
end
|
76
89
|
|
90
|
+
def active?
|
91
|
+
state == :active
|
92
|
+
end
|
93
|
+
|
77
94
|
def save!
|
78
95
|
self.class.save! attributes
|
79
96
|
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def state=(value)
|
101
|
+
# only :active or nil will be considered as :active
|
102
|
+
@state = value.nil? || value.to_sym == :active ? :active : :suspended
|
103
|
+
end
|
80
104
|
end
|
81
105
|
end
|
82
106
|
end
|
data/lib/3scale/core/version.rb
CHANGED
data/spec/service_spec.rb
CHANGED
@@ -105,6 +105,28 @@ module ThreeScale
|
|
105
105
|
Service.save!(@service_params)
|
106
106
|
end.must_raise ServiceRequiresDefaultUserPlan
|
107
107
|
end
|
108
|
+
|
109
|
+
it 'save active service' do
|
110
|
+
service = Service.new(@service_params)
|
111
|
+
service.wont_be_nil
|
112
|
+
service.activate
|
113
|
+
service.active?.must_equal true
|
114
|
+
service.save!
|
115
|
+
loaded_service = Service.load_by_id(@service_params[:id])
|
116
|
+
loaded_service.wont_be_nil
|
117
|
+
loaded_service.active?.must_equal true
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'save disable service' do
|
121
|
+
service = Service.new(@service_params)
|
122
|
+
service.wont_be_nil
|
123
|
+
service.deactivate
|
124
|
+
service.active?.must_equal false
|
125
|
+
service.save!
|
126
|
+
loaded_service = Service.load_by_id(@service_params[:id])
|
127
|
+
loaded_service.wont_be_nil
|
128
|
+
loaded_service.active?.must_equal false
|
129
|
+
end
|
108
130
|
end
|
109
131
|
|
110
132
|
describe '.make_default' do
|
@@ -154,6 +176,51 @@ module ThreeScale
|
|
154
176
|
end.must_raise InvalidProviderKeys
|
155
177
|
end
|
156
178
|
end
|
179
|
+
|
180
|
+
describe '.active?' do
|
181
|
+
it 'should be active when service is initialized as active' do
|
182
|
+
[
|
183
|
+
{ state: :active },
|
184
|
+
{ state: 'active' },
|
185
|
+
# even when state is not set
|
186
|
+
{},
|
187
|
+
# even when state is intentionally set as nil
|
188
|
+
{ state: nil }
|
189
|
+
].each do |svc_attrs|
|
190
|
+
Service.new(svc_attrs).active?.must_equal true
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
it 'should be inactive when service is initialized as disabled' do
|
195
|
+
[
|
196
|
+
{ state: :suspended },
|
197
|
+
{ state: 'suspended' },
|
198
|
+
{ state: :something },
|
199
|
+
{ state: :disable },
|
200
|
+
{ state: :disabled },
|
201
|
+
{ state: '1' },
|
202
|
+
{ state: '0' },
|
203
|
+
{ state: 'true' },
|
204
|
+
{ state: 'false' }
|
205
|
+
].each do |svc_attrs|
|
206
|
+
Service.new(svc_attrs).active?.must_equal false
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
it 'should be active when the service is activated' do
|
211
|
+
s = Service.new(state: :disable)
|
212
|
+
s.active?.must_equal false
|
213
|
+
s.activate
|
214
|
+
s.active?.must_equal true
|
215
|
+
end
|
216
|
+
|
217
|
+
it 'should be disabled when the service is deactivated' do
|
218
|
+
s = Service.new(state: :active)
|
219
|
+
s.active?.must_equal true
|
220
|
+
s.deactivate
|
221
|
+
s.active?.must_equal false
|
222
|
+
end
|
223
|
+
end
|
157
224
|
end
|
158
225
|
end
|
159
226
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pisoni
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alejandro Martinez Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|