spreadsheet_architect 1.2.0 → 1.2.1

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
  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