active_record_to_xls 1.0.0 → 1.0.1

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: c52c2f9748f585a25ce7925fe0ae4f138c4ce1c672e508da8a9325d503ce8a1f
4
- data.tar.gz: 8e95741bd3ad84276ce8583a1f7801c0003a2504db9511fa70f499ce9048dd2e
3
+ metadata.gz: 1a28637e0fbd89376daf42e567bc69ca06982871f3430026ee84babfbc0f1815
4
+ data.tar.gz: ee9f6f3ed47b367ee1170ef08afe07f49aac9a7eb3058f71cf5fa454eb190b28
5
5
  SHA512:
6
- metadata.gz: 7c2be1c0e1487891b38220e98b953c7178219bdfdbb27c4c4ca1b98ca79cc1686bbf28ff695a8b3c0d1e17be7a9064fb24e9763babda62af7cb4af65c175f33f
7
- data.tar.gz: 574e48a1a514b27a5984bc6339df7786ae26ff096329cbcc9e8a896bb96e9b46c32645b890d62dfbd8b4b73abcbf8c035210a658b909d40ff720916c45bbb7a4
6
+ metadata.gz: '02186a0bfe458945c08fd63654793e3f847efada1c5ff4e0bd3b7366a9f0321f1c3fa556d08e0e74a880010638c05969d1f36733cbb3726cc4e68d6c58cb39cf'
7
+ data.tar.gz: 5efeedb9a27213c33e84fdba6dc902804c907e15f131b3f1f2b7924582538cf17e2fbb8d7bc2749af130b4ce4e9187a5b618be7d38f6e6fb0a6706a841e17b97
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .ruby-gemset
2
+ .ruby-version
3
+ RELEASES
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/Gemfile.lock ADDED
@@ -0,0 +1,39 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ active_record_to_xls (1.0.1)
5
+ spreadsheet (~> 0.8.5)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.3)
11
+ rake (12.3.1)
12
+ rspec (3.7.0)
13
+ rspec-core (~> 3.7.0)
14
+ rspec-expectations (~> 3.7.0)
15
+ rspec-mocks (~> 3.7.0)
16
+ rspec-core (3.7.1)
17
+ rspec-support (~> 3.7.0)
18
+ rspec-expectations (3.7.0)
19
+ diff-lcs (>= 1.2.0, < 2.0)
20
+ rspec-support (~> 3.7.0)
21
+ rspec-mocks (3.7.0)
22
+ diff-lcs (>= 1.2.0, < 2.0)
23
+ rspec-support (~> 3.7.0)
24
+ rspec-support (3.7.1)
25
+ ruby-ole (1.2.12.1)
26
+ spreadsheet (0.8.9)
27
+ ruby-ole (>= 1.0)
28
+
29
+ PLATFORMS
30
+ ruby
31
+
32
+ DEPENDENCIES
33
+ active_record_to_xls!
34
+ bundler (~> 1.3)
35
+ rake
36
+ rspec (~> 3.7, >= 3.7.0)
37
+
38
+ BUNDLED WITH
39
+ 1.16.5
Binary file
@@ -1,20 +1,30 @@
1
- # encoding: utf-8
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
2
4
 
3
- version = File.read(File.expand_path("../VERSION", __FILE__)).strip
5
+ # Maintain your gem's version:
6
+ require "active_record_to_xls/version"
4
7
 
5
8
  Gem::Specification.new do |spec|
6
- spec.name = 'active_record_to_xls'
7
- spec.version = version
8
- spec.author = "Gordon B. Isnor"
9
- spec.email = "info@isnorcreative.com"
10
- spec.homepage = "http://github.com/gordonbisnor/active_record_to_xls"
11
- spec.summary = "Export Rails ActiveRecord data to Excel XLS data"
12
- spec.description = "This simple plugin gives you the ability to get XLS for a collection of ActiveRecord models."
13
- spec.files = Dir["{lib,test}/**/*", "[a-zA-Z]*", "init.rb"] - ["Gemfile.lock"]
14
- spec.require_path = "lib"
15
- spec.license = 'MIT'
9
+ spec.name = 'active_record_to_xls'
10
+ spec.version = ActiveRecordToXls::VERSION
11
+ spec.authors = ["Gordon B. Isnor"]
12
+ spec.email = ["info@isnorcreative.com"]
13
+ spec.description = "This simple plugin gives you the ability to get XLS for a collection of ActiveRecord models."
14
+ spec.summary = "Export Rails ActiveRecord data to Excel XLS data"
15
+ spec.homepage = "http://github.com/gordonbisnor/active_record_to_xls"
16
+ spec.license = "MIT"
17
+
18
+ spec.files = `git ls-files`.split($/)
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
16
23
  spec.add_runtime_dependency 'spreadsheet', '~> 0.8.5'
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
17
26
  spec.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
18
- spec.platform = Gem::Platform::RUBY
27
+
19
28
  spec.required_rubygems_version = ">= 1.3.4"
20
29
  end
30
+
@@ -22,7 +22,7 @@ class ActiveRecordToXls
22
22
  elsif !target.nil?
23
23
  if target.first.is_a? Hash
24
24
  target.first.keys.map(&:to_sym) - Array(options[:except]).map(&:to_sym)
