active_model_exporters 0.4.0 → 0.6.0
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 +5 -5
- data/.gitignore +10 -17
- data/.travis.yml +18 -5
- data/Appraisals +11 -0
- data/CHANGELOG.md +20 -2
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +0 -4
- data/LICENSE.txt +17 -18
- data/README.md +48 -12
- data/Rakefile +3 -2
- data/active_model_exporters.gemspec +21 -9
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/gemfiles/rails_5.2.gemfile +7 -0
- data/gemfiles/rails_5.2.gemfile.lock +155 -0
- data/gemfiles/rails_6.0.gemfile +7 -0
- data/gemfiles/rails_6.0.gemfile.lock +171 -0
- data/gemfiles/rails_6.1.gemfile +7 -0
- data/gemfiles/rails_6.1.gemfile.lock +174 -0
- data/lib/action_controller/exportation/renderers.rb +1 -1
- data/lib/active_model/array_exporter.rb +1 -1
- data/lib/active_model/exporter.rb +6 -7
- data/lib/active_model/exporter/version.rb +1 -1
- metadata +108 -44
- data/test/fixtures/active_record/exporters.rb +0 -3
- data/test/fixtures/active_record/models.rb +0 -17
- data/test/fixtures/exporters.rb +0 -23
- data/test/fixtures/locale.rb +0 -20
- data/test/fixtures/models.rb +0 -6
- data/test/integration/action_controller/exportation/csv_test.rb +0 -162
- data/test/integration/action_controller/exportation/xls_test.rb +0 -162
- data/test/integration/active_record/exportation/csv_test.rb +0 -23
- data/test/test_helper.rb +0 -27
| @@ -4,7 +4,7 @@ ActiveModel::Exporter::TYPES.each do |type| | |
| 4 4 |  | 
| 5 5 | 
             
                if resource.respond_to?(method)
         | 
| 6 6 | 
             
                  encode = options[:encode] || 'iso-8859-1'
         | 
| 7 | 
            -
                  mtype  =  | 
| 7 | 
            +
                  mtype  = Mime[type.to_sym]
         | 
| 8 8 | 
             
                  file   = resource.send(method).encode(encode)
         | 
| 9 9 |  | 
| 10 10 | 
             
                  default_options = {type: mtype, disposition: 'attachment'}
         | 
| @@ -9,12 +9,6 @@ module ActiveModel | |
| 9 9 |  | 
| 10 10 | 
             
                  def attributes(*attrs)
         | 
| 11 11 | 
             
                    @_attributes.concat(attrs)
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                    attrs.each do |attr|
         | 
| 14 | 
            -
                      define_method(attr) do
         | 
| 15 | 
            -
                        object.send(attr)
         | 
| 16 | 
            -
                      end unless method_defined?(attr)
         | 
| 17 | 
            -
                    end
         | 
| 18 12 | 
             
                  end
         | 
| 19 13 |  | 
| 20 14 | 
             
                  def exporter_for(resource)
         | 
| @@ -32,7 +26,12 @@ module ActiveModel | |
| 32 26 |  | 
| 33 27 | 
             
                def values
         | 
| 34 28 | 
             
                  attrs = filter(attributes)
         | 
| 35 | 
            -
                  attributes.map  | 
| 29 | 
            +
                  attributes.map do |attr|
         | 
| 30 | 
            +
                    if attrs.include?(attr)
         | 
| 31 | 
            +
                      next send(attr) if respond_to?(attr)
         | 
| 32 | 
            +
                      object.send(attr)
         | 
| 33 | 
            +
                    end
         | 
| 34 | 
            +
                  end
         | 
| 36 35 | 
             
                end
         | 
| 37 36 |  | 
| 38 37 | 
             
                def filter(attrs)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,43 +1,113 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: active_model_exporters
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.6.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Alejandro Gutiérrez
         | 
| 8 | 
            -
            autorequire: | 
| 9 | 
            -
            bindir:  | 
| 8 | 
            +
            autorequire:
         | 
| 9 | 
            +
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-04-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name:  | 
| 14 | 
            +
              name: rake
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 20 | 
            -
              type: : | 
| 19 | 
            +
                    version: '13.0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '13.0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name:  | 
| 28 | 
            +
              name: bundler
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '2.2'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '2.2'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: sqlite3
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '1.4'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '1.4'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: minitest
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '5.14'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '5.14'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: appraisal
         | 
| 29 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 72 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 73 | 
            +
                - - "~>"
         | 
