loady 0.0.1 → 0.0.2

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.
@@ -2,6 +2,8 @@
2
2
 
3
3
  Loady is a simple file reader and logger. Use it to quickly load a csv file, continue on error rows, and do basic logging.
4
4
 
5
+ Currently it only works with ruby 1.9.
6
+
5
7
  == Install
6
8
 
7
9
  gem install loady
@@ -19,7 +21,8 @@ By default, messages are logged to the standard output.
19
21
  Basic usage:
20
22
 
21
23
  Loady::CsvLoader.read "/your/file.csv" do |row|
22
- puts "#{row[0]},#{row[1]},etc."
24
+ # your code to process each row goes here
25
+ puts "#{row[0]}, #{row[1]}, etc."
23
26
  end
24
27
 
25
28
  Skip first row and log to a file:
@@ -27,9 +30,17 @@ Skip first row and log to a file:
27
30
  logger = Logger.new("/your/file.log")
28
31
 
29
32
  Loady::CsvLoader.read "/your/file.csv", :logger => logger, :skip_first_row => true do |row|
30
- # do some stuff
33
+ # do some stuff for each row
34
+ end
35
+
36
+ Name your attributes:
37
+
38
+ Loady::CsvLoader.read "/your/file.csv" do |row|
39
+ attrs = Loady.named_attribute_hash row, [:name, :year, :mom]
40
+ Monkey.create attrs
31
41
  end
32
42
 
43
+
33
44
  == Development
34
45
 
35
46
  Fork away. Please create a topic branch and write passing tests if you are submitting a pull request.
@@ -1 +1,27 @@
1
1
  require 'loady/csv_loader.rb'
2
+
3
+ module Loady
4
+
5
+ # Loady::named_attribute_hash row, [:name, :age, :email]
6
+ # => { :name => 'Bob', :age => '21', :email => 'bob@example.com' }
7
+ #
8
+ # options:
9
+ # :strip => false -- default = true -- strip each row value
10
+ def named_attribute_hash(row, attrs, options={})
11
+ options = options.merge!(:strip => true){|k,o,n| o }
12
+
13
+ h = {}
14
+
15
+ attrs.each_with_index do |attr, i|
16
+ if options[:strip]
17
+ h[attr] = row[i].strip
18
+ else
19
+ h[attr] = row[i]
20
+ end
21
+ end
22
+
23
+ h
24
+ end
25
+ module_function :named_attribute_hash
26
+
27
+ end
@@ -7,7 +7,7 @@ module Loady
7
7
  # options:
8
8
  # :skip_first_row => true -- default = false
9
9
  # :logger => Logger.new('/somewhere/file.log') -- default = Logger.new(STDOUT)
10
- def self.read(filename, options = {})
10
+ def self.read(filename, options={})
11
11
  success = 0
12
12
  warning = 0
13
13
 
@@ -55,6 +55,6 @@ module Loady
55
55
  logger.fatal "Unhandled error: \n#{message}\n"
56
56
  end
57
57
  end
58
-
58
+
59
59
  end
60
60
  end
@@ -1,3 +1,3 @@
1
1
  module Loady
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -2,9 +2,6 @@ require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  class CsvLoaderTest < Test::Unit::TestCase
4
4
  context "Simple class" do
5
- setup do
6
- end
7
-
8
5
  should "read file1" do
9
6
  monkeys = []
10
7
 
@@ -12,11 +9,11 @@ class CsvLoaderTest < Test::Unit::TestCase
12
9
  monkeys << { :name => row[0], :year => row[1] }
13
10
  end
14
11
 
