ns-options 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,5 +4,3 @@ source 'http://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rake', '~>0.9.2'
7
-
8
- gem 'assert-mocha', :git => "git@github.com:jcredding/assert-mocha.git"
@@ -11,7 +11,7 @@ module NsOptions
11
11
  self.rules = rules
12
12
  self.value = rules[:default]
13
13
  end
14
-
14
+
15
15
  def value
16
16
  if self.type_class == NsOptions::Option::Boolean
17
17
  @value and @value.actual
@@ -21,17 +21,17 @@ module NsOptions
21
21
  end
22
22
 
23
23
  def value=(new_value)
24
- @value = if (new_value.class == self.type_class) || new_value.nil?
24
+ @value = if (new_value.kind_of?(self.type_class)) || new_value.nil?
25
25
  new_value
26
26
  else
27
27
  self.coerce(new_value)
28
28
  end
29
29
  end
30
-
30
+
31
31
  def is_set?
32
32
  self.value.respond_to?(:is_set?) ? self.value.is_set? : !self.value.nil?
33
33
  end
34
-
34
+
35
35
  def required?
36
36
  !!self.rules[:required] || !!self.rules[:require]
37
37
  end
@@ -1,3 +1,3 @@
1
1
  module NsOptions
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/ns-options.gemspec CHANGED
@@ -14,6 +14,6 @@ Gem::Specification.new do |gem|
14
14
  gem.require_paths = ["lib"]
15
15
  gem.version = NsOptions::VERSION
16
16
 
17
- gem.add_development_dependency("assert", ["~>0.6.0"])
18
- #gem.add_development_dependency("assert-mocha", ["~>0.1.0"])
17
+ gem.add_development_dependency("assert", ["~>0.6"])
18
+ gem.add_development_dependency("assert-mocha", ["~>0.1"])
19
19
  end
@@ -187,5 +187,34 @@ class NsOptions::Option
187
187
  assert_equal String, subject.type_class
188
188
  end
189
189
  end
190
+
191
+ class WithAValueOfTheSameClassTest < BaseTest
192
+ desc "with a value of the same class"
193
+ setup do
194
+ @class = Class.new
195
+ @option = NsOptions::Option.new(:something, @class)
196
+ end
197
+
198
+ should "use the object passed to it instead of creating a new one" do
199
+ value = @class.new
200
+ @option.value = value
201
+ assert_same value, @option.value
202
+ end
203
+ end
204
+
205
+ class WithAValueKindOfTest < BaseTest
206
+ desc "with a value is a kind of the class"
207
+ setup do
208
+ @class = Class.new
209
+ @child_class = Class.new(@class)
210
+ @option = NsOptions::Option.new(:something, @class)
211
+ end
212
+
213
+ should "use the object passed to it instead of creating a new one" do
214
+ value = @child_class.new
215
+ @option.value = value
216
+ assert_same value, @option.value
217
+ end
218
+ end
190
219
 
191
220
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ns-options
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Collin Redding
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-30 00:00:00 Z
18
+ date: 2011-10-26 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :development
@@ -29,10 +29,24 @@ dependencies:
29
29
  segments:
30
30
  - 0
31
31
  - 6
32
- - 0
33
- version: 0.6.0
32
+ version: "0.6"
34
33
  version_requirements: *id001
35
34
  name: assert
35
+ - !ruby/object:Gem::Dependency
36
+ type: :development
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 9
44
+ segments:
45
+ - 0
46
+ - 1
47
+ version: "0.1"
48
+ version_requirements: *id002
49
+ name: assert-mocha
36
50
  description: Define and use namespaced options with a clean interface.
37
51
  email:
38
52
  - collin.redding@reelfx.com
@@ -98,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
112
  requirements: []
99
113
 
100
114
  rubyforge_project:
101
- rubygems_version: 1.8.10
115
+ rubygems_version: 1.8.11
102
116
  signing_key:
103
117
  specification_version: 3
104
118
  summary: Define and use namespaced options with a clean interface.