spreadsheet_architect 1.2.0 → 1.2.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 +4 -4
- data/lib/spreadsheet_architect.rb +19 -5
- data/lib/spreadsheet_architect/version.rb +1 -1
- metadata +4 -6
- data/test/spreadsheet_architect.sqlite3.db +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f42b3c3c331719c8914df16900f0cda7a976fb16
|
4
|
+
data.tar.gz: 75602032e0744ffd5d95660b211e2d3cde828696
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ce5f2ad942a49b12aab8485dba755d86091b0529d36ad7c118f777244181d26f45a20ca01085aa8af3b1b8183cb3d530efcd7ae2a7fcc74446ec1c05aa10223
|
7
|
+
data.tar.gz: f44c437e1ce567701a7d01f3f1db2f98f6ce834deb49954d7481d2e754cc60b7b90e5cd086d1053f01ef1fa514f88b9b55173eaff0f07dbe9bdeb5c4b972c1ce
|
@@ -10,6 +10,18 @@ module SpreadsheetArchitect
|
|
10
10
|
base.send :extend, ClassMethods
|
11
11
|
end
|
12
12
|
|
13
|
+
class NoDataError < StandardError
|
14
|
+
def initialize
|
15
|
+
super("Missing data option or relation is empty.")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class SpreadsheetColumnsNotDefined < StandardError
|
20
|
+
def initialize(klass=nil)
|
21
|
+
super("The spreadsheet_columns option is not defined on #{klass.name}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
13
25
|
module Helpers
|
14
26
|
def self.str_humanize(str, capitalize = true)
|
15
27
|
str = str.sub(/\A_+/, '').gsub(/[_\.]/,' ').sub(' rescue nil','')
|
@@ -22,13 +34,15 @@ module SpreadsheetArchitect
|
|
22
34
|
def self.get_options(options={}, klass)
|
23
35
|
has_custom_columns = klass.instance_methods.include?(:spreadsheet_columns)
|
24
36
|
|
25
|
-
if !options[:data] && klass.ancestors.include?(ActiveRecord::Base)
|
37
|
+
if !options[:data] && defined?(ActiveRecord) && klass.ancestors.include?(ActiveRecord::Base)
|
26
38
|
options[:data] = klass.where(options[:where]).order(options[:order]).to_a
|
27
|
-
else
|
28
|
-
raise 'No data option was defined. This is required for plain ruby objects.'
|
29
39
|
end
|
30
40
|
|
31
|
-
if !
|
41
|
+
if !options[:data] || options[:data].empty?
|
42
|
+
raise SpreadsheetArchitect::NoDataError
|
43
|
+
end
|
44
|
+
|
45
|
+
if !has_custom_columns && defined?(ActiveRecord) && klass.ancestors.include?(ActiveRecord::Base)
|
32
46
|
the_column_names = (klass.column_names - ["id","created_at","updated_at","deleted_at"])
|
33
47
|
headers = the_column_names.map{|x| str_humanize(x)}
|
34
48
|
columns = the_column_names.map{|x| x.to_sym}
|
@@ -46,7 +60,7 @@ module SpreadsheetArchitect
|
|
46
60
|
end
|
47
61
|
end
|
48
62
|
else
|
49
|
-
raise
|
63
|
+
raise SpreadsheetArchitect::SpreadsheetColumnsNotDefined, klass
|
50
64
|
end
|
51
65
|
|
52
66
|
data = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spreadsheet_architect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Weston Ganger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: axlsx
|
@@ -127,7 +127,6 @@ files:
|
|
127
127
|
- lib/spreadsheet_architect/version.rb
|
128
128
|
- test/database.yml
|
129
129
|
- test/helper.rb
|
130
|
-
- test/spreadsheet_architect.sqlite3.db
|
131
130
|
- test/tc_spreadsheet_architect.rb
|
132
131
|
homepage: https://github.com/westonganger/spreadsheet_architect
|
133
132
|
licenses: []
|
@@ -148,12 +147,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
147
|
version: '0'
|
149
148
|
requirements: []
|
150
149
|
rubyforge_project:
|
151
|
-
rubygems_version: 2.5.
|
150
|
+
rubygems_version: 2.4.5.1
|
152
151
|
signing_key:
|
153
152
|
specification_version: 4
|
154
153
|
summary: Spreadsheet Generator for ActiveRecord Models and Ruby Classes/Modules
|
155
154
|
test_files:
|
156
|
-
- test/database.yml
|
157
155
|
- test/helper.rb
|
158
|
-
- test/
|
156
|
+
- test/database.yml
|
159
157
|
- test/tc_spreadsheet_architect.rb
|
Binary file
|