dynamini 1.4.4 → 1.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dynamini/base.rb +16 -7
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f65e4e539187be02eec99df8a3ef5e0655e48d9a
4
- data.tar.gz: 725533bd0c3e8e6957991a254b6b28a6769ca312
3
+ metadata.gz: 9030669fa83760a839b54ca3d30de31f12d6728f
4
+ data.tar.gz: 6da22cb5241738b47fcb7f53e99737b28264ee0e
5
5
  SHA512:
6
- metadata.gz: 79e2610363aac43843fc7b3052ecccb8c2118759cbf845196b5acbba349a586a7b8a582ede16f9ee0651c5a66dffff832303aef26b7694782cbb22adfc6ee2e1
7
- data.tar.gz: abb930cd9c43428e0caaf4d22299721626e02ec3dbf6f79a68131edde9801e055b8772b60d6b9e7140684c6322861ae2e1e7f6a0f940c78e7b22b64a47387712
6
+ metadata.gz: e31ceef53ba6ec4d4e6532b59dc712ef590ce69370d9861aea5bd932d8c77456989efffbdbd6c4661631678d8acb45bbd83a08a56359aea95fedfd61810d9ad3
7
+ data.tar.gz: 5cb53605a49b9c1f38852381ec97d5bc7268d8a0f2b91783ff86a898c2425c35864dc7ab1869c84720483c0e013ec6e20025506dfd6ed28dc2c467f02aea83a6
data/lib/dynamini/base.rb CHANGED
@@ -4,7 +4,7 @@ module Dynamini
4
4
  attr_reader :attributes
5
5
 
6
6
  BATCH_SIZE = 25
7
- TRANSLATION_PROCS = {
7
+ GETTER_PROCS = {
8
8
  integer: Proc.new { |v| v.to_i },
9
9
  datetime: Proc.new { |v| Time.at(v.to_f) },
10
10
  float: Proc.new { |v| v.to_f },
@@ -12,6 +12,9 @@ module Dynamini
12
12
  string: Proc.new { |v| v },
13
13
  boolean: Proc.new { |v| ['true', '1', '1.0'].include? v }
14
14
  }
15
+ SETTER_PROCS = {
16
+ datetime: Proc.new { |v| v.to_f }
17
+ }
15
18
 
16
19
  class << self
17
20
  attr_writer :batch_write_queue, :in_memory
@@ -30,7 +33,7 @@ module Dynamini
30
33
 
31
34
  def handle(column, format_class, options={})
32
35
  define_handled_getter(column, format_class, options)
33
- define_handled_setter(column)
36
+ define_handled_setter(column, format_class)
34
37
  end
35
38
 
36
39
  def hash_key
@@ -282,7 +285,7 @@ module Dynamini
282
285
  end
283
286
 
284
287
  def self.define_handled_getter(column, format_class, options={})
285
- proc = TRANSLATION_PROCS[format_class]
288
+ proc = GETTER_PROCS[format_class]
286
289
  raise 'Unsupported data type: ' + format_class.to_s if proc.nil?
287
290
  define_method(column) do
288
291
  if @attributes.has_key?(column)
@@ -293,11 +296,17 @@ module Dynamini
293
296
  end
294
297
  end
295
298
 
296
- def self.define_handled_setter(column)
299
+ def self.define_handled_setter(column, format_class)
297
300
  setter_symbol = (column.to_s + '=').to_sym
298
-
299
- define_method(setter_symbol) do |value|
300
- write_attribute(column, value)
301
+ proc = SETTER_PROCS[format_class]
302
+ if proc
303
+ define_method(setter_symbol) do |value|
304
+ write_attribute(column, proc.call(value))
305
+ end
306
+ else
307
+ define_method(setter_symbol) do |value|
308
+ write_attribute(column, value)
309
+ end
301
310
  end
302
311
  end
303
312
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamini
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.4
4
+ version: 1.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Ward
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-10-14 00:00:00.000000000 Z
15
+ date: 2015-10-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activemodel