makeover 1.0.0.rc1 → 1.0.0.rc2
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 +13 -5
- data/README.md +2 -1
- data/lib/generators/makeover/install/install_generator.rb +3 -1
- data/lib/generators/presenter/presenter_generator.rb +2 -0
- data/lib/makeover/engine.rb +0 -1
- data/lib/makeover/presentable.rb +8 -7
- data/lib/makeover/presenter.rb +39 -0
- data/lib/makeover/version.rb +1 -1
- data/lib/makeover.rb +0 -1
- metadata +27 -28
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
             | 
| 2 | 
            +
            !binary "U0hBMQ==":
         | 
| 3 | 
            +
              metadata.gz: !binary |-
         | 
| 4 | 
            +
                N2ViYWIwNmRiYTM2MjEzZDExZjhhNGQ4NGMyZGNiNjgyNzMyMzYxOA==
         | 
| 5 | 
            +
              data.tar.gz: !binary |-
         | 
| 6 | 
            +
                MTQyNzZhZWViZjlkN2ViMjc5OGMwNzcwZjg1ZDlhNDU5NjkyZGU1Mg==
         | 
| 5 7 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
             | 
| 8 | 
            +
              metadata.gz: !binary |-
         | 
| 9 | 
            +
                NjEwZWIyM2I1ZjgxMDdjZWY5ZGE1MzFkYmYyNzk5MjIwYTBlZWZjOTY1NzQ2
         | 
| 10 | 
            +
                OTI4MjE0MjJmOWM4MzQxODU1N2Q4ODYyZDA4ZDYwOWYxYzU2ZjFjZTIzMGQy
         | 
| 11 | 
            +
                MTVkYWFjMmU4MjI2MTM3ZjBkOTIyYTZlNGI5Mzk5ZDQ4ZjMwZWU=
         | 
| 12 | 
            +
              data.tar.gz: !binary |-
         | 
| 13 | 
            +
                MjA1ZWJmODg4MGYwOTM0OTQ5YWUxNjA3ZGFhNzEwNjc5NTZmZTdjZDUxMDM0
         | 
| 14 | 
            +
                MGY5NDNjNzI4YjNiOTRlNjc2OWJhY2MxNjllM2M3N2NjYzQ2ZjY3Y2E5YmVl
         | 
| 15 | 
            +
                YjhhNWNlYjg0ZWNkZjUyMGVhNTFhY2E4ZjE0YjE5NzU2YTBmYWI=
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,9 +1,10 @@ | |
| 1 1 | 
             
            # Makeover
         | 