| 32 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '4 | 
| 75 | 
            +
                    version: '2.4'
         | 
| 34 76 | 
             
              type: :development
         | 
| 35 77 | 
             
              prerelease: false
         | 
| 36 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 79 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 80 | 
            +
                - - "~>"
         | 
| 39 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '4 | 
| 82 | 
            +
                    version: '2.4'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: coveralls
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - "~>"
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0.8'
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - "~>"
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0.8'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: rails
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - ">="
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '5.2'
         | 
| 104 | 
            +
              type: :runtime
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - ">="
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '5.2'
         | 
| 41 111 | 
             
            description: A simple way to export data in Rails.
         | 
| 42 112 | 
             
            email:
         | 
| 43 113 | 
             
            - alejandrodevs@gmail.com
         | 
| @@ -45,14 +115,24 @@ executables: [] | |
| 45 115 | 
             
            extensions: []
         | 
| 46 116 | 
             
            extra_rdoc_files: []
         | 
| 47 117 | 
             
            files:
         | 
| 48 | 
            -
            - .gitignore
         | 
| 49 | 
            -
            - .travis.yml
         | 
| 118 | 
            +
            - ".gitignore"
         | 
| 119 | 
            +
            - ".travis.yml"
         | 
| 120 | 
            +
            - Appraisals
         | 
| 50 121 | 
             
            - CHANGELOG.md
         | 
| 122 | 
            +
            - CODE_OF_CONDUCT.md
         | 
| 51 123 | 
             
            - Gemfile
         | 
| 52 124 | 
             
            - LICENSE.txt
         | 
| 53 125 | 
             
            - README.md
         | 
| 54 126 | 
             
            - Rakefile
         | 
| 55 127 | 
             
            - active_model_exporters.gemspec
         | 
| 128 | 
            +
            - bin/console
         | 
| 129 | 
            +
            - bin/setup
         | 
| 130 | 
            +
            - gemfiles/rails_5.2.gemfile
         | 
| 131 | 
            +
            - gemfiles/rails_5.2.gemfile.lock
         | 
| 132 | 
            +
            - gemfiles/rails_6.0.gemfile
         | 
| 133 | 
            +
            - gemfiles/rails_6.0.gemfile.lock
         | 
| 134 | 
            +
            - gemfiles/rails_6.1.gemfile
         | 
| 135 | 
            +
            - gemfiles/rails_6.1.gemfile.lock
         | 
| 56 136 | 
             
            - lib/action_controller/exportation.rb
         | 
| 57 137 | 
             
            - lib/action_controller/exportation/mime_types.rb
         | 
| 58 138 | 
             
            - lib/action_controller/exportation/renderers.rb
         | 
| @@ -61,46 +141,30 @@ files: | |
| 61 141 | 
             
            - lib/active_model/exporter/types.rb
         | 
| 62 142 | 
             
            - lib/active_model/exporter/version.rb
         | 
| 63 143 | 
             
            - lib/active_model_exporters.rb
         | 
| 64 | 
            -
            - test/fixtures/active_record/exporters.rb
         | 
| 65 | 
            -
            - test/fixtures/active_record/models.rb
         | 
| 66 | 
            -
            - test/fixtures/exporters.rb
         | 
| 67 | 
            -
            - test/fixtures/locale.rb
         | 
| 68 | 
            -
            - test/fixtures/models.rb
         | 
| 69 | 
            -
            - test/integration/action_controller/exportation/csv_test.rb
         | 
| 70 | 
            -
            - test/integration/action_controller/exportation/xls_test.rb
         | 
| 71 | 
            -
            - test/integration/active_record/exportation/csv_test.rb
         | 
| 72 | 
            -
            - test/test_helper.rb
         | 
| 73 144 | 
             
            homepage: https://github.com/alejandrodevs/active_model_exporters
         | 
| 74 145 | 
             
            licenses:
         | 
| 75 146 | 
             
            - MIT
         | 
| 76 | 
            -
            metadata: | 
| 77 | 
            -
             | 
| 147 | 
            +
            metadata:
         | 
| 148 | 
            +
              homepage_uri: https://github.com/alejandrodevs/active_model_exporters
         | 
| 149 | 
            +
              source_code_uri: https://github.com/alejandrodevs/active_model_exporters
         | 
| 150 | 
            +
              changelog_uri: https://github.com/alejandrodevs/active_model_exporters/blob/master/LICENSE.txt
         | 
| 151 | 
            +
            post_install_message:
         | 
