spotlight_search 0.1.3 → 0.1.4

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: fcbc12f0614877e2fc4dd201b0885d74c6ae169b4cbb56760ee3db5bc1f11ce4
4
- data.tar.gz: c5a8e1299b3b4cc5b2ae8113e66e8afb1e6a08b57cadf526c45780b935b808ba
3
+ metadata.gz: 2c89b4b5abbf14d2a5f0bd0b32ebe1f969664d6f15a1546d8da52c5350533dd2
4
+ data.tar.gz: 488483330b4d7884daa56e00b276c916eb1e880cedf17930417c94ad35edc5e9
5
5
  SHA512:
6
- metadata.gz: 90221663054cdbff4fcdc9293998a272aee5926548912fed9ad98441b8e294a18cb24b5dc871d78cf52eb27e90d5f8b57aa43ab7aaa4143928335ba3add7c56f
7
- data.tar.gz: 126fc9efce631043f391d16f23af181963817648f113d230124e80e56e383fb5b4d9dd98fe3d5fc9c65f2da1d076a98186c9ed1d8cb9989e1c6552cc4989e040
6
+ metadata.gz: 1774df1335f355630535500a67dbecd62a3291aceeb82bd957ee77fcd47664a078a653a0657cca931a22333aed4683fac9107d4219a4a3ec4a6dc7b4d5d7b689
7
+ data.tar.gz: b52de4cc8d6a3a22e2ed8b4fc76e92f4d5c8e1e71c878bb0b84676dd9f3590e64d848e5eadd2ea2d0b3b4030881a1854840a74ef4c820cdc6b7a49549a02d8e3
data/Gemfile.lock CHANGED
@@ -1,17 +1,102 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spotlight-search (0.1.0)
4
+ spotlight_search (0.1.1)
5
+ axlsx
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
- coffee-script (2.4.1)
10
- coffee-script-source
11
- execjs
12
- coffee-script-source (1.12.2)
10
+ actioncable (5.0.7.2)
11
+ actionpack (= 5.0.7.2)
12
+ nio4r (>= 1.2, < 3.0)
13
+ websocket-driver (~> 0.6.1)
14
+ actionmailer (5.0.7.2)
15
+ actionpack (= 5.0.7.2)
16
+ actionview (= 5.0.7.2)
17
+ activejob (= 5.0.7.2)
18
+ mail (~> 2.5, >= 2.5.4)
19
+ rails-dom-testing (~> 2.0)
20
+ actionpack (5.0.7.2)
21
+ actionview (= 5.0.7.2)
22
+ activesupport (= 5.0.7.2)
23
+ rack (~> 2.0)
24
+ rack-test (~> 0.6.3)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
+ actionview (5.0.7.2)
28
+ activesupport (= 5.0.7.2)
29
+ builder (~> 3.1)
30
+ erubis (~> 2.7.0)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
+ activejob (5.0.7.2)
34
+ activesupport (= 5.0.7.2)
35
+ globalid (>= 0.3.6)
36
+ activemodel (5.0.7.2)
37
+ activesupport (= 5.0.7.2)
38
+ activerecord (5.0.7.2)
39
+ activemodel (= 5.0.7.2)
40
+ activesupport (= 5.0.7.2)
41
+ arel (~> 7.0)
42
+ activesupport (5.0.7.2)
43
+ concurrent-ruby (~> 1.0, >= 1.0.2)
44
+ i18n (>= 0.7, < 2)
45
+ minitest (~> 5.1)
46
+ tzinfo (~> 1.1)
47
+ arel (7.1.4)
48
+ axlsx (2.0.1)
49
+ htmlentities (~> 4.3.1)
50
+ nokogiri (>= 1.4.1)
51
+ rubyzip (~> 1.0.0)
52
+ builder (3.2.3)
53
+ concurrent-ruby (1.1.5)
54
+ crass (1.0.4)
13
55
  diff-lcs (1.3)