| 2 2 |  | 
| 3 | 
            -
            [](https://travis-ci.org/tubbo/makeover)
         | 
| 4 4 | 
             
            [](https://codeclimate.com/github/tubbo/presenters)
         | 
| 5 5 | 
             
            [](https://codeclimate.com/github/tubbo/presenters)
         | 
| 6 6 | 
             
            [](https://codeclimate.com/github/tubbo/presenters/coverage)
         | 
| 7 | 
            +
            [](http://inch-ci.org/github/tubbo/makeover)
         | 
| 7 8 |  | 
| 8 9 | 
             
            A [decorator][] library for [Rails][] applications, inspired by
         | 
| 9 10 | 
             
            [Draper][], but with an emphasis on architectural simplicity. Makeover
         | 
| @@ -7,7 +7,8 @@ module Makeover | |
| 7 7 |  | 
| 8 8 | 
             
                MIXIN = "\n\s\sinclude Makeover::Presentable\n"
         | 
| 9 9 |  | 
| 10 | 
            -
                 | 
| 10 | 
            +
                # Copy presenters into the project.
         | 
| 11 | 
            +
                def copy_presenters
         | 
| 11 12 | 
             
                  %w(application collection).each do |type|
         | 
| 12 13 | 
             
                    filename = "app/presenters/#{type}_presenter.rb"
         | 
| 13 14 | 
             
                    if File.exist? Rails.root.join(filename).to_s
         | 
| @@ -16,6 +17,7 @@ module Makeover | |
| 16 17 | 
             
                  end
         | 
| 17 18 | 
             
                end
         | 
| 18 19 |  | 
| 20 | 
            +
                # Inject mixins into ApplicationRecord and ApplicationController
         | 
| 19 21 | 
             
                def inject_mixin
         | 
| 20 22 | 
             
                  insert_into_file(
         | 
| 21 23 | 
             
                    'app/models/application_record.rb',
         | 
| @@ -5,10 +5,12 @@ class PresenterGenerator < Rails::Generators::NamedBase | |
| 5 5 | 
             
              source_root File.expand_path('../templates', __FILE__)
         | 
| 6 6 | 
             
              class_option :collection, type: :boolean, default: false
         | 
| 7 7 |  | 
| 8 | 
            +
              # Create a new presenter.
         | 
| 8 9 | 
             
              def copy_presenter
         | 
| 9 10 | 
             
                template "#{presenter}.rb.erb", "app/presenters/#{file_name}_presenter.rb"
         | 
| 10 11 | 
             
              end
         | 
| 11 12 |  | 
| 13 | 
            +
              # Create corresponding test for presenter.
         | 
| 12 14 | 
             
              def copy_test
         | 
| 13 15 | 
             
                template(
         | 
| 14 16 | 
             
                  "#{test}.rb.erb",
         | 
    
        data/lib/makeover/engine.rb
    CHANGED
    
    
    
        data/lib/makeover/presentable.rb
    CHANGED
    
    | @@ -30,11 +30,13 @@ module Makeover | |
| 30 30 | 
             
                  end
         | 
| 31 31 | 
             
                end
         | 
| 32 32 |  | 
| 33 | 
            -
                 | 
| 33 | 
            +
                # :nodoc:
         | 
| 34 | 
            +
                # @!parse extend Makeover::Presentable::ClassMethods
         | 
| 35 | 
            +
                module ClassMethods
         | 
| 34 36 | 
             
                  # Configure the class used to present records by default
         | 
| 35 37 | 
             
                  # within this object.
         | 
| 36 38 | 
             
                  #
         | 
| 37 | 
            -
                  # @param [Class] | 
| 39 | 
            +
                  # @param custom_presenter_class [Class]
         | 
| 38 40 | 
             
                  def presented_by(custom_presenter_class)
         | 
| 39 41 | 
             
                    self.presenter_class = custom_presenter_class
         | 
| 40 42 | 
             
                  end
         | 
| @@ -42,7 +44,7 @@ module Makeover | |
| 42 44 | 
             
                  # Configure the class used to present collections by default
         | 
| 43 45 | 
             
                  # within this object.
         | 
| 44 46 | 
             
                  #
         | 
| 45 | 
            -
                  # @param [Class] | 
| 47 | 
            +
                  # @param custom_presenter_class [Class]
         | 
| 46 48 | 
             
                  def collection_presented_by(custom_presenter_class)
         | 
| 47 49 | 
             
                    self.collection_presenter_class = custom_presenter_class
         | 
| 48 50 | 
             
                  end
         | 
| @@ -51,10 +53,9 @@ module Makeover | |
| 51 53 | 
             
                # Presents the given model or the current object with the current
         | 
| 52 54 | 
             
                # object's configured presenter or the given class in +with:+.
         | 
| 53 55 | 
             
                #
         | 
| 54 | 
            -
                # @param [Object] | 
| 55 | 
            -
                # @ | 
| 56 | 
            -
                # @ | 
| 57 | 
            -
                #                     key/value pairs.
         | 
| 56 | 
            +
                # @param model [Object] Model class to present. (optional)
         | 
| 57 | 
            +
                # @param with [Class] Presenter object that wraps the model.
         | 
| 58 | 
            +
                # @param context [Hash] Additional context for the presenter.
         | 
| 58 59 | 
             
                def present(model = nil, with: nil, **context)
         | 
| 59 60 | 
             
                  model ||= self
         | 
| 60 61 | 
             
                  with ||= model.try(:presenter_class) || presenter_class
         | 
    
        data/lib/makeover/presenter.rb
    CHANGED
    
    | @@ -2,8 +2,14 @@ | |
| 2 2 | 
             
            module Makeover
         | 
| 3 3 | 
             
              # Base Presenter class for all decorator objects.
         | 
| 4 4 | 
             
              class Presenter < Delegator
         | 
| 5 | 
            +
                # @!attribute [r] model
         | 
| 6 | 
            +
                #   @return [Object] Object being delegated to.
         | 
| 5 7 | 
             
                attr_reader :model
         | 
| 6 8 |  | 
| 9 | 
            +
                # Wrap a new model as a presenter object.
         | 
| 10 | 
            +
                #
         | 
| 11 | 
            +
                # @param model [Object] Model object to wrap.
         | 
| 12 | 
            +
                # @param context [Hash] Extra context for the presenter.
         | 
| 7 13 | 
             
                def initialize(model, **context)
         | 
| 8 14 | 
             
                  @model = model
         | 
| 9 15 | 
             
                  context.each do |option, value|
         | 
| @@ -11,14 +17,47 @@ module Makeover | |
| 11 17 | 
             
                  end
         | 
| 12 18 | 
             
                end
         | 
| 13 19 |  | 
| 20 | 
            +
                # Wraps +ActiveSupport#delegate+ to specifically delegate methods to
         | 
| 21 | 
            +
                # the underlying object.
         | 
| 22 | 
            +
                #
         | 
| 23 | 
            +
                # @param methods [Array<Symbol>] *methods
         | 
| 24 | 
            +
                # @param to [Symbol] :to
         | 
| 25 | 
            +
                # @param options [Hash]
         | 
| 26 | 
            +
                # @option options [Boolean] :allow_nil
         | 
| 27 | 
            +
                # @option options [Boolean] :allow_blank
         | 
| 14 28 | 
             
                def self.delegate(*methods, to: :model, **options)
         | 
| 15 29 | 
             
                  super(*methods, to: to, **options)
         | 
| 16 30 | 
             
                end
         | 
| 17 31 |  | 
| 32 | 
            +
                # Delegate translation methods to i18n
         | 
| 33 | 
            +
                delegate :t, to: I18n
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                # Figure out model class of presenter so we can delegate to the
         | 
| 36 | 
            +
                # proper model_name instance.
         | 
| 37 | 
            +
                def self.model_class
         | 
| 38 | 
            +
                  name.gsub(/Presenter/, '').classify.constantize
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                class << self
         | 
| 42 | 
            +
                  # Delegate model name lookups to model class of this presenter.
         | 
| 43 | 
            +
                  delegate :model_name, to: :model_class
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                # No-op for Draper support.
         | 
| 47 | 
            +
                def self.delegate_all
         | 
| 48 | 
            +
                  # noop
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                # Return the model object.
         | 
| 52 | 
            +
                #
         | 
| 53 | 
            +
                # @return [Object]
         | 
| 18 54 | 
             
                def __getobj__
         | 
| 19 55 | 
             
                  @model
         | 
| 20 56 | 
             
                end
         | 
| 21 57 |  | 
| 58 | 
            +
                # Delegate to view context to run helper methods.
         | 
| 59 | 
            +
                #
         | 
| 60 | 
            +
                # @return [Makeover::Helpers]
         | 
| 22 61 | 
             
                def helpers
         | 
| 23 62 | 
             
                  @helpers ||= Helpers.new
         | 
| 24 63 | 
             
                end
         | 
    
        data/lib/makeover/version.rb
    CHANGED
    
    
    
        data/lib/makeover.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,167 +1,167 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: makeover
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0.0. | 
| 4 | 
            +
              version: 1.0.0.rc2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tom Scott
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-07- | 
| 11 | 
            +
            date: 2016-07-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - ! '>='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '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 26 | 
             
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: pg
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ! '>='
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: '0'
         | 
| 34 34 | 
             
              type: :development
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ! '>='
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: rspec-rails
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ! '>='
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: '0'
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ! '>='
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: capybara
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - ! '>='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - ! '>='
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '0'
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: poltergeist
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - -  | 
| 73 | 
            +
                - - ! '>='
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 75 | 
             
                    version: '0'
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - -  | 
| 80 | 
            +
                - - ! '>='
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '0'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: generator_spec
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 | 
            -
                - -  | 
| 87 | 
            +
                - - ! '>='
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 89 | 
             
                    version: '0'
         | 
| 90 90 | 
             
              type: :development
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 | 
            -
                - -  | 
| 94 | 
            +
                - - ! '>='
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '0'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: rubocop
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - -  | 
| 101 | 
            +
                - - ! '>='
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 103 | 
             
                    version: '0'
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - -  | 
| 108 | 
            +
                - - ! '>='
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 110 | 
             
                    version: '0'
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: yard
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - -  | 
| 115 | 
            +
                - - ! '>='
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 117 | 
             
                    version: '0'
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - -  | 
| 122 | 
            +
                - - ! '>='
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                    version: '0'
         | 
| 125 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 126 | 
             
              name: travis-release
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 | 
            -
                - -  | 
| 129 | 
            +
                - - ! '>='
         | 
| 130 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 131 | 
             
                    version: '0'
         | 
| 132 132 | 
             
              type: :development
         | 
| 133 133 | 
             
              prerelease: false
         | 
| 134 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 135 | 
             
                requirements:
         | 
| 136 | 
            -
                - -  | 
| 136 | 
            +
                - - ! '>='
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: '0'
         | 
| 139 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 140 | 
             
              name: codeclimate-test-reporter
         | 
| 141 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 142 | 
             
                requirements:
         | 
| 143 | 
            -
                - -  | 
| 143 | 
            +
                - - ! '>='
         | 
| 144 144 | 
             
                  - !ruby/object:Gem::Version
         | 
| 145 145 | 
             
                    version: '0'
         | 
| 146 146 | 
             
              type: :development
         | 
| 147 147 | 
             
              prerelease: false
         | 
| 148 148 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 149 | 
             
                requirements:
         | 
| 150 | 
            -
                - -  | 
| 150 | 
            +
                - - ! '>='
         | 
| 151 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 152 152 | 
             
                    version: '0'
         | 
| 153 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 154 154 | 
             
              name: pry-byebug
         | 
| 155 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 156 156 | 
             
                requirements:
         | 
| 157 | 
            -
                - -  | 
| 157 | 
            +
                - - ! '>='
         | 
| 158 158 | 
             
                  - !ruby/object:Gem::Version
         | 
| 159 159 | 
             
                    version: '0'
         | 
| 160 160 | 
             
              type: :development
         | 
| 161 161 | 
             
              prerelease: false
         | 
| 162 162 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 163 163 | 
             
                requirements:
         | 
| 164 | 
            -
                - -  | 
| 164 | 
            +
                - - ! '>='
         | 
| 165 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 166 166 | 
             
                    version: '0'
         | 
| 167 167 | 
             
            description: View model library for Rails applications. Extracted from brother.ly.
         | 
| @@ -203,19 +203,18 @@ require_paths: | |
| 203 203 | 
             
            - lib
         | 
| 204 204 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 205 205 | 
             
              requirements:
         | 
| 206 | 
            -
              - -  | 
| 206 | 
            +
              - - ! '>='
         | 
| 207 207 | 
             
                - !ruby/object:Gem::Version
         | 
| 208 208 | 
             
                  version: '0'
         | 
| 209 209 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 210 210 | 
             
              requirements:
         | 
| 211 | 
            -
              - -  | 
| 211 | 
            +
              - - ! '>'
         | 
| 212 212 | 
             
                - !ruby/object:Gem::Version
         | 
| 213 213 | 
             
                  version: 1.3.1
         | 
| 214 214 | 
             
            requirements: []
         | 
| 215 215 | 
             
            rubyforge_project: 
         | 
| 216 | 
            -
            rubygems_version: 2.5 | 
| 216 | 
            +
            rubygems_version: 2.4.5
         | 
| 217 217 | 
             
            signing_key: 
         | 
| 218 218 | 
             
            specification_version: 4
         | 
| 219 219 | 
             
            summary: View model library for Rails applications.
         | 
| 220 220 | 
             
            test_files: []
         | 
| 221 | 
            -
            has_rdoc: 
         |