gotime-cassandra_object 0.7.6 → 0.7.7

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.
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{gotime-cassandra_object}
8
- s.version = "0.7.6"
8
+ s.version = "0.7.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Koziarski", "grantr"]
12
- s.date = %q{2011-02-11}
12
+ s.date = %q{2011-02-17}
13
13
  s.description = %q{Cassandra ActiveModel}
14
14
  s.email = %q{grantr@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -3,6 +3,7 @@ module CassandraObject
3
3
  REGEX = /\A[-+]?\d+\Z/
4
4
  def encode(int)
5
5
  return '' if int.nil?
6
+ int = int.to_i if int.kind_of?(String) && int.match(REGEX)
6
7
  raise ArgumentError.new("#{self} requires an Integer. You passed #{int.inspect}") unless int.kind_of?(Integer)
7
8
  int.to_s
8
9
  end
@@ -20,6 +21,7 @@ module CassandraObject
20
21
  REGEX = /\A[-+]?\d+(\.\d+)\Z/
21
22
  def encode(float)
22
23
  return '' if float.nil?
24
+ float = float.to_f if float.kind_of?(String) && float.match(REGEX)
23
25
  raise ArgumentError.new("#{self} requires a Float") unless float.kind_of?(Float)
24
26
  float.to_s
25
27
  end
@@ -38,6 +40,7 @@ module CassandraObject
38
40
  REGEX = /\A\d{4}-\d{2}-\d{2}\Z/
39
41
  def encode(date)
40
42
  return '' if date.nil?
43
+ date = Date.parse(date) if date.kind_of?(String) && date.match(REGEX)
41
44
  raise ArgumentError.new("#{self} requires a Date") unless date.kind_of?(Date)
42
45
  date.strftime(FORMAT)
43
46
  end
@@ -63,6 +66,7 @@ module CassandraObject
63
66
 
64
67
  def encode(time)
65
68
  return '' if time.nil?
69
+ time = Time.parse(time) if time.kind_of?(String) && time.match(REGEX)
66
70
  raise ArgumentError.new("#{self} requires a Time") unless time.kind_of?(Time)
67
71
  time.xmlschema(6)
68
72
  end
@@ -79,13 +83,16 @@ module CassandraObject
79
83
  module TimeWithZoneType
80
84
  def encode(time)
81
85
  return '' if time.nil?
82
- TimeType.encode(time.utc)
86
+ time = Time.zone.parse(time) if time.kind_of?(String) && time.match(TimeType::REGEX)
87
+ raise ArgumentError.new("#{self} requires a Time") unless time.kind_of?(Time)
88
+ time.utc.xmlschema(6)
83
89
  end
84
90
  module_function :encode
85
91
 
86
92
  def decode(str)
87
93
  return nil if str.empty?
88
- TimeType.decode(str).in_time_zone
94
+ raise ArgumentError.new("#{str} isn't a String that looks like a Time") unless str.kind_of?(String) && str.match(TimeType::REGEX)
95
+ Time.xmlschema(str).in_time_zone
89
96
  end
90
97
  module_function :decode
91
98
  end
@@ -136,12 +143,13 @@ module CassandraObject
136
143
  end
137
144
 
138
145
  module BooleanType
139
- ALLOWED = [true, false, nil]
146
+ TRUE_VALS = [true, 'true', '1']
147
+ FALSE_VALS = [false, 'false', '0', nil]
140
148
  def encode(bool)
141
- unless ALLOWED.any?{ |a| bool == a }
142
- raise ArgumentError.new("#{self} requires a Boolean or nil")
149
+ unless TRUE_VALS.any? { |a| bool == a } || FALSE_VALS.any?{ |a| bool == a }
150
+ raise ArgumentError.new("#{self} requires a Boolean or nil")
143
151
  end
144
- bool ? '1' : '0'
152
+ TRUE_VALS.include?(bool) ? '1' : '0'
145
153
  end
146
154
  module_function :encode
147
155
 
@@ -2,7 +2,7 @@ module CassandraObject
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 7
5
- PATCH = 6
5
+ PATCH = 7
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 6
9
- version: 0.7.6
8
+ - 7
9
+ version: 0.7.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Michael Koziarski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-11 00:00:00 -08:00
18
+ date: 2011-02-17 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -213,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
214
  - - ">="
215
215
  - !ruby/object:Gem::Version
216
- hash: -2972902042338948118
216
+ hash: -226474256886539699
217
217
  segments:
218
218
  - 0
219
219
  version: "0"