typed_fields 0.0.2 → 0.0.3

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.
@@ -109,14 +109,19 @@ module TypedFields
109
109
 
110
110
  module InstanceMethods
111
111
  def initialize_fields params
112
+ symbolized_params = symbolize_hash params
112
113
  self.class.saved_type_info.each do |type_info|
113
- value = value_for params, type_info
114
+ value = value_for symbolized_params, type_info
114
115
  set_value type_info.field_name, value
115
116
  end
116
117
  end
117
118
 
118
119
  private
119
120
 
121
+ def symbolize_hash hash
122
+ hash.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
123
+ end
124
+
120
125
  def value_for params, type_info
121
126
  if passed_value_for? params, type_info
122
127
  value = parse_passed_value params, type_info
@@ -1,3 +1,3 @@
1
1
  module TypedFields
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -33,6 +33,12 @@ describe TypedFields do
33
33
  object.initialize_fields :another_field => "value"
34
34
  f(:another_field).should be_nil
35
35
  end
36
+
37
+ it "should symbolize all keys of a passed hash" do
38
+ clazz.object :field
39
+ object.initialize_fields "field" => "value"
40
+ f(:field).should == "value"
41
+ end
36
42
  end
37
43
 
38
44
  context "default values" do
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Victor Savkin"]
9
9
  s.email = ["vic.savkin@gmail.com"]
10
10
  s.homepage = ""
11
- s.summary = %q{It types all your fields. Adds methods to convert a hash of strings into specified types.}
12
- s.description = %q{}
11
+ s.summary = %q{Type conversions based on fields' types. Similar to what ActiveRecord does.}
12
+ s.description = %q{Type conversions based on fields' types. Similar to what ActiveRecord does.}
13
13
 
14
14
  s.rubyforge_project = "typed_fields"
15
15
 
@@ -19,4 +19,5 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_development_dependency "rspec"
22
+ s.add_development_dependency "rake"
22
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typed_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-26 00:00:00.000000000Z
12
+ date: 2011-12-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2157005440 !ruby/object:Gem::Requirement
16
+ requirement: &70235563437340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,8 +21,20 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2157005440
25
- description: ''
24
+ version_requirements: *70235563437340
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70235563436800 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70235563436800
36
+ description: Type conversions based on fields' types. Similar to what ActiveRecord
37
+ does.
26
38
  email:
27
39
  - vic.savkin@gmail.com
28
40
  executables: []
@@ -50,19 +62,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
50
62
  - - ! '>='
51
63
  - !ruby/object:Gem::Version
52
64
  version: '0'
65
+ segments:
66
+ - 0
67
+ hash: -415851363203140830
53
68
  required_rubygems_version: !ruby/object:Gem::Requirement
54
69
  none: false
55
70
  requirements:
56
71
  - - ! '>='
57
72
  - !ruby/object:Gem::Version
58
73
  version: '0'
74
+ segments:
75
+ - 0
76
+ hash: -415851363203140830
59
77
  requirements: []
60
78
  rubyforge_project: typed_fields
61
79
  rubygems_version: 1.8.10
62
80
  signing_key:
63
81
  specification_version: 3
64
- summary: It types all your fields. Adds methods to convert a hash of strings into
65
- specified types.
82
+ summary: Type conversions based on fields' types. Similar to what ActiveRecord does.
66
83
  test_files:
67
84
  - spec/spec_helper.rb
68
85
  - spec/typed_fields_spec.rb