| 78 152 | 
             
            rdoc_options: []
         | 
| 79 153 | 
             
            require_paths:
         | 
| 80 154 | 
             
            - lib
         | 
| 81 155 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 82 156 | 
             
              requirements:
         | 
| 83 | 
            -
              - -  | 
| 157 | 
            +
              - - ">="
         | 
| 84 158 | 
             
                - !ruby/object:Gem::Version
         | 
| 85 | 
            -
                  version:  | 
| 159 | 
            +
                  version: '0'
         | 
| 86 160 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 87 161 | 
             
              requirements:
         | 
| 88 | 
            -
              - -  | 
| 162 | 
            +
              - - ">="
         | 
| 89 163 | 
             
                - !ruby/object:Gem::Version
         | 
| 90 164 | 
             
                  version: '0'
         | 
| 91 165 | 
             
            requirements: []
         | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
            signing_key: 
         | 
| 166 | 
            +
            rubygems_version: 3.2.3
         | 
| 167 | 
            +
            signing_key:
         | 
| 95 168 | 
             
            specification_version: 4
         | 
| 96 169 | 
             
            summary: A simple way to export data in Rails.
         | 
| 97 | 
            -
            test_files:
         | 
| 98 | 
            -
            - test/fixtures/active_record/exporters.rb
         | 
| 99 | 
            -
            - test/fixtures/active_record/models.rb
         | 
| 100 | 
            -
            - test/fixtures/exporters.rb
         | 
| 101 | 
            -
            - test/fixtures/locale.rb
         | 
| 102 | 
            -
            - test/fixtures/models.rb
         | 
| 103 | 
            -
            - test/integration/action_controller/exportation/csv_test.rb
         | 
| 104 | 
            -
            - test/integration/action_controller/exportation/xls_test.rb
         | 
| 105 | 
            -
            - test/integration/active_record/exportation/csv_test.rb
         | 
| 106 | 
            -
            - test/test_helper.rb
         | 
| 170 | 
            +
            test_files: []
         | 
| @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            require 'active_record'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            ActiveRecord::Base.establish_connection(
         | 
| 4 | 
            -
              adapter:  'sqlite3',
         | 
| 5 | 
            -
              database: ':memory:'
         | 
| 6 | 
            -
            )
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            ActiveRecord::Schema.define do
         | 
| 9 | 
            -
              create_table :ar_users, force: true do |t|
         | 
| 10 | 
            -
                t.string     :first_name
         | 
| 11 | 
            -
                t.string     :last_name
         | 
| 12 | 
            -
                t.timestamps
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
            end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
            class ARUser < ActiveRecord::Base
         | 
| 17 | 
            -
            end
         | 
    
        data/test/fixtures/exporters.rb
    DELETED
    
    | @@ -1,23 +0,0 @@ | |
| 1 | 
            -
            class UserExporter < ActiveModel::Exporter
         | 
| 2 | 
            -
              attributes :first_name, :last_name, :full_name
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              def full_name
         | 
| 5 | 
            -
                "#{object.first_name}-#{object.last_name}#{scope ? "-#{scope}" : ''}"
         | 
| 6 | 
            -
              end
         | 
| 7 | 
            -
            end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            class FancyUserExporter < ActiveModel::Exporter
         | 
| 10 | 
            -
              attributes :first_name, :last_name
         | 
| 11 | 
            -
            end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            class FilterUserExporter < ActiveModel::Exporter
         | 
| 14 | 
            -
              attributes :first_name, :last_name, :email
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def filter(attrs)
         | 
| 17 | 
            -
                if object.last_name == 'Bar1'
         | 
| 18 | 
            -
                  attrs - [:last_name]
         | 
| 19 | 
            -
                else
         | 
| 20 | 
            -
                  attrs
         | 
| 21 | 
            -
                end
         | 
| 22 | 
            -
              end
         | 
| 23 | 
            -
            end
         | 
    
        data/test/fixtures/locale.rb
    DELETED
    
    | @@ -1,20 +0,0 @@ | |
| 1 | 
            -
            require 'i18n'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class I18n::Backend::Simple
         | 
| 4 | 
            -
              def translations_store
         | 
| 5 | 
            -
                translations
         | 
| 6 | 
            -
              end
         | 
