parameters 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,10 @@
1
+ === 0.1.6 / 2009-05-11
2
+
3
+ * Fixed a bug in Parameters.params= and Parameters#params=, where they
4
+ were not handling Parameters::ClassParam or Parameters::InstanceParam
5
+ objects properly.
6
+ * Added more specs.
7
+
1
8
  === 0.1.5 / 2009-05-06
2
9
 
3
10
  * Added Parameters::Parser for parsing parameter values passed in from
@@ -17,7 +17,8 @@ lib/parameters/parameters.rb
17
17
  lib/parameters/version.rb
18
18
  tasks/spec.rb
19
19
  spec/spec_helper.rb
20
- spec/helpers/test_parameters.rb
21
- spec/helpers/inherited_parameters.rb
20
+ spec/classes/test_parameters.rb
21
+ spec/classes/inherited_parameters.rb
22
+ spec/classes/other_parameters.rb
22
23
  spec/parser_spec.rb
23
24
  spec/parameters_spec.rb
data/README.txt CHANGED
@@ -16,6 +16,7 @@ have configurable default values.
16
16
  default value.
17
17
  * Change default values of parameters.
18
18
  * Give descriptions to parameters.
19
+ * Set parameters en-mass.
19
20
 
20
21
  == EXAMPLES:
21
22
 
@@ -24,6 +24,10 @@ module Parameters
24
24
  def params=(values)
25
25
  values.each do |name,value|
26
26
  if has_param?(name)
27
+ if (value.kind_of?(Parameters::ClassParam) || value.kind_of?(Parameters::InstanceParam))
28
+ value = value.value
29
+ end
30
+
27
31
  get_param(name).value = value
28
32
  end
29
33
  end
@@ -238,8 +242,14 @@ module Parameters
238
242
  #
239
243
  def params=(values)
240
244
  values.each do |name,value|
245
+ name = name.to_sym
246
+
241
247
  if has_param?(name)
242
- self.params[name.to_sym].value = value
248
+ if (value.kind_of?(Parameters::ClassParam) || value.kind_of?(Parameters::InstanceParam))
249
+ value = value.value
250
+ end
251
+
252
+ self.params[name].value = value
243
253
  end
244
254
  end
245
255
  end
@@ -1,3 +1,3 @@
1
1
  module Parameters
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'helpers/test_parameters'
1
+ require 'classes/test_parameters'
2
2
 
3
3
  class InheritedParameters < TestParameters
4
4
 
@@ -0,0 +1,10 @@
1
+ class OtherParameters
2
+ include Parameters
3
+
4
+ parameter :var, :description => 'Test parameter'
5
+
6
+ parameter :var_with_default,
7
+ :default => 'other',
8
+ :description => 'This parameter has a default value'
9
+
10
+ end
@@ -2,8 +2,9 @@ require 'parameters/parameters'
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- require 'helpers/test_parameters'
6
- require 'helpers/inherited_parameters'
5
+ require 'classes/test_parameters'
6
+ require 'classes/inherited_parameters'
7
+ require 'classes/other_parameters'
7
8
 
8
9
  describe Parameters do
9
10
  describe "in a Class" do
@@ -49,7 +50,7 @@ describe Parameters do
49
50
  end
50
51
 
51
52
  describe "in an Object" do
52
- before(:all) do
53
+ before(:each) do
53
54
  @test = TestParameters.new
54
55
  @test_inherited = InheritedParameters.new
55
56
  end
@@ -59,14 +60,6 @@ describe Parameters do
59
60
  @test.params[:var_with_default].should_not be_nil
60
61
  end
61
62
 
62
- it "should allow for mass assignment of parameters" do
63
- test2 = TestParameters.new
64
- test2.params = {:var => 5, :var_with_default => 'hello'}
65
-
66
- test2.var.should == 5
67
- test2.var_with_default.should == 'hello'
68
- end
69
-
70
63
  it "can have default values for parameters" do
71
64
  @test.param_value(:var_with_default).should == 'thing'
72
65
  end
@@ -84,10 +77,9 @@ describe Parameters do
84
77
  end
85
78
 
86
79
  it "should allow using lambdas for the default values of parameters" do
87
- test1 = TestParameters.new
88
80
  test2 = TestParameters.new
89
81
 
90
- test1.var_with_lambda.should_not == test2.var_with_lambda
82
+ @test.var_with_lambda.should_not == test2.var_with_lambda
91
83
  end
92
84
 
93
85
  it "should contain the parameters from all ancestors" do
@@ -113,6 +105,21 @@ describe Parameters do
113
105
  @test.param_value(:var_with_default).should == 7
114
106
  end
115
107
 
108
+ it "should allow for setting parameters en-mass from another object" do
109
+ obj = TestParameters.new(:var => 5, :var_with_default => 'hello')
110
+ @test.params = obj.params
111
+
112
+ @test.var.should == 5
113
+ @test.var_with_default.should == 'hello'
114
+ end
115
+
116
+ it "should allow for setting parameters en-mass from another class" do
117
+ @test.params = OtherParameters.params
118
+
119
+ @test.var.should be_nil
120
+ @test.var_with_default.should == 'other'
121
+ end
122
+
116
123
  it "should provide descriptions for parameters" do
117
124
  @test.describe_param(:var).should_not be_empty
118
125
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parameters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-06 00:00:00 -07:00
12
+ date: 2009-05-11 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -53,8 +53,9 @@ files:
53
53
  - lib/parameters/version.rb
54
54
  - tasks/spec.rb
55
55
  - spec/spec_helper.rb
56
- - spec/helpers/test_parameters.rb
57
- - spec/helpers/inherited_parameters.rb
56
+ - spec/classes/test_parameters.rb
57
+ - spec/classes/inherited_parameters.rb
58
+ - spec/classes/other_parameters.rb
58
59
  - spec/parser_spec.rb
59
60
  - spec/parameters_spec.rb
60
61
  has_rdoc: true