useful_renderers 0.0.3 → 0.3.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 +1 -1
- data/README.md +9 -16
- data/lib/useful_renderers.rb +5 -5
- data/lib/useful_renderers/csv_renderable.rb +7 -13
- data/lib/useful_renderers/version.rb +1 -1
- data/useful_renderers.gemspec +1 -1
- metadata +8 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: bf5f74912ea017f010e6bee5399c8f518681cd17d8418d74c84eef861d34b390
         | 
| 4 | 
            +
              data.tar.gz: 06d2801f99a0e34c4d3104cbae3cb75e8ae2a26bcf7028a73b27060ba55a1436
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c02d2b98c06246bd75cf71568426cf02d7e9b7e6d664bad4175963a5fd519026b42812cd93b916f69c2e9462382ac8dc254b81672c6cf03d94e6edb4dedb04b2
         | 
| 7 | 
            +
              data.tar.gz: 161b7daf08ff1cdc47dd99b566deed06faeec2c4e3534acac0810f18098a50cb1076a01f6c5498c43c99adb6a6aeadab1998f3f7bc7276d936d3d5657bbeedb4
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,10 +1,9 @@ | |
| 1 1 | 
             
            # UsefulRenderers
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
            [](http://badge.fury.io/rb/useful_renderers)
         | 
| 4 | 
            +
            [](https://codeclimate.com/github/blueberryapps/useful_renderers)
         | 
| 5 | 
            +
            [](https://gemnasium.com/blueberryapps/useful_renderers)
         | 
| 6 | 
            +
             | 
| 8 7 | 
             
            Rails renderers
         | 
| 9 8 |  | 
| 10 9 | 
             
            - CSV renderer for ActiveRecord collections
         | 
| @@ -84,30 +83,24 @@ end | |
| 84 83 |  | 
| 85 84 | 
             
            ```ruby
         | 
| 86 85 | 
             
            respond_to do |format|
         | 
| 87 | 
            -
              format.csv  { render csv: @locations, only: [:address, :zip] }
         | 
| 86 | 
            +
              format.csv  { render csv: @locations, only: [:address, :zip, 'country.state'] }
         | 
| 88 87 | 
             
            end
         | 
| 89 88 | 
             
            ```
         | 
| 90 89 |  | 
| 91 | 
            -
            ###  | 
| 92 | 
            -
             | 
| 93 | 
            -
            ```ruby
         | 
| 94 | 
            -
            respond_to do |format|
         | 
| 95 | 
            -
              format.csv  { render csv: @locations, add_methods: [:method1, :method2] }
         | 
| 96 | 
            -
            end
         | 
| 97 | 
            -
            ```
         | 
| 90 | 
            +
            ### Translate headers
         | 
| 98 91 |  | 
| 99 | 
            -
             | 
| 92 | 
            +
            Using `Class.human_attribute_name(column_name)`
         | 
| 100 93 |  | 
| 101 94 | 
             
            ```ruby
         | 
| 102 95 | 
             
            respond_to do |format|
         | 
| 103 | 
            -
              format.csv  { render csv: @locations,  | 
| 96 | 
            +
              format.csv  { render csv: @locations, translate: true }
         | 
| 104 97 | 
             
            end
         | 
| 105 98 | 
             
            ```
         | 
| 106 99 |  | 
| 107 100 |  | 
| 108 101 | 
             
            ## Contributing
         | 
| 109 102 |  | 
| 110 | 
            -
            1. Fork it ( https://github.com/ | 
| 103 | 
            +
            1. Fork it ( https://github.com/blueberryapps/useful_renderers/fork )
         | 
| 111 104 | 
             
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 112 105 | 
             
            3. Commit your changes (`git commit -am 'Add some feature'`)
         | 
| 113 106 | 
             
            4. Push to the branch (`git push origin my-new-feature`)
         | 
    
        data/lib/useful_renderers.rb
    CHANGED
    
    | @@ -11,14 +11,14 @@ module UsefulRenderers | |
| 11 11 | 
             
                    filename = options[:filename] || options[:template]
         | 
| 12 12 | 
             
                    csv.extend UsefulRenderers::CsvRenderable
         | 
| 13 13 | 
             
                    data = csv.respond_to?(:to_csv) ? csv.to_csv(options) : csv
         | 
| 14 | 
            -
                    send_data data, type: Mime | 
| 14 | 
            +
                    send_data data, type: Mime[:csv], disposition: "attachment; filename=#{filename}.csv"
         | 
| 15 15 | 
             
                  end
         | 
| 16 16 |  | 
| 17 | 
            -
                  ActionController.add_renderer :zip do | | 
| 17 | 
            +
                  ActionController.add_renderer :zip do |zip, options|
         | 
| 18 18 | 
             
                    filename = options[:filename] || options[:template]
         | 
| 19 | 
            -
                     | 
| 20 | 
            -
                    data =  | 
| 21 | 
            -
                    send_data data, type:  | 
| 19 | 
            +
                    zip.extend UsefulRenderers::ZipRenderable
         | 
| 20 | 
            +
                    data = zip.respond_to?(:to_zip) ? zip.to_zip(options) : zip
         | 
| 21 | 
            +
                    send_data data, type: 'application/zip', disposition: "attachment; filename=#{filename}.zip"
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 |  | 
| 24 24 | 
             
                end
         | 
| @@ -5,25 +5,17 @@ module UsefulRenderers | |
| 5 5 |  | 
| 6 6 | 
             
                # Converts an array to CSV formatted string
         | 
| 7 7 | 
             
                # Options include:
         | 
| 8 | 
            -
                # :only => [:col1, :col2] | 
| 8 | 
            +
                # :only => [:col1, :col2]   # Specify which columns to include
         | 
| 9 9 | 
             
                # :except => [:col1, :col2] # Specify which columns to exclude
         | 
| 10 | 
            -
                # : | 
| 10 | 
            +
                # :translate => boolean     # Translate headers
         | 
| 11 11 |  | 
| 12 12 | 
             
                def to_csv(options = {})
         | 
| 13 13 | 
             
                  klass = first.class
         | 
| 14 14 | 
             
                  return '' if empty?
         | 
| 15 15 | 
             
                  return join(',') unless klass.respond_to? :column_names
         | 
| 16 16 |  | 
| 17 | 
            -
                  columns = klass.column_names
         | 
| 18 | 
            -
                  if options[: | 
| 19 | 
            -
                    columns = []
         | 
| 20 | 
            -
                    options[:only].each do |method|
         | 
| 21 | 
            -
                      columns << method.to_s if first.respond_to?(method)
         | 
| 22 | 
            -
                    end
         | 
| 23 | 
            -
                  end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                  columns -= options[:except].map(&:to_s)      if options[:except]
         | 
| 26 | 
            -
                  columns += options[:add_methods].map(&:to_s) if options[:add_methods]
         | 
| 17 | 
            +
                  columns = options[:only] ? options[:only].map(&:to_s) : klass.column_names
         | 
| 18 | 
            +
                  columns -= options[:except].map(&:to_s) if options[:except]
         | 
| 27 19 |  | 
| 28 20 | 
             
                  headers = columns.dup
         | 
| 29 21 | 
             
                  headers.map!{|col| klass.human_attribute_name col } if options[:translate]
         | 
| @@ -36,7 +28,9 @@ module UsefulRenderers | |
| 36 28 |  | 
| 37 29 | 
             
                  CSV.generate(csv_options) do |row|
         | 
| 38 30 | 
             
                    self.each do |obj|
         | 
| 39 | 
            -
                      row << columns.map  | 
| 31 | 
            +
                      row << columns.map do |column|
         | 
| 32 | 
            +
                        column.to_s.split('.').inject(obj) { |o, m| o.try(m) }
         | 
| 33 | 
            +
                      end
         | 
| 40 34 | 
             
                    end
         | 
| 41 35 | 
             
                  end
         | 
| 42 36 | 
             
                end
         | 
    
        data/useful_renderers.gemspec
    CHANGED
    
    | @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| | |
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
| 20 20 |  | 
| 21 | 
            -
              spec.add_dependency 'rails', '>=  | 
| 21 | 
            +
              spec.add_dependency 'rails', '>= 5.0'
         | 
| 22 22 | 
             
              spec.add_dependency 'rubyzip', '>= 1.0.0'
         | 
| 23 23 |  | 
| 24 24 | 
             
              spec.add_development_dependency 'rspec-rails', '>= 2.12'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: useful_renderers
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ondrej Bartas
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2020-09-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '5.0'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 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: '5.0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rubyzip
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -139,7 +139,7 @@ homepage: '' | |
| 139 139 | 
             
            licenses:
         | 
| 140 140 | 
             
            - MIT
         | 
| 141 141 | 
             
            metadata: {}
         | 
| 142 | 
            -
            post_install_message: | 
| 142 | 
            +
            post_install_message:
         | 
| 143 143 | 
             
            rdoc_options: []
         | 
| 144 144 | 
             
            require_paths:
         | 
| 145 145 | 
             
            - lib
         | 
| @@ -154,9 +154,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 154 154 | 
             
                - !ruby/object:Gem::Version
         | 
| 155 155 | 
             
                  version: '0'
         | 
| 156 156 | 
             
            requirements: []
         | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
            signing_key: 
         | 
| 157 | 
            +
            rubygems_version: 3.0.1
         | 
| 158 | 
            +
            signing_key:
         | 
| 160 159 | 
             
            specification_version: 4
         | 
| 161 160 | 
             
            summary: Adds a custom CSV and ZIP renderer to Rails applications
         | 
| 162 161 | 
             
            test_files:
         |