14
- execjs (2.7.0)
56
+ erubis (2.7.0)
57
+ globalid (0.4.2)
58
+ activesupport (>= 4.2.0)
59
+ htmlentities (4.3.4)
60
+ i18n (1.6.0)
61
+ concurrent-ruby (~> 1.0)
62
+ loofah (2.2.3)
63
+ crass (~> 1.0.2)
64
+ nokogiri (>= 1.5.9)
65
+ mail (2.7.1)
66
+ mini_mime (>= 0.1.1)
67
+ method_source (0.9.2)
68
+ mini_mime (1.0.1)
69
+ mini_portile2 (2.4.0)
70
+ minitest (5.11.3)
71
+ nio4r (2.3.1)
72
+ nokogiri (1.10.3)
73
+ mini_portile2 (~> 2.4.0)
74
+ rack (2.0.7)
75
+ rack-test (0.6.3)
76
+ rack (>= 1.0)
77
+ rails (5.0.7.2)
78
+ actioncable (= 5.0.7.2)
79
+ actionmailer (= 5.0.7.2)
80
+ actionpack (= 5.0.7.2)
81
+ actionview (= 5.0.7.2)
82
+ activejob (= 5.0.7.2)
83
+ activemodel (= 5.0.7.2)
84
+ activerecord (= 5.0.7.2)
85
+ activesupport (= 5.0.7.2)
86
+ bundler (>= 1.3.0)
87
+ railties (= 5.0.7.2)
88
+ sprockets-rails (>= 2.0.0)
89
+ rails-dom-testing (2.0.3)
90
+ activesupport (>= 4.2.0)
91
+ nokogiri (>= 1.6)
92
+ rails-html-sanitizer (1.0.4)
93
+ loofah (~> 2.2, >= 2.2.2)
94
+ railties (5.0.7.2)
95
+ actionpack (= 5.0.7.2)
96
+ activesupport (= 5.0.7.2)
97
+ method_source
98
+ rake (>= 0.8.7)
99
+ thor (>= 0.18.1, < 2.0)
15
100
  rake (10.5.0)
16
101
  rspec (3.8.0)
17
102
  rspec-core (~> 3.8.0)
@@ -26,16 +111,31 @@ GEM
26
111
  diff-lcs (>= 1.2.0, < 2.0)
27
112
  rspec-support (~> 3.8.0)
28
113
  rspec-support (3.8.0)
114
+ rubyzip (1.0.0)
115
+ sprockets (3.7.2)
116
+ concurrent-ruby (~> 1.0)
117
+ rack (> 1, < 3)
118
+ sprockets-rails (3.2.1)
119
+ actionpack (>= 4.0)
120
+ activesupport (>= 4.0)
121
+ sprockets (>= 3.0.0)
122
+ thor (0.20.3)
123
+ thread_safe (0.3.6)
124
+ tzinfo (1.2.5)
125
+ thread_safe (~> 0.1)
126
+ websocket-driver (0.6.5)
127
+ websocket-extensions (>= 0.1.0)
128
+ websocket-extensions (0.1.4)
29
129
 
30
130
  PLATFORMS
31
131
  ruby
32
132
 
33
133
  DEPENDENCIES
34
134
  bundler (~> 2.0)
35
- coffee-script (~> 2.2)
135
+ rails (~> 5.0.7)
36
136
  rake (~> 10.0)
37
137
  rspec (~> 3.0)
38
- spotlight-search!
138
+ spotlight_search!
39
139
 
40
140
  BUNDLED WITH
41
141
  2.0.1
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # SpotlightSearch
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/spotlight_search`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ It helps filtering, sorting and exporting tables easier.
6
4
 
7
5
  ## Installation
8
6
 
@@ -16,7 +14,7 @@ And then execute:
16
14
 
17
15
  $ bundle
18
16
 
19
- Or install it yourself as:
17
+ Or install it manually:
20
18
 
21
19
  $ gem install spotlight_search
22
20
 
@@ -86,6 +84,72 @@ If any of the header needs to be sorted, then we will add the following helper
86
84
  th = sortable "name", "Name", @filtered_result.sort[:sort_column], @filtered_result.sort[:sort_direction]
87
85
  ```
88
86
 
