bumblebee 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed94c671e3c0de3fffbe61034b5979da771247b73055eb3989965764a549d3af
4
- data.tar.gz: b7c8f2de14ba3320d73f35f8e6ff35a007193b3d2a72f21716b4c34c585803f9
3
+ metadata.gz: 65ab8c72986bdae30dd8ed596620fff17751a35ea0f5e46ac8cf3b038d13d309
4
+ data.tar.gz: 756adec9d9ffd8dfb239effc74b908b73190e4c3f023c83bc44d93114bf77cf1
5
5
  SHA512:
6
- metadata.gz: 35032779d1572ac92dc76db47ee8c3d9a760b97270c73292c505b0006051bb3d72b2fc0af76585cae9c4a02d7268375cb5c26036cf76f78110d6a91d6ccdfaae
7
- data.tar.gz: d89a47ed31790e6f8af24f0894677f9e3e0e871a0815330ad0134fb0bb43cdbac661e66308b50a17e0275b70162491b0417fb4e4dc3653796d02d5f5a014c24b
6
+ metadata.gz: 40ddf7bed866c0a3ab76357c4c9a1c89a7e28ef7e31d68b2260fea25a422dc321dd14ef59c4e9ccda714e6270707f15744307c54505903658336afb482cc7a56
7
+ data.tar.gz: bac2237f95edee3ff77c83c0f05886b933f910d803921752e7354395896349b565b5f7611694900b91e29b4a2c51a450421f57c96eebe94f7da7b9a65dc93e99
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.2.0 (January 22, 2019)
2
+
3
+ - Updated parser so it is position-agnostic. Previously the position of the headers mattered to the parser. Now, the headers in the file will be used and matched on with the column headers.
4
+
1
5
  # 1.1.0 (January 22, 2019)
2
6
 
3
7
  - Updated parser so it is now compatible and works with Ruby 2.5.3 and 2.6.0.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bumblebee (1.1.0)
4
+ bumblebee (1.2.0)
5
5
  acts_as_hashable (~> 1.0)
6
6
 
7
7
  GEM
@@ -26,7 +26,7 @@ module Bumblebee
26
26
  def generate_csv(objects, options = {})
27
27
  objects = objects.is_a?(Hash) ? [objects] : Array(objects)
28
28
 
29
- write_options = make_options(options).merge(write_headers: true)
29
+ write_options = options.merge(headers: headers, write_headers: true)
30
30
 
31
31
  CSV.generate(write_options) do |csv|
32
32
  objects.each do |object|
@@ -38,10 +38,10 @@ module Bumblebee
38
38
  end
39
39
 
40
40
  def parse_csv(string, options = {})
41
- csv = CSV.new(string, make_options(options))
41
+ csv = CSV.new(string, options.merge(headers: true))
42
42
 
43
43
  # Drop the first record, it is the header record
44
- csv.to_a[1..-1].map do |row|
44
+ csv.to_a.map do |row|
45
45
  # Build up a hash using the column one at a time
46
46
  extracted_hash = columns.inject({}) do |hash, column|
47
47
  hash.merge(column.csv_to_object(row))
@@ -50,11 +50,5 @@ module Bumblebee
50
50
  extracted_hash
51
51
  end
52
52
  end
53
-
54
- private
55
-
56
- def make_options(options = {})
57
- options.merge(headers: headers)
58
- end
59
53
  end
60
54
  end
@@ -8,5 +8,5 @@
8
8
  #
9
9
 
10
10
  module Bumblebee
11
- VERSION = '1.1.0'
11
+ VERSION = '1.2.0'
12
12
  end
@@ -18,6 +18,13 @@ describe ::Bumblebee do
18
18
  ]
19
19
  end
20
20
 
21
+ let(:reverse_columns) do
22
+ [
23
+ { field: :dob },
24
+ { field: :name }
25
+ ]
26
+ end
27
+
21
28
  let(:people) do
22
29
  [
23
30
  { name: 'Matt', dob: '1901-01-03' },
@@ -50,4 +57,10 @@ describe ::Bumblebee do
50
57
 
51
58
  expect(objects).to eq(people)
52
59
  end
60
+
61
+ it 'should parse a csv with columns in different order than headers' do
62
+ objects = ::Bumblebee.parse_csv(reverse_columns, csv)
63
+
64
+ expect(objects).to eq(people)
65
+ end
53
66
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bumblebee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ruggio