csv-omg 1.0.2 → 1.0.4
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.
- data/README.md +4 -4
- data/lib/csv-omg.rb +3 -3
- data/lib/csv-omg/version.rb +1 -1
- data/test/csv_omg_test.rb +15 -15
- metadata +11 -11
data/README.md
CHANGED
@@ -12,10 +12,10 @@ Examples
|
|
12
12
|
class Product
|
13
13
|
include CsvOmg
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
col :name, 'product_name'
|
16
|
+
col :uid, 'product_uid', Integer
|
17
|
+
col :description, 2
|
18
|
+
col(:price_in_cents, 'product_price', Float){|float| (float * 100).round }
|
19
19
|
|
20
20
|
end
|
21
21
|
end
|
data/lib/csv-omg.rb
CHANGED
@@ -47,7 +47,7 @@ module CsvOmg
|
|
47
47
|
instances
|
48
48
|
end
|
49
49
|
|
50
|
-
def
|
50
|
+
def col(attr, *args, &block)
|
51
51
|
attr = attr.to_s
|
52
52
|
type = args.delete(([String, Float, Integer, Date, DateTime] & args).first) || String
|
53
53
|
source = args.first || attr
|
@@ -95,8 +95,8 @@ module CsvOmg
|
|
95
95
|
|
96
96
|
def create_accessor(name)
|
97
97
|
unless respond_to?('column_names') && column_names.include?(name)
|
98
|
-
create_getter(name)
|
99
|
-
create_setter(name)
|
98
|
+
create_getter(name) unless respond_to?(name)
|
99
|
+
create_setter(name) unless respond_to?("#{name}=")
|
100
100
|
end
|
101
101
|
end
|
102
102
|
end
|
data/lib/csv-omg/version.rb
CHANGED
data/test/csv_omg_test.rb
CHANGED
@@ -18,7 +18,7 @@ shared_context 'CsvOmg' do
|
|
18
18
|
context 'instances' do
|
19
19
|
before{ @instance = @klass.new }
|
20
20
|
|
21
|
-
specify 'have a getter for every
|
21
|
+
specify 'have a getter for every col' do
|
22
22
|
@instance_expectations.each do |expectations|
|
23
23
|
expectations.each do |name, value|
|
24
24
|
@instance.should.respond_to(name.to_s)
|
@@ -26,7 +26,7 @@ shared_context 'CsvOmg' do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
specify 'have a setter for every
|
29
|
+
specify 'have a setter for every col' do
|
30
30
|
@instance_expectations.each do |expectations|
|
31
31
|
expectations.each do |name, value|
|
32
32
|
@instance.should.respond_to("#{name}=")
|
@@ -56,10 +56,10 @@ module Shop
|
|
56
56
|
class Product
|
57
57
|
include CsvOmg
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
col(:category, 'product_category', Integer)
|
60
|
+
col(:created_on, 2, Date)
|
61
|
+
col(:price, 'product_price', Float)
|
62
|
+
col(:naam, 'name'){|name| "Mr. #{name}"}
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -96,11 +96,11 @@ class Transaction
|
|
96
96
|
|
97
97
|
# Price Paid,Stock Symbol,Regulator,Name,City,FDIC Number,Transaction Type,State,Program,Pricing Mechanism,Type of Institution,Total Assets,Date,OTS Number,Description
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
99
|
+
col :symbol, 'Stock Symbol'
|
100
|
+
col(:price_in_cents, 'Price Paid') {|raw| raw.to_f * 100 rescue 0.0 }
|
101
|
+
col :description, 'Description'
|
102
|
+
col :ots, 'OTS Number'
|
103
|
+
col :fdic, 'FDIC Number', Integer
|
104
104
|
end
|
105
105
|
|
106
106
|
context 'some more csv' do
|
@@ -149,10 +149,10 @@ class ARProduct < ActiveRecord::Base
|
|
149
149
|
|
150
150
|
attr_protected :name
|
151
151
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
152
|
+
col :name
|
153
|
+
col :price, 'product_price', Float
|
154
|
+
col :uid, 'product_uid', Integer
|
155
|
+
col(:created_at, 'product_created', DateTime)
|
156
156
|
|
157
157
|
end
|
158
158
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv-omg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease: !!null
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable: !!null
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: fastercsv
|
17
|
-
requirement: &
|
17
|
+
requirement: &18999540 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.5.4
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *18999540
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: test-spec
|
28
|
-
requirement: &
|
28
|
+
requirement: &18999040 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.10.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *18999040
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rr
|
39
|
-
requirement: &
|
39
|
+
requirement: &18998580 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.0.2
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *18998580
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: activerecord
|
50
|
-
requirement: &
|
50
|
+
requirement: &18998120 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 3.0.6
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *18998120
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: sqlite3
|
61
|
-
requirement: &
|
61
|
+
requirement: &18997660 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: 1.3.3
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *18997660
|
70
70
|
description: ! 'CsvOmg easily lets you map CSV to objects. Inspired by happymapper.
|
71
71
|
|
72
72
|
'
|