spotlight_search 0.1.6 → 0.1.7

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
  SHA256:
3
- metadata.gz: cc74895f3a5f55970160db1457820b6f00334528d14cfbb7f2bf693afe3ff972
4
- data.tar.gz: 71060fb2c54856d67a85a4d2c97b49933c2bacc459bd3d52ecc6105ace9740d3
3
+ metadata.gz: 6c0ea70816711ee5ddc92a80692e72fba928b39161c2d24deb08b4ab58484f16
4
+ data.tar.gz: 27427b059ab99ac747e3239b5bf5e3675924966f724eecac804185c8b7198132
5
5
  SHA512:
6
- metadata.gz: 13be0c5c2c695c350f63a16c1c24c73645ad6768993f7afbe6dec22d0be2db58a3d3e1227cbfffa91adc83937caaadee0128b6ed2fd0cae1764452e46354619a
7
- data.tar.gz: 70e6cca5f7ccce8297fb72497b6e3f54eeaaa76ea4903ec546ab1dc946b2ef2e62f232845cd7e3ce462a899de465aaea29987ef37dbe59a970b7a95090f2250d
6
+ metadata.gz: b898869bc37e815628e98a1851e63cdb854b5f5a3b5056cefca336aef92430fbb6755d07f22c33fde9cb43635ac25d88a9298e8c4b90dbd6c7b96f688acaa92f
7
+ data.tar.gz: 0e740359d3610928b62382c6eecf38f81faff3e82039236c63e6c3909e82ce8e0536ee96e313b610417650888f7f1ac9955284177a4fa5051435c66f4492abeb
@@ -5,7 +5,7 @@ module SpotlightSearch
5
5
  def perform(email, klass, columns = [], filters = {})
6
6
  klass = klass.constantize
7
7
  records = get_records(klass, filters, columns)
8
- file_path = create_excel(records, klass.name)
8
+ file_path = create_excel(records, klass.name, columns)
9
9
  subject = "#{klass.name} export at #{Time.now}"
10
10
  ExportMailer.send_excel_file(email, file_path, subject).deliver_now
11
11
  File.delete(file_path)
@@ -33,20 +33,18 @@ module SpotlightSearch
33
33
 
34
34
  # Creating excel with the passed records
35
35
  # Keys as headers and values as row
36
- def create_excel(records, klass)
37
- records = records.as_json
38
- headers = records.first.keys
36
+ def create_excel(records, klass, columns)
39
37
  size_arr = []
40
- headers.size.times { size_arr << 22 }
38
+ columns.size.times { size_arr << 22 }
41
39
  xl = Axlsx::Package.new
42
40
  xl.workbook.add_worksheet do |sheet|
43
- sheet.add_row headers, b: true
41
+ sheet.add_row columns, b: true
44
42
  records.each do |record|
45
- sheet.add_row record.values
43
+ sheet.add_row columns.map { |column| record.send(column) }
46
44
  end
47
45
  sheet.column_widths *size_arr
48
46
  end
49
- file_location = "#{Rails.root}/public/export_#{klass}_#{Time.now.to_s}"
47
+ file_location = "#{Rails.root}/public/export_#{klass}_#{Time.now.to_s}.xls"
50
48
  xl.serialize(file_location)
51
49
  file_location
52
50
  end
@@ -29,28 +29,33 @@ module SpotlightSearch
29
29
  # end
30
30
  #
31
31
  def export_columns(enabled: false, only: nil, except: nil)
32
- if enabled
33
- self.export_enabled = true
34
- all_columns = self.column_names.map(&:to_sym)
35
- if only.present?
36
- unless (valid_columns = only & all_columns).size == only.size
37
- invalid_columns = only - valid_columns
38
- raise SpotlightSearch::Exceptions::InvalidColumns.new(nil, invalid_columns)
32
+ begin
33
+ unless ActiveRecord::Base.connection.migration_context.needs_migration?
34
+ if enabled
35
+ self.export_enabled = true
36
+ all_columns = self.column_names.map(&:to_sym)
37
+ if only.present?
38
+ unless (valid_columns = only & all_columns).size == only.size
39
+ invalid_columns = only - valid_columns
40
+ raise SpotlightSearch::Exceptions::InvalidColumns.new(nil, invalid_columns)
41
+ end
42
+ self.enabled_columns = only
43
+ else
44
+ self.enabled_columns = all_columns
45
+ end
46
+ if except.present?
47
+ unless (valid_columns = except & all_columns).size == except.size
48
+ invalid_columns = except - valid_columns
49
+ raise SpotlightSearch::Exceptions::InvalidColumns.new(nil, invalid_columns)
50
+ end
51
+ self.enabled_columns = self.enabled_columns - except
52
+ end
53
+ else
54
+ self.export_enabled = false
55
+ self.enabled_columns = nil
39
56
  end
40
- self.enabled_columns = only
41
- else
42
- self.enabled_columns = all_columns
43
57
  end
44
- if except.present?
45
- unless (valid_columns = except & all_columns).size == except.size
46
- invalid_columns = except - valid_columns
47
- raise SpotlightSearch::Exceptions::InvalidColumns.new(nil, invalid_columns)
48
- end
49
- self.enabled_columns = self.enabled_columns - except
50
- end
51
- else
52
- self.export_enabled = false
53
- self.enabled_columns = nil
58
+ rescue ActiveRecord::NoDatabaseError
54
59
  end
55
60
  end
56
61
 
@@ -1,3 +1,3 @@
1
1
  module SpotlightSearch
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spotlight_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anbazhagan Palani