87
+ ### Export to file
88
+
89
+ #### Model
90
+ Enables or disables export and specifies which all columns can be
91
+ exported. Export is disabled for all columns by default.
92
+
93
+ For enabling export for all columns in all models
94
+
95
+ ```ruby
96
+ class ApplicationRecord < ActiveRecord::Base
97
+ export_columns enabled: true
98
+ end
99
+ ```
100
+
101
+ For disabling export for only specific models
102
+
103
+ ```ruby
104
+ class Person < ActiveRecord::Base
105
+ export_columns enabled: false
106
+ end
107
+ ```
108
+
109
+ For allowing export for only specific columns in a model
110
+
111
+ ```ruby
112
+ class Person < ActiveRecord::Base
113
+ export_columns enabled: true, only: [:created_at, :updated_at]
114
+ end
115
+ ```
116
+
117
+ For excluding only specific columns and allowing all others
118
+
119
+ ```ruby
120
+ class Person < ActiveRecord::Base
121
+ export_columns enabled: true, except: [:created_at, :updated_at]
122
+ end
123
+ ```
124
+
125
+ #### View
126
+
127
+ Add `exportable email, model_object` in your view to display the export button.
128
+
129
+ ```html+erb
130
+ <table>
131
+ <tr>
132
+ <th>Name</th>
133
+ <th>Email</th>
134
+ </tr>
135
+ <td>
136
+ <% @records.each do |record| %>
137
+ <tr>
138
+ <td><%= record.name %></td>
139
+ <td><%= record.value %></td>
140
+ <% end %>
141
+ </td>
142
+ </table>
143
+
144
+ <%= exportable(current_user.email, current_user.class) %>
145
+ ```
146
+
147
+ This will first show a popup where an option to select the export enabled columns will be listed. This will also apply any filters that has been selected along with a sorting if applied. It then pushes the export to a background job which will send an excel file of the contents to the specified email. You can edit the style of the button using the class `export-to-file-btn`.
148
+
149
+ **Note**
150
+
151
+ You will need to have a background job processor such as `sidekiq`, `resque`, `delayed_job` etc as the file will be generated in the background and will be sent to the email passed.
152
+
89
153
  ## Development
90
154
 
91
155
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -94,7 +158,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
94
158
 
95
159
  ## Contributing
96
160
 
97
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/spotlight_search. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
161
+ Bug reports and pull requests are welcome on GitHub at https://github.com/commutatus/spotlight_search. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
98
162
 
99
163
  ## License
100
164
 
@@ -102,4 +166,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
102
166
 
103
167
  ## Code of Conduct
104
168
 
105
- Everyone interacting in the SpotlightSearch project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/spotlight_search/blob/master/CODE_OF_CONDUCT.md).
169
+ Everyone interacting in the SpotlightSearch project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/commutatus/spotlight_search/blob/master/CODE_OF_CONDUCT.md).
@@ -90,5 +90,23 @@ $(document).on('click', '[data-type="anchor-filter"]', function() {
90
90
  });
91
91
  });
92
92
 
93
- // ---
94
- // generated by coffee-script 1.9.2
93
+ $(document).on('click', '#export-to-file-btn', function(event) {
94
+ event.preventDefault();
95
+ $(this).attr('disabled', true);
96
+ var filter_params, query_string, sort_column, sort_direction;
97
+ sort_column = $('[data-behaviour="current-page"]').data('sort-column');
98
+ sort_direction = $('[data-behaviour="current-page"]').data('sort-direction');
99
+ filter_params = {};
100
+ $('[data-behaviour="filter"]').each(function(index) {
101
+ filter_params[$(this).data('scope')] = $(this).val();
102
+ });
103
+ body = {
104
+ filters: filter_params,
105
+ sort: {
106
+ sort_column: sort_column,
107
+ sort_direction: sort_direction
108
+ }
109
+ }
110
+ $('#export-to-file-filters').value(body);
111
+ $('#export-to-file-form').submit();
112
+ });
@@ -0,0 +1,21 @@
1
+ module SpotlightSearch
2
+ class ExportJobsController < ApplicationController
3
+ include SpotlightSearch::Concerns::Exportable
4
+
5
+ def export_job
6
+ begin
7
+ klass = params[:klass].constantize
8
+ if klass.validate_exportable_columns(params[:columns])
9
+ ExportJob.perform_later(params[:email], klass, params[:columns], params[:filters])
10
+ flash[:success] = 'Successfully queued for export'
11
+ else
12
+ flash[:error] = 'Invalid columns found'
13
+ end
14
+ rescue
15
+ flash[:error] = 'No records to import'
16
+ ensure
17
+ redirect_back fallback_location: root_path
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,49 @@
1
+ module SpotlightSearch
2
+ class ExportJob < ApplicationJob
3
+ def perform(email, klass, columns = nil, filters = nil)
4
+ records = get_records(klass, filters, columns)
5
+ file_path = create_excel(records, klass.name)
6
+ subject = "#{klass.name} export at #{Time.now}"
7
+ ExportMailer.send_excel_file(email, file_path, subject).deliver_now
8
+ File.delete(file_path)
9
+ end
10
+
11
+ def get_records(klass, filters, columns)
12
+ records = klass
13
+ if filters['filters'].present?
14
+ filters['filters'].each do |scope, scope_args|
15
+ if scope_args.is_a?(Array)
16
+ records = records.send(scope, *scope_args)
17
+ else
18
+ records = records.send(scope, scope_args)
19
+ end
20
+ end
21
+ end
22
+ if filters['sort'].present?
23
+ records = records.order("#{filters['sort']['sort_column']} #{filters['sort']['sort_direction']}")
24
+ end
25
+ columns = columns.map(&:to_sym)
26
+ records.select(*columns)
27
+ end
28
+
29
+ # Creating excel with the passed records
30
+ # Keys as headers and values as row
31
+ def create_excel(records, klass)
32
+ records = records.as_json
33
+ headers = records.first.keys
34
+ size_arr = []
35
+ headers.size.times { size_arr << 22 }
36
+ xl = Axlsx::Package.new
37
+ xl.workbook.add_worksheet do |sheet|
38
+ sheet.add_row headers, b: true
39
+ records.each do |record|
40
+ sheet.add_row record.values
41
+ end
42
+ sheet.column_widths *size_arr
43
+ end
44
+ file_location = "#{Rails.root}/public/export_#{klass}_#{Time.now.to_s}"
45
+ xl.serialize(file_location)
46
+ file_location
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,10 @@
1
+ module SpotlightSearch
2
+ class ExportMailer < ActionMailer::Base
3
+ default from: "no-reply@#{Rails.application.config.action_mailer.default_url_options[:host]}"
4
+
5
+ def send_excel_file(email, file_path, subject)
6
+ attachments[file_path.split('/').last] = File.read(file_path)
7
+ mail(to: email, subject: subject)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ Hi,
2
+ <br>
3
+ Please find attached the exported contents.
4
+ <br>
5
+ Thanks
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ SpotlightSearch::Engine.routes.draw do
2
+ post '/export_to_file', to: 'spotlight_search/export_jobs#export_job'
3
+ end
@@ -1,4 +1,4 @@
1
+ require 'rails'
1
2
  module SpotlightSearch