| 7 | 
            -
            end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            I18n.enforce_available_locales = false
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            I18n.backend.translations_store[:en] = {
         | 
| 12 | 
            -
              activerecord: {
         | 
| 13 | 
            -
                attributes: {
         | 
| 14 | 
            -
                  ar_user: {
         | 
| 15 | 
            -
                    first_name: 'First',
         | 
| 16 | 
            -
                    last_name: 'Last'
         | 
| 17 | 
            -
                  }
         | 
| 18 | 
            -
                }
         | 
| 19 | 
            -
              }
         | 
| 20 | 
            -
            }
         | 
    
        data/test/fixtures/models.rb
    DELETED
    
    
| @@ -1,162 +0,0 @@ | |
| 1 | 
            -
            require 'test_helper'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module ActionController
         | 
| 4 | 
            -
              module Exportation::CSV
         | 
| 5 | 
            -
                class ImplicitExporterTest < ActionController::TestCase
         | 
| 6 | 
            -
                  class TestsController < ActionController::Base
         | 
| 7 | 
            -
                    def render_using_implicit_exporter
         | 
| 8 | 
            -
                      render csv: [
         | 
| 9 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1'),
         | 
| 10 | 
            -
                        User.new(first_name: 'Foo2', last_name: 'Bar2'),
         | 
| 11 | 
            -
                        User.new(first_name: 'Foo3', last_name: 'Bar3')
         | 
| 12 | 
            -
                      ]
         | 
| 13 | 
            -
                    end
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  tests TestsController
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                  def test_render_using_implicit_exporter
         | 
| 19 | 
            -
                    get :render_using_implicit_exporter
         | 
| 20 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 21 | 
            -
                    assert_equal "first_name,last_name,full_name\n"\
         | 
| 22 | 
            -
                                 "Foo1,Bar1,Foo1-Bar1\n"\
         | 
| 23 | 
            -
                                 "Foo2,Bar2,Foo2-Bar2\n"\
         | 
| 24 | 
            -
                                 "Foo3,Bar3,Foo3-Bar3\n", @response.body
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                class ExplicitExporterTest < ActionController::TestCase
         | 
| 29 | 
            -
                  class TestsController < ActionController::Base
         | 
| 30 | 
            -
                    def render_using_explicit_exporter
         | 
| 31 | 
            -
                      render csv: [
         | 
| 32 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1')
         | 
| 33 | 
            -
                      ], exporter: FancyUserExporter
         | 
| 34 | 
            -
                    end
         | 
| 35 | 
            -
                  end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                  tests TestsController
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                  def test_render_using_explicit_exporter
         | 
| 40 | 
            -
                    get :render_using_explicit_exporter
         | 
| 41 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 42 | 
            -
                    assert_equal "first_name,last_name\n"\
         | 
| 43 | 
            -
                                 "Foo1,Bar1\n", @response.body
         | 
| 44 | 
            -
                  end
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                class ImplicitExportationScopeTest < ActionController::TestCase
         | 
| 48 | 
            -
                  class TestsController < ActionController::Base
         | 
| 49 | 
            -
                    def render_using_implicit_exportation_scope
         | 
| 50 | 
            -
                      render csv: [
         | 
| 51 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1')
         | 
| 52 | 
            -
                      ]
         | 
| 53 | 
            -
                    end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                    private
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                    def current_user
         | 
| 58 | 
            -
                      'current_user'
         | 
| 59 | 
            -
                    end
         | 
| 60 | 
            -
                  end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                  tests TestsController
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                  def test_render_using_implicit_exportation_scope
         | 
| 65 | 
            -
                    get :render_using_implicit_exportation_scope
         | 
| 66 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 67 | 
            -
                    assert_equal "first_name,last_name,full_name\n"\
         | 
| 68 | 
            -
                                 "Foo1,Bar1,Foo1-Bar1-current_user\n", @response.body
         | 
| 69 | 
            -
                  end
         | 
| 70 | 
            -
                end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                class ExplicitExportationScopeTest < ActionController::TestCase
         | 
| 73 | 
            -
                  class TestsController < ActionController::Base
         | 
| 74 | 
            -
                    def render_using_explicit_exportation_scope
         | 
| 75 | 
            -
                      render csv: [
         | 
| 76 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1')
         | 
| 77 | 
            -
                      ], scope: current_admin
         | 
| 78 | 
            -
                    end
         | 
| 79 | 
            -
             | 
| 80 | 
            -
                    private
         | 
| 81 | 
            -
             | 
| 82 | 
            -
                    def current_admin
         | 
| 83 | 
            -
                      'current_admin'
         | 
| 84 | 
            -
                    end
         | 
| 85 | 
            -
                  end
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                  tests TestsController
         | 