15
- assert monkeys.count == 10, "total rows read"
16
- assert monkeys[0][:name] == "Bubbles", "first row name"
17
- assert monkeys[0][:year] == "2000", "first row year"
18
- assert monkeys[9][:name] == "King Kong", "last row name"
19
- assert monkeys[9][:year] == "1933", "last row year"
12
+ assert_equal monkeys.count, 10, "total rows read"
13
+ assert_equal monkeys[0][:name], "Bubbles", "first row name"
14
+ assert_equal monkeys[0][:year], "2000", "first row year"
15
+ assert_equal monkeys[9][:name], "King Kong", "last row name"
16
+ assert_equal monkeys[9][:year], "1933", "last row year"
20
17
  end
21
18
 
22
19
  should "read file2" do
@@ -27,12 +24,12 @@ class CsvLoaderTest < Test::Unit::TestCase
27
24
  monkeys << { :name => row[0], :year => row[1] }
28
25
  end
29
26
 
30
- assert monkeys.count == 10, "total rows read"
31
- assert monkeys[0][:name] == "Bubbles", "first row name"
32
- assert monkeys[0][:year] == "2000", "first row year"
33
- assert monkeys[9][:name] == "King Kong", "last row name"
34
- assert monkeys[9][:year] == "1933", "last row year"
27
+ assert_equal monkeys.count, 10, "total rows read"
28
+ assert_equal monkeys[0][:name], "Bubbles", "first row name"
29
+ assert_equal monkeys[0][:year], "2000", "first row year"
30
+ assert_equal monkeys[9][:name], "King Kong", "last row name"
31
+ assert_equal monkeys[9][:year], "1933", "last row year"
35
32
  end
36
-
33
+
37
34
  end
38
35
  end
@@ -0,0 +1,17 @@
1
+ require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
+
3
+ class CsvLoaderTest < Test::Unit::TestCase
4
+ context "helper" do
5
+
6
+ should "build named_attribute_hash" do
7
+ row = ['Bubbles ', '2000', ' King Kong ']
8
+ attrs = Loady.named_attribute_hash row, [:name, :year, :mom]
9
+
10
+ assert_equal attrs.size, 3
11
+ assert_equal attrs[:name], 'Bubbles'
12
+ assert_equal attrs[:year], '2000'
13
+ assert_equal attrs[:mom], 'King Kong'
14
+ end
15
+
16
+ end
17
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loady
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 1
9
- version: 0.0.1
4
+ prerelease:
5
+ version: 0.0.2
10
6
  platform: ruby
11
7
  authors:
12
8
  - Tee Parham
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-01-13 00:00:00 -07:00
13
+ date: 2011-04-14 00:00:00 -06:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,8 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ">="
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
24
  version: "0"
31
25
  type: :development
32
26
  version_requirements: *id001
@@ -38,8 +32,6 @@ dependencies:
38
32
  requirements:
39
33
  - - ">="
40
34
  - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
35
  version: "0"
44
36
  type: :development
45
37
  version_requirements: *id002
@@ -66,6 +58,7 @@ files:
66
58
  - test/csv/file2.csv
67
59
  - test/test_csv_loader.rb
68
60
  - test/test_helper.rb
61
+ - test/test_loady.rb
69
62
  has_rdoc: true
70
63
  homepage: ""
71
64
  licenses: []
@@ -80,21 +73,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
73
  requirements:
81
74
  - - ">="
82
75
  - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
76
  version: "0"
86
77
  required_rubygems_version: !ruby/object:Gem::Requirement
87
78
  none: false
88
79
  requirements:
89
80
  - - ">="
90
81
  - !ruby/object:Gem::Version
91
- segments:
92
- - 0
93
82
  version: "0"
94
83
  requirements: []
95
84
 
96
85
  rubyforge_project: loady
97
- rubygems_version: 1.3.7
86
+ rubygems_version: 1.6.2
98
87
  signing_key:
99
88
  specification_version: 3
100
89
  summary: CSV file loader with simple logging
@@ -103,3 +92,4 @@ test_files:
103
92
  - test/csv/file2.csv
104
93
  - test/test_csv_loader.rb
105
94
  - test/test_helper.rb
95
+ - test/test_loady.rb