flipper-mongo 0.5.0 → 0.6.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.
@@ -15,6 +15,6 @@ Gem::Specification.new do |gem|
15
15
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
 
18
- gem.add_dependency 'flipper', '~> 0.5.0'
18
+ gem.add_dependency 'flipper', '~> 0.6.0'
19
19
  gem.add_dependency 'mongo', '~> 1.8'
20
20
  end
@@ -18,6 +18,29 @@ module Flipper
18
18
  @name = :mongo
19
19
  end
20
20
 
21
+ # Public: The set of known features.
22
+ def features
23
+ find(FeaturesKey).fetch('features') { Set.new }.to_set
24
+ end
25
+
26
+ # Public: Adds a feature to the set of known features.
27
+ def add(feature)
28
+ update FeaturesKey, '$addToSet' => {'features' => feature.name.to_s}
29
+ true
30
+ end
31
+
32
+ # Public: Removes a feature from the set of known features.
33
+ def remove(feature)
34
+ update FeaturesKey, '$pull' => {'features' => feature.name.to_s}
35
+ clear feature
36
+ true
37
+ end
38
+
39
+ # Public: Clears all the gate values for a feature.
40
+ def clear(feature)
41
+ delete feature.key
42
+ end
43
+
21
44
  # Public: Gets the values for all gates for a given feature.
22
45
  #
23
46
  # Returns a Hash of Flipper::Gate#key => value.
@@ -73,7 +96,7 @@ module Flipper
73
96
  def disable(feature, gate, thing)
74
97
  case gate.data_type
75
98
  when :boolean
76
- remove feature.key
99
+ delete feature.key
77
100
  when :integer
78
101
  update feature.key, '$set' => {gate.key.to_s => thing.value.to_s}
79
102
  when :set
@@ -85,17 +108,6 @@ module Flipper
85
108
  true
86
109
  end
87
110
 
88
- # Public: Adds a feature to the set of known features.
89
- def add(feature)
90
- update FeaturesKey, '$addToSet' => {'features' => feature.name.to_s}
91
- true
92
- end
93
-
94
- # Public: The set of known features.
95
- def features
96
- find(FeaturesKey).fetch('features') { Set.new }.to_set
97
- end
98
-
99
111
  # Private
100
112
  def unsupported_data_type(data_type)
101
113
  raise "#{data_type} is not supported by this adapter"
@@ -113,7 +125,7 @@ module Flipper
113
125
  end
114
126
 
115
127
  # Private
116
- def remove(key)
128
+ def delete(key)
117
129
  @collection.remove criteria(key)
118
130
  end
119
131
 
@@ -1,7 +1,7 @@
1
1
  module Flipper
2
2
  module Adapters
3
3
  class Mongo
4
- VERSION = "0.5.0"
4
+ VERSION = "0.6.0"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper-mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
12
+ date: 2013-02-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: flipper
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.5.0
21
+ version: 0.6.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 0.5.0
29
+ version: 0.6.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: mongo
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -79,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
79
  version: '0'
80
80
  segments:
81
81
  - 0
82
- hash: 1536259830562571499
82
+ hash: 2022872060542852797
83
83
  required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  segments:
90
90
  - 0
91
- hash: 1536259830562571499
91
+ hash: 2022872060542852797
92
92
  requirements: []
93
93
  rubyforge_project:
94
94
  rubygems_version: 1.8.23