bumblebee 1.1.0 → 1.2.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.
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