25
- else
25
+ elsif target.first && target.first.respond_to?('attributes')
26
26
  target.first.attributes.keys.map(&:to_sym) - Array(options[:except]).map(&:to_sym)
27
27
  end
28
28
  end
@@ -0,0 +1,108 @@
1
+ require 'spec_helper'
2
+ require 'ostruct'
3
+
4
+ describe ActiveRecordToXls do
5
+
6
+ let(:foo) {
7
+ OpenStruct.new({
8
+ title: "foo", description: "bar",
9
+ attributes: {
10
+ title: "foo", description: "bar"
11
+ }
12
+ })
13
+ }
14
+
15
+ let(:baz) {
16
+ OpenStruct.new({
17
+ title: "baz", description: "qux",
18
+ attributes: {
19
+ title: "baz", description: "qux"
20
+ }
21
+ })
22
+ }
23
+
24
+ let(:items) { [foo, baz] }
25
+
26
+ describe 'being called' do
27
+
28
+ let(:subject) { ActiveRecordToXls.call(items) }
29
+
30
+ it 'returns a string' do
31
+ expect(subject).to be_kind_of(String)
32
+ end
33
+
34
+ it 'contains expected string data' do
35
+ expect(subject).to match(/foo/)
36
+ expect(subject).to match(/bar/)
37
+ expect(subject).to match(/baz/)
38
+ expect(subject).to match(/qux/)
39
+ end
40
+
41
+ end
42
+
43
+ context 'with header columns' do
44
+
45
+ let(:subject) { ActiveRecordToXls.call( items, header_columns: ["GreatTitle","GreatDescription"] ) }
46
+
47
+ it 'returns a string' do
48
+ expect(subject).to be_kind_of(String)
49
+ end
50
+ end
51
+
52
+ context 'with omitted header' do
53
+
54
+ let(:subject) { ActiveRecordToXls.call( items, header: false ) }
55
+
56
+ it 'returns a string' do
57
+ expect(subject).to be_kind_of(String)
58
+ end
59
+ end
60
+
61
+ context 'with prepend' do
62
+ let(:subject) { ActiveRecordToXls.call( items, prepend: [["my title","my desc"]] ) }
63
+
64
+ it 'contains expected string data' do
65
+ expect(subject).to match(/my title/)
66
+ expect(subject).to match(/my desc/)
67
+ end
68
+
69
+ end
70
+
71
+ context 'with append' do
72
+ let(:subject) { ActiveRecordToXls.call( items, append: [["my footer title","my footer desc"]] ) }
73
+
74
+ it 'contains expected string data' do
75
+ expect(subject).to match(/my footer title/)
76
+ expect(subject).to match(/my footer desc/)
77
+ end
78
+
79
+ end
80
+
81
+ context 'with only' do
82
+
83
+ let(:subject) { ActiveRecordToXls.call( items, only: [:title] ) }
84
+
85
+ it 'contains expected string data' do
86
+ expect(subject).to match(/foo/)
87
+ expect(subject).not_to match(/bar/)
88
+ expect(subject).to match(/baz/)
89
+ expect(subject).not_to match(/qux/)
90
+ end
91
+
92
+ end
93
+
94
+
95
+ context 'with except' do
96
+
97
+ let(:subject) { ActiveRecordToXls.call( items, except: [:title] ) }
98
+
99
+ it 'contains expected string data' do
100
+ expect(subject).not_to match(/foo/)
101
+ expect(subject).to match(/bar/)
102
+ expect(subject).not_to match(/baz/)
103
+ expect(subject).to match(/qux/)
104
+ end
105
+
106
+ end
107
+
108
+ end
@@ -0,0 +1,7 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'active_record_to_xls'
5
+
6
+ RSpec.configure do |config|
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_to_xls
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gordon B. Isnor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-14 00:00:00.000000000 Z
11
+ date: 2018-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spreadsheet
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.8.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rspec
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -46,19 +74,26 @@ dependencies:
46
74
  version: 3.7.0
47
75
  description: This simple plugin gives you the ability to get XLS for a collection
48
76
  of ActiveRecord models.
49
- email: info@isnorcreative.com
77
+ email:
78
+ - info@isnorcreative.com
50
79
  executables: []
51
80
  extensions: []
52
81
  extra_rdoc_files: []
53
82
  files:
83
+ - ".gitignore"
84
+ - ".rspec"
54
85
  - Gemfile
86
+ - Gemfile.lock
55
87
  - MIT-LICENSE
56
88
  - README.md
57
89
  - Rakefile
58
90
  - VERSION
91
+ - active_record_to_xls-1.0.0.gem
59
92
  - active_record_to_xls.gemspec
60
93
  - init.rb
61
94
  - lib/active_record_to_xls.rb
95
+ - spec/active_record_to_xls_spec.rb
96
+ - spec/spec_helper.rb
62
97
  homepage: http://github.com/gordonbisnor/active_record_to_xls
63
98
  licenses:
64
99
  - MIT
@@ -83,4 +118,6 @@ rubygems_version: 2.7.6
83
118
  signing_key:
84
119
  specification_version: 4
85
120
  summary: Export Rails ActiveRecord data to Excel XLS data
86
- test_files: []
121
+ test_files:
122
+ - spec/active_record_to_xls_spec.rb
123
+ - spec/spec_helper.rb