csv_to_object 1.0.3 → 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/lib/csv_to_object.rb CHANGED
@@ -36,8 +36,15 @@ module CsvToObject
36
36
  end
37
37
 
38
38
  def object_to_create()
39
- class_name = File.basename(@input_path).gsub('.csv','').capitalize
40
39
  @object = Object::const_get(class_name)
41
40
  end
41
+
42
+ def class_name
43
+ bare_file_name.split('_').map { |word| word.capitalize}.join
44
+ end
45
+
46
+ def bare_file_name
47
+ File.basename(@input_path).gsub('.csv','')
48
+ end
42
49
  end
43
50
  end
@@ -1,3 +1,3 @@
1
1
  module CsvToObject
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
@@ -8,6 +8,16 @@ class Person
8
8
  end
9
9
  end
10
10
 
11
+ class MultiWordClass
12
+ attr_reader :id, :foo
13
+
14
+ def initialize(args={})
15
+ @id = args["id"]
16
+ @foo = args["foo"]
17
+ end
18
+
19
+ end
20
+
11
21
  describe CsvToObject do
12
22
  before(:each) do
13
23
  @test_csv_path = 'test/csv/person.csv'
@@ -27,6 +37,18 @@ describe CsvToObject do
27
37
  @c2o.to_objects.first.class.to_s.should == File.basename(@source_file.path).gsub('.csv','').capitalize
28
38
  end
29
39
 
40
+ context "given a multi_word file name in snake case" do
41
+ before(:each) do
42
+ @snake_case_file = 'test/csv/multi_word_class.csv'
43
+ end
44
+ it "it creates MultiWord objects" do
45
+ objects = CsvToObject::CsvToObject.new(@snake_case_file).to_objects
46
+ objects.each do |object|
47
+ object.should be_kind_of(MultiWordClass)
48
+ end
49
+ end
50
+ end
51
+
30
52
  it "returns as many objects as there are data lines in the csv file" do
31
53
  @c2o.to_objects.count.should == @number_of_data_lines
32
54
  end
@@ -0,0 +1,3 @@
1
+ id,foo
2
+ 1,bar
3
+ 2,baz
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv_to_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-30 00:00:00.000000000 Z
13
+ date: 2013-10-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -48,6 +48,7 @@ files:
48
48
  - lib/csv_to_object/version.rb
49
49
  - spec/csv_to_object_spec.rb
50
50
  - spec/spec_helper.rb
51
+ - test/csv/multi_word_class.csv
51
52
  - test/csv/person.csv
52
53
  homepage: https://github.com/SeniorServiceAmerica/csv_to_object
53
54
  licenses: []
@@ -69,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
70
  version: '0'
70
71
  requirements: []
71
72
  rubyforge_project:
72
- rubygems_version: 1.8.24
73
+ rubygems_version: 1.8.21
73
74
  signing_key:
74
75
  specification_version: 3
75
76
  summary: Given the path to a CSV file, will return a collection of objects. The csv
@@ -79,4 +80,5 @@ summary: Given the path to a CSV file, will return a collection of objects. The
79
80
  test_files:
80
81
  - spec/csv_to_object_spec.rb
81
82
  - spec/spec_helper.rb
83
+ - test/csv/multi_word_class.csv
82
84
  - test/csv/person.csv