2
- class Engine < Rails::Engine
3
- end
3
+ class Engine < Rails::Engine; end
4
4
  end
@@ -0,0 +1,12 @@
1
+ module SpotlightSearch
2
+ module Exceptions
3
+ class InvalidColumns < StandardError
4
+ def initialize(columns: [])
5
+ message = 'Invalid columns found: ' + columns.map(&:to_s).join(', ')
6
+ super(message)
7
+ end
8
+ end
9
+
10
+ class InvalidValue < StandardError; end
11
+ end
12
+ end
@@ -0,0 +1,71 @@
1
+ module SpotlightSearch
2
+ module ExportableColumns
3
+ cattr_accessor :enabled_columns, :export_enabled
4
+
5
+ module ClassMethods
6
+ # Enables or disables export and specifies which all columns can be
7
+ # exported. For enabling export for all columns in all models
8
+ #
9
+ # class ApplicationRecord < ActiveRecord::Base
10
+ # export_columns enabled: true
11
+ # end
12
+ #
13
+ # For disabling export for only specific models
14
+ #
15
+ # class Person < ActiveRecord::Base
16
+ # export_columns enabled: false
17
+ # end
18
+ #
19
+ # For allowing export for only specific columns in a model
20
+ #
21
+ # class Person < ActiveRecord::Base
22
+ # export_columns enabled: true, only: [:created_at, :updated_at]
23
+ # end
24
+ #
25
+ # For excluding only specific columns and allowing all others
26
+ #
27
+ # class Person < ActiveRecord::Base
28
+ # export_columns enabled: true, except: [:created_at, :updated_at]
29
+ # end
30
+ #
31
+ def export_columns(enabled: false, only: nil, except: nil)
32
+ if enabled
33
+ @@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)
39
+ end
40
+ @@enabled_columns = only
41
+ else
42
+ @@enabled_columns = all_columns
43
+ end
44
+ if except.present?
45
+ unless (valid_columns = except & all_columns).size == only.size
46
+ invalid_columns = except - valid_columns
47
+ raise SpotlightSearch::Exceptions::InvalidColumns.new(nil, invalid_columns)
48
+ end
49
+ @@enabled_columns = @@enabled_columns - except
50
+ end
51
+ else
52
+ @@export_enabled = false
53
+ @@enabled_columns = nil
54
+ end
55
+ end
56
+
57
+ # Validates whether the selected columns are allowed for export
58
+ def validate_exportable_columns(columns)
59
+ unless columns.is_a?(Array)
60
+ raise SpotlightSearch::Exceptions::InvalidValue.new('Excepted Array. Invalid type received')
61
+ end
62
+ unless (@@enabled_columns & columns.map(&:to_sym)) == columns.size
63
+ return false
64
+ end
65
+ return true
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ ActiveRecord::Base.extend SpotlightSearch::ExportableColumns
@@ -9,6 +9,37 @@ module SpotlightSearch
9
9
  content_tag("a","Title", class: css_class, data: {sort_column: column, sort_direction: direction, behaviour: 'sort', type: 'anchor-filter'})
