loady 0.5.1 → 0.6.0

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.
@@ -1,4 +1,4 @@
1
- require 'loady/array'
1
+ require 'loady/attribute_array'
2
2
  require 'loady/csv_loader'
3
3
  require 'loady/memory_logger'
4
4
 
@@ -1,8 +1,9 @@
1
1
  module Loady
2
- module Array
2
+ class AttributeArray < Array
3
3
 
4
4
  # usage:
5
- # ['john', 'doe'].to_attributes([:first, :last])
5
+ # aa = Loady::AttributeArray.new(['john', 'doe'])
6
+ # aa.to_attributes([:first, :last])
6
7
  # => { first: 'john', last: 'doe' }
7
8
  #
8
9
  # options:
@@ -6,8 +6,8 @@ module Loady
6
6
 
7
7
  class << self
8
8
  # valid options:
9
- # :skip_first_row => true -- default = false
10
- # :logger => Logger.new('/somewhere/file.log') -- default = Logger.new(STDOUT)
9
+ # skip_first_row: true -- default = false
10
+ # logger: Logger.new('/somewhere/file.log') -- default = Logger.new(STDOUT)
11
11
  # plus any valid options you can pass to CSV.new:
12
12
  # see http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/classes/CSV.html#M000190
13
13
  def read(filename, options={})
@@ -26,8 +26,7 @@ module Loady
26
26
  begin
27
27
  line_number += 1
28
28
 
29
- row = CSV.parse(line, options)[0]
30
- row.extend Loady::Array
29
+ row = Loady::AttributeArray.new CSV.parse(line, options)[0]
31
30
 
32
31
  unless row.empty?
33
32
  yield row
@@ -1,3 +1,3 @@
1
1
  module Loady
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = Loady::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Tee Parham"]
10
- s.email = ["tee@neighborland.com"]
10
+ s.email = %w(tee@neighborland.com)
11
11
  s.homepage = "http://github.com/teeparham/loady"
12
12
  s.summary = %q{CSV file loader with simple logging}
13
13
  s.description = %q{CSV file loader with simple logging}
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
- s.require_paths = ["lib"]
20
+ s.require_paths = %w(lib)
21
21
 
22
22
  s.add_development_dependency "test-unit"
23
23
  s.add_development_dependency "shoulda"
@@ -1,13 +1,20 @@
1
1
  require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- class LoadyTest < Test::Unit::TestCase
4
- context "#to_attributes" do
3
+ class AttributeArrayTest < Test::Unit::TestCase
4
+ should "respond to to_attributes" do
5
+ aa = Loady::AttributeArray.new
6
+ assert aa.respond_to? :to_attributes
7
+ end
8
+
9
+ should "initialize with Array" do
10
+ aa = Loady::AttributeArray.new([1,2])
11
+ assert_equal [1,2], aa
12
+ end
5
13
 
14
+ context "#to_attributes" do
6
15
  should "return named attributes" do
7
- row = ['Bubbles ', '2000', ' King Kong ']
8
- row.extend Loady::Array
16
+ row = Loady::AttributeArray.new(['Bubbles ', '2000', ' King Kong '])
9
17
  attrs = row.to_attributes [:name, :year, :mom]
10
-
11
18
  assert_equal attrs.size, 3
12
19
  assert_equal attrs[:name], 'Bubbles'
13
20
  assert_equal attrs[:year], '2000'
@@ -15,15 +22,12 @@ class LoadyTest < Test::Unit::TestCase
15
22
  end
16
23
 
17
24
  should "return named attributes when missing values" do
18
- row = ['Bubbles ', '2000']
19
- row.extend Loady::Array
25
+ row = Loady::AttributeArray.new(['Bubbles ', '2000'])
20
26
  attrs = row.to_attributes [:name, :year, :mom]
21
-
22
27
  assert_equal attrs.size, 3
23
28
  assert_equal attrs[:name], 'Bubbles'
24
29
  assert_equal attrs[:year], '2000'
25
30
  assert_nil attrs[:mom]
26
31
  end
27
-
28
32
  end
29
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loady
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-12 00:00:00.000000000 Z
12
+ date: 2013-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -72,7 +72,7 @@ files:
72
72
  - README.rdoc
73
73
  - Rakefile
74
74
  - lib/loady.rb
75
- - lib/loady/array.rb
75
+ - lib/loady/attribute_array.rb
76
76
  - lib/loady/csv_loader.rb
77
77
  - lib/loady/memory_logger.rb
78
78
  - lib/loady/version.rb
@@ -80,9 +80,9 @@ files:
80
80
  - test/csv/file1.csv
81
81
  - test/csv/file2.csv
82
82
  - test/csv/file3.dat
83
+ - test/test_attribute_array.rb
83
84
  - test/test_csv_loader.rb
84
85
  - test/test_helper.rb
85
- - test/test_loady.rb
86
86
  - test/test_memory_logger.rb
87
87
  homepage: http://github.com/teeparham/loady
88
88
  licenses: []
@@ -96,18 +96,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
96
  - - ! '>='
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
- segments:
100
- - 0
101
- hash: -1716122112452948356
102
99
  required_rubygems_version: !ruby/object:Gem::Requirement
103
100
  none: false
104
101
  requirements:
105
102
  - - ! '>='
106
103
  - !ruby/object:Gem::Version
107
104
  version: '0'
108
- segments:
109
- - 0
110
- hash: -1716122112452948356
111
105
  requirements: []
112
106
  rubyforge_project: loady
113
107
  rubygems_version: 1.8.24
@@ -118,7 +112,7 @@ test_files:
118
112
  - test/csv/file1.csv
119
113
  - test/csv/file2.csv
120
114
  - test/csv/file3.dat
115
+ - test/test_attribute_array.rb
121
116
  - test/test_csv_loader.rb
122
117
  - test/test_helper.rb
123
- - test/test_loady.rb
124
118
  - test/test_memory_logger.rb