exportable 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +14 -0
  5. data/Gemfile.lock +144 -0
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +104 -0
  8. data/Rakefile +31 -0
  9. data/bin/test +11 -0
  10. data/exportable.gemspec +27 -0
  11. data/lib/exportable.rb +23 -0
  12. data/lib/exportable/class_methods.rb +9 -0
  13. data/lib/exportable/export_methods.rb +14 -0
  14. data/lib/exportable/export_methods/csv_exporter.rb +33 -0
  15. data/lib/exportable/export_methods/xls_exporter.rb +44 -0
  16. data/lib/exportable/utils.rb +18 -0
  17. data/lib/exportable/version.rb +3 -0
  18. data/lib/tasks/exportable_tasks.rake +4 -0
  19. data/spec/dummy/Rakefile +6 -0
  20. data/spec/dummy/app/models/application_record.rb +3 -0
  21. data/spec/dummy/app/models/exportable_model.rb +4 -0
  22. data/spec/dummy/bin/bundle +3 -0
  23. data/spec/dummy/bin/rails +4 -0
  24. data/spec/dummy/bin/rake +4 -0
  25. data/spec/dummy/bin/setup +34 -0
  26. data/spec/dummy/bin/update +29 -0
  27. data/spec/dummy/config.ru +5 -0
  28. data/spec/dummy/config/application.rb +15 -0
  29. data/spec/dummy/config/boot.rb +5 -0
  30. data/spec/dummy/config/cable.yml +9 -0
  31. data/spec/dummy/config/database.yml +19 -0
  32. data/spec/dummy/config/environment.rb +5 -0
  33. data/spec/dummy/config/environments/test.rb +42 -0
  34. data/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  35. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  36. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  37. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/spec/dummy/config/initializers/inflections.rb +16 -0
  39. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  40. data/spec/dummy/config/initializers/new_framework_defaults.rb +24 -0
  41. data/spec/dummy/config/initializers/session_store.rb +3 -0
  42. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  43. data/spec/dummy/config/locales/en.yml +23 -0
  44. data/spec/dummy/config/puma.rb +47 -0
  45. data/spec/dummy/config/routes.rb +3 -0
  46. data/spec/dummy/config/secrets.yml +22 -0
  47. data/spec/dummy/config/spring.rb +6 -0
  48. data/spec/dummy/db/migrate/20170107183658_create_exportable_models.rb +17 -0
  49. data/spec/dummy/db/schema.rb +30 -0
  50. data/spec/exportable/class_methods_spec.rb +15 -0
  51. data/spec/exportable/csv_exporter_spec.rb +69 -0
  52. data/spec/exportable/export_methods_spec.rb +31 -0
  53. data/spec/exportable/xls_exporter_spec.rb +56 -0
  54. data/spec/spec_helper.rb +128 -0
  55. data/spec/support/helper.rb +12 -0
  56. metadata +228 -0
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
3
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rails secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: 4ce50fce1f44058e3c8533978f8d1483506808dcf9e6356effc7c0884aa25d779d0dbb5fcd84a5dff4f6d52e9f3cadc25865563ff15b514500f2cee84d080883
15
+
16
+ test:
17
+ secret_key_base: 9d583a8db24b65f37d926d8608addce41ad44748c1f6365cab5fb70eb9d3d91bcdc55b4d4b03cd518a9f8f513dd960783e381475bede97812916472b38bcceb2
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,6 @@
1
+ %w(
2
+ .ruby-version
3
+ .rbenv-vars
4
+ tmp/restart.txt
5
+ tmp/caching-dev.txt
6
+ ).each { |path| Spring.watch(path) }
@@ -0,0 +1,17 @@
1
+ class CreateExportableModels < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :exportable_models do |t|
4
+ t.string :field_string
5
+ t.binary :field_binary
6
+ t.date :field_date
7
+ t.datetime :field_datetime
8
+ t.decimal :field_decimal
9
+ t.float :field_float
10
+ t.integer :field_integer
11
+ t.bigint :field_bigint
12
+ t.text :field_text
13
+ t.time :field_time
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20170107183658) do
14
+
15
+ create_table "exportable_models", force: :cascade do |t|
16
+ t.string "field_string"
17
+ t.binary "field_binary"
18
+ t.date "field_date"
19
+ t.datetime "field_datetime"
20
+ t.decimal "field_decimal"
21
+ t.float "field_float"
22
+ t.integer "field_integer"
23
+ t.bigint "field_bigint"
24
+ t.text "field_text"
25
+ t.time "field_time"
26
+ t.datetime "created_at", null: false
27
+ t.datetime "updated_at", null: false
28
+ end
29
+
30
+ end
@@ -0,0 +1,15 @@
1
+ require "spec_helper"
2
+
3
+
4
+ describe Exportable::ClassMethods, type: :model do
5
+
6
+ before(:each) do
7
+ ExportableModel.create!(field_string: "sample string", field_text: "sample text", field_date: Date.today )
8
+ end
9
+
10
+ it "adds 'exportable' method to model" do
11
+ expect(ExportableModel.respond_to? 'exportable').to be_truthy
12
+ end
13
+
14
+
15
+ end
@@ -0,0 +1,69 @@
1
+ require "spec_helper"
2
+
3
+ describe 'Export CSV' do
4
+
5
+ before(:each) do
6
+ ExportableModel.create!(field_string: "sample string", field_text: "sample text", field_date: Date.today )
7
+ end
8
+
9
+ it "responds to export_csv" do
10
+ ExportableModel.class_eval{ exportable }
11
+ expect(ExportableModel.respond_to? 'export_csv').to be_truthy
12
+ end
13
+
14
+ it "exports csv data" do
15
+ ExportableModel.class_eval{ exportable }
16
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
17
+ expect(csv.first['field_string']).to eq 'sample string'
18
+ end
19
+
20
+ it "exports properly encode data" do
21
+ ExportableModel.class_eval{ exportable }
22
+ ExportableModel.create!(field_string: "sample st,ring")
23
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
24
+ expect(csv[-1]['field_string']).to eq 'sample st,ring'
25
+ end
26
+
27
+ it "exports csv data with 'only' option" do
28
+ ExportableModel.class_eval{ exportable only: [:field_string] }
29
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
30
+ expect(csv.headers).not_to include('field_text')
31
+ end
32
+
33
+ it "exports csv data with 'except' option" do
34
+ ExportableModel.class_eval{ exportable except: [:field_string] }
35
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
36
+ expect(csv.headers).not_to include('field_string')
37
+ end
38
+
39
+ it "exports csv data with 'header' option" do
40
+ ExportableModel.class_eval{ exportable header: false }
41
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
42
+ expect(csv.headers).not_to include('field_string')
43
+ end
44
+
45
+ it "exports csv data with 'methods' option" do
46
+ ExportableModel.class_eval do
47
+ exportable methods: [:title]
48
+ def title
49
+ field_string.upcase
50
+ end
51
+ end
52
+ csv = CSV.parse(ExportableModel.export_csv, headers: true)
53
+ expect(csv.headers).to include('title')
54
+ end
55
+
56
+ it "has option preference on utility method" do
57
+ ExportableModel.class_eval{ exportable only: [:field_string]}
58
+ csv = CSV.parse(ExportableModel.export_csv(only: [:field_string, :field_text]), headers: true)
59
+ expect(csv.headers).to include('field_text')
60
+ end
61
+
62
+ it 'validates arguments' do
63
+ ExportableModel.class_eval{ exportable only: :field_string}
64
+ expect{ExportableModel.export_csv}.to raise_error(ArgumentError)
65
+ ExportableModel.class_eval{ exportable only: [:field_string]}
66
+ expect{ExportableModel.export_csv methods: :title}.to raise_error(ArgumentError)
67
+ end
68
+
69
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+
4
+ describe Exportable::ExportMethods, type: :model do
5
+
6
+ before(:each) do
7
+ ExportableModel.create!(field_string: "sample string", field_text: "sample text", field_date: Date.today )
8
+ ExportableModel.class_eval{ exportable }
9
+ end
10
+
11
+ it "adds 'export' method to model" do
12
+ expect(ExportableModel.respond_to? 'export').to be_truthy
13
+ end
14
+
15
+ describe '.export' do
16
+ it 'generates output format string on model' do
17
+ csv = CSV.parse(ExportableModel.export(:csv), headers: true)
18
+ expect(csv.first['field_string']).to eq 'sample string'
19
+ end
20
+
21
+ it 'generates output format string on model with options' do
22
+ csv = CSV.parse(ExportableModel.export(:csv, only: [:field_string]), headers: true)
23
+ expect(csv.headers).not_to include('field_text')
24
+ end
25
+
26
+ it 'raise error on invalid output format' do
27
+ expect{ExportableModel.export(:xml)}.to raise_error(ArgumentError)
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+
3
+ describe 'Export XLS' do
4
+
5
+ before(:each) do
6
+ ExportableModel.create!(field_string: "sample string", field_text: "sample text",
7
+ field_date: Date.today )
8
+ end
9
+
10
+ it "responds to export_csv" do
11
+ ExportableModel.class_eval{ exportable }
12
+ expect(ExportableModel.respond_to? 'export_xls').to be_truthy
13
+ end
14
+
15
+ it "exports csv data" do
16
+ ExportableModel.class_eval{ exportable }
17
+ sheet = write_xls
18
+ expect(sheet.row(1)[1]).to eq 'sample string'
19
+ end
20
+
21
+ it "exports csv data with 'only' option" do
22
+ ExportableModel.class_eval{ exportable only: [:field_string] }
23
+ sheet = write_xls
24
+ expect(sheet.row(0)).not_to include('field_text')
25
+ end
26
+
27
+ it "exports csv data with 'except' option" do
28
+ ExportableModel.class_eval{ exportable except: [:field_string] }
29
+ sheet = write_xls
30
+ expect(sheet.row(0)).not_to include('field_string')
31
+ end
32
+
33
+ it "exports csv data with 'header' option" do
34
+ ExportableModel.class_eval{ exportable header: false }
35
+ sheet = write_xls
36
+ expect(sheet.row(0)).not_to include('field_string')
37
+ end
38
+
39
+ it "exports csv data with 'methods' option" do
40
+ ExportableModel.class_eval do
41
+ exportable methods: [:title]
42
+ def title
43
+ field_string.upcase
44
+ end
45
+ end
46
+ sheet = write_xls
47
+ expect(sheet.row(0)).to include('title')
48
+ end
49
+
50
+ it "has option preference on utility method" do
51
+ ExportableModel.class_eval{ exportable only: [:field_string]}
52
+ sheet = write_xls only: [:field_string, :field_text]
53
+ expect(sheet.row(0)).to include('field_text')
54
+ end
55
+
56
+ end
@@ -0,0 +1,128 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
4
+ # this file to always be loaded, without a need to explicitly require it in any
5
+ # files.
6
+ #
7
+ # Given that it is always loaded, you are encouraged to keep this file as
8
+ # light-weight as possible. Requiring heavyweight dependencies from this file
9
+ # will add to the boot time of your test suite on EVERY test run, even for an
10
+ # individual file that may not need all of that loaded. Instead, consider making
11
+ # a separate helper file that requires the additional dependencies and performs
12
+ # the additional setup, and require it from the spec files that actually need
13
+ # it.
14
+ #
15
+ # The `.rspec` file also contains a few flags that are not defaults but that
16
+ # users commonly want.
17
+ #
18
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+ ENV["RAILS_ENV"] = "test"
20
+
21
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
22
+ Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each {|f| require f}
23
+ require 'database_cleaner'
24
+
25
+
26
+ RSpec.configure do |config|
27
+
28
+ config.before(:suite) do
29
+ DatabaseCleaner.strategy = :transaction
30
+ DatabaseCleaner.clean_with(:truncation)
31
+ end
32
+
33
+ config.around(:each) do |example|
34
+ DatabaseCleaner.cleaning do
35
+ example.run
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+
42
+
43
+ RSpec.configure do |config|
44
+ # rspec-expectations config goes here. You can use an alternate
45
+ # assertion/expectation library such as wrong or the stdlib/minitest
46
+ # assertions if you prefer.
47
+ config.expect_with :rspec do |expectations|
48
+ # This option will default to `true` in RSpec 4. It makes the `description`
49
+ # and `failure_message` of custom matchers include text for helper methods
50
+ # defined using `chain`, e.g.:
51
+ # be_bigger_than(2).and_smaller_than(4).description
52
+ # # => "be bigger than 2 and smaller than 4"
53
+ # ...rather than:
54
+ # # => "be bigger than 2"
55
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
56
+ end
57
+
58
+ # rspec-mocks config goes here. You can use an alternate test double
59
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
60
+ config.mock_with :rspec do |mocks|
61
+ # Prevents you from mocking or stubbing a method that does not exist on
62
+ # a real object. This is generally recommended, and will default to
63
+ # `true` in RSpec 4.
64
+ mocks.verify_partial_doubles = true
65
+ end
66
+
67
+ # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
68
+ # have no way to turn it off -- the option exists only for backwards
69
+ # compatibility in RSpec 3). It causes shared context metadata to be
70
+ # inherited by the metadata hash of host groups and examples, rather than
71
+ # triggering implicit auto-inclusion in groups with matching metadata.
72
+ config.shared_context_metadata_behavior = :apply_to_host_groups
73
+
74
+ # The settings below are suggested to provide a good initial experience
75
+ # with RSpec, but feel free to customize to your heart's content.
76
+ =begin
77
+ # This allows you to limit a spec run to individual examples or groups
78
+ # you care about by tagging them with `:focus` metadata. When nothing
79
+ # is tagged with `:focus`, all examples get run. RSpec also provides
80
+ # aliases for `it`, `describe`, and `context` that include `:focus`
81
+ # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
82
+ config.filter_run_when_matching :focus
83
+
84
+ # Allows RSpec to persist some state between runs in order to support
85
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
86
+ # you configure your source control system to ignore this file.
87
+ config.example_status_persistence_file_path = "spec/examples.txt"
88
+
89
+ # Limits the available syntax to the non-monkey patched syntax that is
90
+ # recommended. For more details, see:
91
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
92
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
93
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
94
+ config.disable_monkey_patching!
95
+
96
+ # This setting enables warnings. It's recommended, but in some cases may
97
+ # be too noisy due to issues in dependencies.
98
+ config.warnings = true
99
+
100
+ # Many RSpec users commonly either run the entire suite or an individual
101
+ # file, and it's useful to allow more verbose output when running an
102
+ # individual spec file.
103
+ if config.files_to_run.one?
104
+ # Use the documentation formatter for detailed output,
105
+ # unless a formatter has already been configured
106
+ # (e.g. via a command-line flag).
107
+ config.default_formatter = 'doc'
108
+ end
109
+
110
+ # Print the 10 slowest examples and example groups at the
111
+ # end of the spec run, to help surface which specs are running
112
+ # particularly slow.
113
+ config.profile_examples = 10
114
+
115
+ # Run specs in random order to surface order dependencies. If you find an
116
+ # order dependency and want to debug it, you can fix the order by providing
117
+ # the seed, which is printed after each run.
118
+ # --seed 1234
119
+ config.order = :random
120
+
121
+ # Seed global randomization in this process using the `--seed` CLI option.
122
+ # Setting this allows you to use `--seed` to deterministically reproduce
123
+ # test failures related to randomization by passing the same `--seed` value
124
+ # as the one that triggered the failure.
125
+ Kernel.srand config.seed
126
+ =end
127
+ config.include Helper::XlsHelper
128
+ end
@@ -0,0 +1,12 @@
1
+ module Helper
2
+ module XlsHelper
3
+ DATA_DIR = 'spec/data'
4
+
5
+ def write_xls( options = {} )
6
+ File.open("#{DATA_DIR}/test.xls", 'wb') {|f| f.write ExportableModel.export_xls options}
7
+ book = Spreadsheet.open("#{DATA_DIR}/test.xls")
8
+ File.delete("#{DATA_DIR}/test.xls")
9
+ book.worksheet 0
10
+ end
11
+ end
12
+ end
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: exportable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sunil Antony
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-01-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: spreadsheet
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '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: '4.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '4.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: database_cleaner
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Exportable will help you in exporting ActiveRecord models in to different
98
+ output formats including CSV, XLS etc.
99
+ email:
100
+ - chackoantonydaniel@gmail.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".gitignore"
106
+ - ".rspec"
107
+ - Gemfile
108
+ - Gemfile.lock
109
+ - MIT-LICENSE
110
+ - README.md
111
+ - Rakefile
112
+ - bin/test
113
+ - exportable.gemspec
114
+ - lib/exportable.rb
115
+ - lib/exportable/class_methods.rb
116
+ - lib/exportable/export_methods.rb
117
+ - lib/exportable/export_methods/csv_exporter.rb
118
+ - lib/exportable/export_methods/xls_exporter.rb
119
+ - lib/exportable/utils.rb
120
+ - lib/exportable/version.rb
121
+ - lib/tasks/exportable_tasks.rake
122
+ - spec/dummy/Rakefile
123
+ - spec/dummy/app/models/application_record.rb
124
+ - spec/dummy/app/models/exportable_model.rb
125
+ - spec/dummy/bin/bundle
126
+ - spec/dummy/bin/rails
127
+ - spec/dummy/bin/rake
128
+ - spec/dummy/bin/setup
129
+ - spec/dummy/bin/update
130
+ - spec/dummy/config.ru
131
+ - spec/dummy/config/application.rb
132
+ - spec/dummy/config/boot.rb
133
+ - spec/dummy/config/cable.yml
134
+ - spec/dummy/config/database.yml
135
+ - spec/dummy/config/environment.rb
136
+ - spec/dummy/config/environments/test.rb
137
+ - spec/dummy/config/initializers/application_controller_renderer.rb
138
+ - spec/dummy/config/initializers/backtrace_silencers.rb
139
+ - spec/dummy/config/initializers/cookies_serializer.rb
140
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
141
+ - spec/dummy/config/initializers/inflections.rb
142
+ - spec/dummy/config/initializers/mime_types.rb
143
+ - spec/dummy/config/initializers/new_framework_defaults.rb
144
+ - spec/dummy/config/initializers/session_store.rb
145
+ - spec/dummy/config/initializers/wrap_parameters.rb
146
+ - spec/dummy/config/locales/en.yml
147
+ - spec/dummy/config/puma.rb
148
+ - spec/dummy/config/routes.rb
149
+ - spec/dummy/config/secrets.yml
150
+ - spec/dummy/config/spring.rb
151
+ - spec/dummy/db/development.sqlite3
152
+ - spec/dummy/db/migrate/20170107183658_create_exportable_models.rb
153
+ - spec/dummy/db/schema.rb
154
+ - spec/dummy/db/test.sqlite3
155
+ - spec/dummy/log/development.log
156
+ - spec/dummy/log/test.log
157
+ - spec/exportable/class_methods_spec.rb
158
+ - spec/exportable/csv_exporter_spec.rb
159
+ - spec/exportable/export_methods_spec.rb
160
+ - spec/exportable/xls_exporter_spec.rb
161
+ - spec/spec_helper.rb
162
+ - spec/support/helper.rb
163
+ homepage: https://github.com/chackoantony/exportable
164
+ licenses:
165
+ - MIT
166
+ metadata: {}
167
+ post_install_message:
168
+ rdoc_options: []
169
+ require_paths:
170
+ - lib
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ requirements: []
182
+ rubyforge_project:
183
+ rubygems_version: 2.5.1
184
+ signing_key:
185
+ specification_version: 4
186
+ summary: Exporting Rails ActiveRecord models.
187
+ test_files:
188
+ - spec/support/helper.rb
189
+ - spec/dummy/db/schema.rb
190
+ - spec/dummy/db/migrate/20170107183658_create_exportable_models.rb
191
+ - spec/dummy/db/test.sqlite3
192
+ - spec/dummy/db/development.sqlite3
193
+ - spec/dummy/Rakefile
194
+ - spec/dummy/bin/bundle
195
+ - spec/dummy/bin/update
196
+ - spec/dummy/bin/rake
197
+ - spec/dummy/bin/setup
198
+ - spec/dummy/bin/rails
199
+ - spec/dummy/config/database.yml
200
+ - spec/dummy/config/puma.rb
201
+ - spec/dummy/config/locales/en.yml
202
+ - spec/dummy/config/boot.rb
203
+ - spec/dummy/config/application.rb
204
+ - spec/dummy/config/environment.rb
205
+ - spec/dummy/config/environments/test.rb
206
+ - spec/dummy/config/secrets.yml
207
+ - spec/dummy/config/initializers/inflections.rb
208
+ - spec/dummy/config/initializers/mime_types.rb
209
+ - spec/dummy/config/initializers/application_controller_renderer.rb
210
+ - spec/dummy/config/initializers/wrap_parameters.rb
211
+ - spec/dummy/config/initializers/session_store.rb
212
+ - spec/dummy/config/initializers/new_framework_defaults.rb
213
+ - spec/dummy/config/initializers/backtrace_silencers.rb
214
+ - spec/dummy/config/initializers/cookies_serializer.rb
215
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
216
+ - spec/dummy/config/routes.rb
217
+ - spec/dummy/config/cable.yml
218
+ - spec/dummy/config/spring.rb
219
+ - spec/dummy/log/development.log
220
+ - spec/dummy/log/test.log
221
+ - spec/dummy/config.ru
222
+ - spec/dummy/app/models/exportable_model.rb
223
+ - spec/dummy/app/models/application_record.rb
224
+ - spec/exportable/class_methods_spec.rb
225
+ - spec/exportable/csv_exporter_spec.rb
226
+ - spec/exportable/export_methods_spec.rb
227
+ - spec/exportable/xls_exporter_spec.rb
228
+ - spec/spec_helper.rb