modelish 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.2.1 (2012-3-8)
4
+
5
+ * Bug fix to make behavior predictable for translated properties when both the property
6
+ name and the translated property name are present in an initialization hash (issue #5).
7
+ * Modelish::Base#to_hash now processes the contents of Array-typed properties.
8
+
3
9
  ## 0.2.0 (2012-1-16)
4
10
 
5
11
  * Added support for mapping the same input property name to multiple outputs. This means that
data/lib/modelish/base.rb CHANGED
@@ -11,6 +11,26 @@ module Modelish
11
11
  include Validations
12
12
  extend Configuration
13
13
 
14
+ def initialize(attributes = {}, &block)
15
+ super(&block)
16
+
17
+ self.class.defaults.each_pair do |prop, value|
18
+ self[prop] = value
19
+ end
20
+
21
+ attributes.delete_if do |k,v|
22
+ if self.class.translations.keys.include?(k.to_sym)
23
+ self[k]=v
24
+ true
25
+ end
26
+ end if attributes
27
+
28
+ attributes.each_pair do |att, value|
29
+ self[att] = value
30
+ end if attributes
31
+ end
32
+
33
+
14
34
  # Creates a new attribute.
15
35
  #
16
36
  # @param [Symbol] name the name of the property
@@ -53,7 +73,12 @@ module Modelish
53
73
  out = {}
54
74
  self.class.properties.each do |p|
55
75
  val = self.send(p)
56
- out[p.to_s] = val.respond_to?(:to_hash) ? val.to_hash : val
76
+ if val.is_a?(Array)
77
+ out[p.to_s]||=[]
78
+ out[p.to_s].concat(val.collect{|x|x.respond_to?(:to_hash) ? x.to_hash : x})
79
+ else
80
+ out[p.to_s] = val.respond_to?(:to_hash) ? val.to_hash : val
81
+ end
57
82
  end
58
83
  out
59
84
  end
@@ -1,3 +1,3 @@
1
1
  module Modelish
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/modelish.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_dependency('hashie', '~> 1.0')
22
+ s.add_dependency('hashie', '1.0.0')
23
23
 
24
24
  s.add_development_dependency('rspec','~> 2.5')
25
25
  s.add_development_dependency('yard', '~> 0.6')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modelish
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 0
10
- version: 0.2.0
9
+ - 1
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Maeve Revels
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-16 00:00:00 -08:00
18
+ date: 2012-03-08 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -24,13 +24,14 @@ dependencies:
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - "="
28
28
  - !ruby/object:Gem::Version
29
- hash: 15
29
+ hash: 23
30
30
  segments:
31
31
  - 1
32
32
  - 0
33
- version: "1.0"
33
+ - 0
34
+ version: 1.0.0
34
35
  type: :runtime
35
36
  version_requirements: *id001
36
37
  - !ruby/object:Gem::Dependency