| 88 | 
            -
             | 
| 89 | 
            -
                  def test_render_using_explicit_exportation_scope
         | 
| 90 | 
            -
                    get :render_using_explicit_exportation_scope
         | 
| 91 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 92 | 
            -
                    assert_equal "first_name,last_name,full_name\n"\
         | 
| 93 | 
            -
                                 "Foo1,Bar1,Foo1-Bar1-current_admin\n", @response.body
         | 
| 94 | 
            -
                  end
         | 
| 95 | 
            -
                end
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                class CallingExportationScopeTest < ActionController::TestCase
         | 
| 98 | 
            -
                  class TestsController < ActionController::Base
         | 
| 99 | 
            -
                    exportation_scope :current_admin
         | 
| 100 | 
            -
             | 
| 101 | 
            -
                    def render_calling_exportation_scope
         | 
| 102 | 
            -
                      render csv: [
         | 
| 103 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1')
         | 
| 104 | 
            -
                      ]
         | 
| 105 | 
            -
                    end
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                    private
         | 
| 108 | 
            -
             | 
| 109 | 
            -
                    def current_admin
         | 
| 110 | 
            -
                      'current_admin'
         | 
| 111 | 
            -
                    end
         | 
| 112 | 
            -
                  end
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                  tests TestsController
         | 
| 115 | 
            -
             | 
| 116 | 
            -
                  def test_render_calling_exportation_scope
         | 
| 117 | 
            -
                    get :render_calling_exportation_scope
         | 
| 118 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 119 | 
            -
                    assert_equal "first_name,last_name,full_name\n"\
         | 
| 120 | 
            -
                                 "Foo1,Bar1,Foo1-Bar1-current_admin\n", @response.body
         | 
| 121 | 
            -
                  end
         | 
| 122 | 
            -
                end
         | 
| 123 | 
            -
             | 
| 124 | 
            -
                class UsingFilterAttributesTest < ActionController::TestCase
         | 
| 125 | 
            -
                  class TestsController < ActionController::Base
         | 
| 126 | 
            -
                    def render_using_filter_attributes
         | 
| 127 | 
            -
                      render csv: [
         | 
| 128 | 
            -
                        User.new(first_name: 'Foo1', last_name: 'Bar1', email: 'FooBar1'),
         | 
| 129 | 
            -
                        User.new(first_name: 'Foo2', last_name: 'Bar2', email: 'FooBar2')
         | 
| 130 | 
            -
                      ], exporter: FilterUserExporter
         | 
| 131 | 
            -
                    end
         | 
| 132 | 
            -
                  end
         | 
| 133 | 
            -
             | 
| 134 | 
            -
                  tests TestsController
         | 
| 135 | 
            -
             | 
| 136 | 
            -
                  def test_render_using_filter_attributes
         | 
| 137 | 
            -
                    get :render_using_filter_attributes
         | 
| 138 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 139 | 
            -
                    assert_equal "first_name,last_name,email\n"\
         | 
| 140 | 
            -
                                 "Foo1,,FooBar1\n"\
         | 
| 141 | 
            -
                                 "Foo2,Bar2,FooBar2\n", @response.body
         | 
| 142 | 
            -
                  end
         | 
| 143 | 
            -
                end
         | 
| 144 | 
            -
             | 
| 145 | 
            -
                class ExporterSingleResourceTest < ActionController::TestCase
         | 
| 146 | 
            -
                  class TestsController < ActionController::Base
         | 
| 147 | 
            -
                    def render_single_resource
         | 
| 148 | 
            -
                      render csv: User.new(first_name: 'Foo1', last_name: 'Bar1')
         | 
| 149 | 
            -
                    end
         | 
| 150 | 
            -
                  end
         | 
| 151 | 
            -
             | 
| 152 | 
            -
                  tests TestsController
         | 
| 153 | 
            -
             | 
| 154 | 
            -
                  def test_render_single_resource
         | 
| 155 | 
            -
                    get :render_single_resource
         | 
| 156 | 
            -
                    assert_equal 'text/csv', @response.content_type
         | 
| 157 | 
            -
                    assert_equal "first_name,last_name,full_name\n"\
         | 
| 158 | 
            -
                                 "Foo1,Bar1,Foo1-Bar1\n", @response.body
         | 
| 159 | 
            -
                  end
         | 
| 160 | 
            -
                end
         | 
| 161 | 
            -
              end
         | 
| 162 | 
            -
            end
         |