pisoni 1.23.2 → 1.24.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![CircleCI](https://circleci.com/gh/3scale/pisoni.svg?style=shield)](https://circleci.com/gh/3scale/pisoni)
|
2
2
|
[![Maintainability](https://api.codeclimate.com/v1/badges/4b18ae93abefdba17e0b/maintainability)](https://codeclimate.com/github/3scale/pisoni/maintainability)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/pisoni.svg)](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
|