spotlight_search 0.1.6 → 0.1.7

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