10
10
  end
11
11
 
12
+ def exportable(email, klass)
13
+ tag.button "Export as excel", class: "modal-btn", data: {toggle: "modal", target: "#exportmodal"}
14
+ tag.div class: "modal fade", id: "exportmodal", tabindex: "-1", role: "dialog", aria: {labelledby: "exportModal"} do
15
+ tag.div class: "modal-dialog", role: "document" do
16
+ tag.div class: "modal-content" do
17
+ tag.div class: "modal-header" do
18
+ tag.button type: "button", class: "close", data: {dismiss: "modal"}, aria: {label: "Close"} do
19
+ tag.span "X", aria: {hidden: "true"}
20
+ end
21
+ tag.h4 "Select columns to export", class: "modal-title", id: "exportModal"
22
+ end
23
+ tag.div class: "modal-body" do
24
+ form_tag '/export_to_file', id: 'export-to-file-form' do
25
+ hidden_field_tag 'email', email, id: 'export-to-file-email'
26
+ hidden_field_tag 'filters', nil, id: 'export-to-file-filters'
27
+ hidden_field_tag 'klass', klass.to_s, id: 'export-to-file-klass'
28
+ klass.enabled_columns.each do |column_name|
29
+ tag.div class: "row" do
30
+ tag.div class: "col-md-4" do
31
+ check_box_tag "columns[]", column_name
32
+ end
33
+ end
34
+ end
35
+ submit_tag 'Export as excel', class: 'btn btn-bordered export-to-file-btn'
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
12
43
  def cm_paginate(facets)
13
44
  tag.div class: 'text-center' do
14
45
  tag.div class: 'nav navbar navbar-inner' do
@@ -1,3 +1,3 @@
1
1
  module SpotlightSearch
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -4,6 +4,10 @@ require 'spotlight_search/railtie' if defined?(Rails)
4
4
 
5
5
  module SpotlightSearch
6
6
  extend ActiveSupport::Concern
7
+
8
+ autoload :Exceptions, 'spotlight_search/exceptions'
9
+ autoload :ExportableColumns, 'spotlight_search/exportable_columns'
10
+
7
11
  module ClassMethods
8
12
  def filter_by(page, filter_params = {}, sort_params = {})
9
13
  filtered_result = OpenStruct.new
@@ -1,5 +1,6 @@
1
1
  lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ # Dir.glob("./**/**/*.rb").each { |path| require path }
3
4
  require "spotlight_search/version"
4
5
 
5
6
  Gem::Specification.new do |s|
@@ -24,5 +25,7 @@ Gem::Specification.new do |s|
24
25
 
25
26
  s.add_development_dependency "bundler", "~> 2.0"
26
27
  s.add_development_dependency "rake", "~> 10.0"
28
+ s.add_development_dependency "rails", "~> 5.0.7"
27
29
  s.add_development_dependency "rspec", "~> 3.0"
30
+ s.add_runtime_dependency 'axlsx'
28
31
  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.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anbazhagan Palani
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.0.7
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.0.7
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: axlsx
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  description: |-
56
84
  This gem should help reduce the efforts in the admin panel.
57
85
  It has search, sort and pagination included
@@ -70,10 +98,17 @@ files:
70
98
  - app/.DS_Store
71
99
  - app/assets/javascripts/spotlight_search.js
72
100
  - app/assets/javascripts/spotlight_search_main.js
101
+ - app/controllers/spotlight_search/export_jobs_controller.rb
102
+ - app/jobs/spotlight_search/export_job.rb
103
+ - app/mailers/spotlight_search/export_mailer.rb
104
+ - app/views/spotlight_search/export_mailer/send_excel_file.html.erb
73
105
  - bin/console
74
106
  - bin/setup
107
+ - config/routes.rb
75
108
  - lib/spotlight_search.rb
76
109
  - lib/spotlight_search/engine.rb
110
+ - lib/spotlight_search/exceptions.rb
111
+ - lib/spotlight_search/exportable_columns.rb
77
112
  - lib/spotlight_search/helpers.rb
78
113
  - lib/spotlight_search/railtie.rb
79
114
  - lib/spotlight_search/version.rb