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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d646197e6c3312af6863833c39540315400367bc
4
- data.tar.gz: 396ee2ed11e98ba2597a5089e6b3527040d1005d
3
+ metadata.gz: f42b3c3c331719c8914df16900f0cda7a976fb16
4
+ data.tar.gz: 75602032e0744ffd5d95660b211e2d3cde828696
5
5
  SHA512:
6
- metadata.gz: 01f1661665236b11978fde9e75b6cccd59871d715b7895ac65b315a8104d689ecb441e55667e04f336bb1c51e22cc139540efb55f0d6567cdd2f8f65de6e14b8
7
- data.tar.gz: 352f3163770b4cc63aefad63b79b025464776fa8ec08f861d2492e2c076a4c08677633bad36c150f0b24c32903ad747a89ebf3a0abd8d1a95be394eb367f77d5
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 !has_custom_columns && klass.ancestors.include?(ActiveRecord::Base)
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 'No instance method `spreadsheet_columns` found on this plain ruby object'
63
+ raise SpreadsheetArchitect::SpreadsheetColumnsNotDefined, klass
50
64
  end
51
65
 
52
66
  data = []
@@ -1,3 +1,3 @@
1
1
  module SpreadsheetArchitect
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
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.0
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-10 00:00:00.000000000 Z
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.2
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/spreadsheet_architect.sqlite3.db
156
+ - test/database.yml
159
157
  - test/tc_spreadsheet_architect.rb
Binary file