surveillance_authority 0.2.0 → 0.3.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.
- data/README.md +21 -2
- data/VERSION +1 -1
- data/lib/surveillance_authority.rb +6 -0
- data/spec/plugin_configuration_spec.rb +18 -0
- data/surveillance_authority.gemspec +1 -1
- metadata +3 -3
data/README.md
CHANGED
@@ -105,7 +105,7 @@ Withing your plugin, you will be able to access your options simply by calling `
|
|
105
105
|
|
106
106
|
|
107
107
|
class VarnishSweeper < SurveillanceAuthority::Sanctions
|
108
|
-
default_config
|
108
|
+
default_config(:method => :purge)
|
109
109
|
|
110
110
|
def sweep(url, options = {})
|
111
111
|
options.reverse_merge(
|
@@ -142,10 +142,29 @@ If you want to access the config of other plugins, use:
|
|
142
142
|
|
143
143
|
Note that you can easily provide default options for your plugin by calling `default_config` in your plugin file:
|
144
144
|
|
145
|
-
default_config
|
145
|
+
default_config(:method => :purge)
|
146
146
|
|
147
147
|
which comes in handy if some config options of your plugin do not need to be set by the users.
|
148
148
|
|
149
|
+
### Configuration Validator
|
150
|
+
|
151
|
+
If your want to make sure that all configuration values of your plugin are valid, you can define a method called `validate_configuration` that does the necessary checks. It gets called after calling `default_config` and `config=` and should get called by methods that take in options that can overwrite the configuration. It should take care of the situation. If `validate_configuration` validates it should return the `@config` variable as its result gets returned when calling `config=`.
|
152
|
+
|
153
|
+
class VarnishSweeper < SurveillanceAuthority::Sanctions
|
154
|
+
default_config(:method => :purge)
|
155
|
+
|
156
|
+
def validate_configuration
|
157
|
+
# make sure the method option is either set to :purge or :header_invalidation
|
158
|
+
raise "invalid config" unless [:purge, :header_invalidation].include?( @config[:method] )
|
159
|
+
@config
|
160
|
+
end
|
161
|
+
|
162
|
+
def sweep(url, options = {})
|
163
|
+
options = validate_configuration( self.config.merge(options) )
|
164
|
+
...
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
149
168
|
|
150
169
|
Copyright
|
151
170
|
---------
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -8,17 +8,23 @@ class SurveillanceAuthority
|
|
8
8
|
|
9
9
|
def self.default_config(options = {})
|
10
10
|
self.instance.config = options
|
11
|
+
self.instance.validate_configuration
|
11
12
|
end
|
12
13
|
|
13
14
|
def config=(options = {})
|
14
15
|
@config ||= {}
|
15
16
|
@config = @config.merge(options)
|
17
|
+
validate_configuration
|
16
18
|
end
|
17
19
|
|
18
20
|
def config
|
19
21
|
@config ||= {}
|
20
22
|
end
|
21
23
|
|
24
|
+
def validate_configuration
|
25
|
+
@config
|
26
|
+
end
|
27
|
+
|
22
28
|
VALID_HOOKS = [:validation, :validation_on_create, :save, :create]
|
23
29
|
@@plugins = []
|
24
30
|
|
@@ -3,6 +3,11 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
class Notify < SurveillanceAuthority::Sanction
|
4
4
|
default_config(:default_config => "I am a default option")
|
5
5
|
|
6
|
+
def validate_configuration
|
7
|
+
raise unless ["I am a default option", "I am not a default option"].include?( @config[:default_config] )
|
8
|
+
@config
|
9
|
+
end
|
10
|
+
|
6
11
|
def my_config
|
7
12
|
config
|
8
13
|
end
|
@@ -41,6 +46,19 @@ describe "plugin configuration" do
|
|
41
46
|
SurveillanceAuthority.config(Notify, :what => "ever")
|
42
47
|
Notify.instance.config[:default_config].should == "I am a default option"
|
43
48
|
end
|
49
|
+
|
50
|
+
it "should throw an exception if we pass in an invalid option through SurveillanceAuthority.config" do
|
51
|
+
lambda {
|
52
|
+
SurveillanceAuthority.config(Notify, :default_config => "ha ha -- I am full invalid dude")
|
53
|
+
}.should raise_error
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should throw an exception if we pass in an invalid option through Plugin.config = " do
|
57
|
+
lambda {
|
58
|
+
Notify.config = {:default_config => "ho ho ho -- valid I am not"}
|
59
|
+
}.should raise_error
|
60
|
+
end
|
61
|
+
|
44
62
|
|
45
63
|
# ALWAYS LAST:
|
46
64
|
it "should be possible for plugins to overwrite default options" do
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 3
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Daniel Bornkessel
|
@@ -252,7 +252,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
252
252
|
requirements:
|
253
253
|
- - ">="
|
254
254
|
- !ruby/object:Gem::Version
|
255
|
-
hash: -
|
255
|
+
hash: -4373169688177034088
|
256
256
|
segments:
|
257
257
|
- 0
|
258
258
|
version: "0"
|