draper 0.16.0 → 0.17.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.
- data/CHANGELOG.markdown +51 -0
- data/lib/draper/base.rb +16 -1
- data/lib/draper/decorated_enumerable_proxy.rb +11 -0
- data/lib/draper/version.rb +1 -1
- data/lib/draper/view_context.rb +1 -1
- data/spec/draper/base_spec.rb +80 -0
- data/spec/draper/view_context_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/samples/decorator_with_denies_all.rb +3 -0
- metadata +7 -5
- data/CHANGELOG.txt +0 -70
    
        data/CHANGELOG.markdown
    ADDED
    
    | @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            # Draper Changelog
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ## 0.16.0
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * [Automatically prime `view_context`](https://github.com/jcasimir/draper/commit/057ab4e8)
         | 
| 6 | 
            +
            * [Fixed bug where rspec eq matchers didn't work]((https://github.com/jcasimir/draper/commit/57617b)
         | 
| 7 | 
            +
            * [Sequel ORM support](https://github.com/jcasimir/draper/commit/7d4942)
         | 
| 8 | 
            +
            * Fixed issues with newer minitest
         | 
| 9 | 
            +
            * [Changed the way the `view_context` gets set](https://github.com/jcasimir/draper/commit/0b03d9c)
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ## 0.15.0
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            * Proper minitest integration
         | 
| 14 | 
            +
            * [We can properly decorate scoped associations](https://github.com/jcasimir/draper/issues/223)
         | 
| 15 | 
            +
            * [Fixed awkward eager loading](https://github.com/jcasimir/draper/commit/7dc3510b)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            ## 0.14.0
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            * [Properly prime the view context in Rails Console](https://github.com/jcasimir/draper/commit/738074f)
         | 
| 20 | 
            +
            * Make more gems development requirements only
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            ## 0.13.0
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            * Upgraded all dependencies
         | 
| 25 | 
            +
            * Dropped support for Rubies < 1.9.3
         | 
| 26 | 
            +
            * `#to_model` has been renamed to `#wrapped_object`
         | 
| 27 | 
            +
            * Allow proper overriding of special `ActiveModel` methods
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ## 0.12.3
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            * [Fix i18n issue](https://github.com/jcasimir/draper/issues/202)
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            ## 0.12.2
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            * Fix bug with initializing ammeter
         | 
| 36 | 
            +
            * Some gems are now development only in the gemspec
         | 
| 37 | 
            +
            * Fix bug where generated models were still inheriting from `ApplicationDecorator`
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            ## 0.12.0
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            * Added Changelog
         | 
| 42 | 
            +
            * [Prevented double decoration](https://github.com/jcasimir/draper/issues/173)
         | 
| 43 | 
            +
            * [`ActiveModel::Errors` support](https://github.com/jcasimir/draper/commit/19496f0c)
         | 
| 44 | 
            +
            * [Fixed autoloading issue](https://github.com/jcasimir/draper/issues/188)
         | 
| 45 | 
            +
            * [Re-did generators](https://github.com/jcasimir/draper/commit/9155e58f)
         | 
| 46 | 
            +
            * [Added capybara integration](https://github.com/jcasimir/draper/commit/57c8678e)
         | 
| 47 | 
            +
            * Fixed a few bugs with the `DecoratedEnumerableProxy`
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            ## 0.11.1
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            * [Fixed regression, we don't want to introduce a hard dependency on Rails](https://github.com/jcasimir/draper/issues/107)
         | 
    
        data/lib/draper/base.rb
    CHANGED
    
    | @@ -64,6 +64,7 @@ module Draper | |
| 64 64 | 
             
                    orig_association = model.send(association_symbol)
         | 
| 65 65 |  | 
| 66 66 | 
             
                    return orig_association if orig_association.nil?
         | 
| 67 | 
            +
                    return decorated_associations[association_symbol] if decorated_associations[association_symbol]
         | 
| 67 68 |  | 
| 68 69 | 
             
                    orig_association = orig_association.send(options[:scope]) if options[:scope]
         | 
| 69 70 |  | 
| @@ -79,7 +80,7 @@ module Draper | |
| 79 80 | 
             
                              orig_association.class
         | 
| 80 81 | 
             
                            end
         | 
| 81 82 |  | 
| 82 | 
            -
                    "#{klass}Decorator".constantize.decorate(orig_association, options)
         | 
| 83 | 
            +
                    decorated_associations[association_symbol] = "#{klass}Decorator".constantize.decorate(orig_association, options)
         | 
| 83 84 | 
             
                  end
         | 
| 84 85 | 
             
                end
         | 
| 85 86 |  | 
| @@ -105,6 +106,16 @@ module Draper | |
| 105 106 | 
             
                  self.denied += input_denied
         | 
| 106 107 | 
             
                end
         | 
| 107 108 |  | 
| 109 | 
            +
                # Specifies that all methods may *not* be proxied to
         | 
| 110 | 
            +
                # to the wrapped object.
         | 
| 111 | 
            +
                #
         | 
| 112 | 
            +
                # Do not use `.allows` and `.denies` in combination with '.denies_all'
         | 
| 113 | 
            +
                def self.denies_all
         | 
| 114 | 
            +
                  raise ArgumentError, "Use either 'allows' or 'denies', but not both." unless ((self.allowed == DEFAULT_ALLOWED && self.denied == DEFAULT_DENIED) || (self.allowed != DEFAULT_ALLOWED && self.denied != DEFAULT_DENIED))
         | 
| 115 | 
            +
                  self.denied  += [nil]  # Add dummy value to denied to prevent calls to #allows.  Hacky???
         | 
| 116 | 
            +
                  self.allowed += [nil]  # Add dummy value to allowed to prevent calls to #denies
         | 
| 117 | 
            +
                end
         | 
| 118 | 
            +
             | 
| 108 119 | 
             
                # Specifies a white list of methods which *may* be proxied to
         | 
| 109 120 | 
             
                # to the wrapped object. When `allows` is used, only the listed
         | 
| 110 121 | 
             
                # methods and methods defined in the decorator itself will be
         | 
| @@ -293,5 +304,9 @@ module Draper | |
| 293 304 | 
             
                    model.class.reflect_on_association(association)
         | 
| 294 305 | 
             
                  end
         | 
| 295 306 | 
             
                end
         | 
| 307 | 
            +
             | 
| 308 | 
            +
                def decorated_associations
         | 
| 309 | 
            +
                  @decorated_associations ||= {}
         | 
| 310 | 
            +
                end
         | 
| 296 311 | 
             
              end
         | 
| 297 312 | 
             
            end
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            require 'active_support/core_ext/object/blank'
         | 
| 1 2 | 
             
            module Draper
         | 
| 2 3 | 
             
              class DecoratedEnumerableProxy
         | 
| 3 4 | 
             
                include Enumerable
         | 
| @@ -13,6 +14,16 @@ module Draper | |
| 13 14 | 
             
                end
         | 
| 14 15 | 
             
                alias_method :to_ary, :decorated_collection
         | 
| 15 16 |  | 
| 17 | 
            +
                def find(ifnone_or_id = nil, &blk)
         | 
| 18 | 
            +
                  if block_given?
         | 
| 19 | 
            +
                    source.find(ifnone_or_id, &blk)
         | 
| 20 | 
            +
                  else
         | 
| 21 | 
            +
                    obj = decorated_collection.first
         | 
| 22 | 
            +
                    return nil if obj.blank?
         | 
| 23 | 
            +
                    obj.class.find(ifnone_or_id)
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 16 27 | 
             
                def method_missing (method, *args, &block)
         | 
| 17 28 | 
             
                  @wrapped_collection.send(method, *args, &block)
         | 
| 18 29 | 
             
                end
         | 
    
        data/lib/draper/version.rb
    CHANGED
    
    
    
        data/lib/draper/view_context.rb
    CHANGED
    
    
    
        data/spec/draper/base_spec.rb
    CHANGED
    
    | @@ -178,6 +178,23 @@ describe Draper::Base do | |
| 178 178 | 
             
                    subject.previous_version.should be_nil
         | 
| 179 179 | 
             
                  end
         | 
| 180 180 | 
             
                end
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                context "#find" do
         | 
| 183 | 
            +
                  before(:each){ subject.class_eval{ decorates_association :similar_products } }
         | 
| 184 | 
            +
                  context "with a block" do
         | 
| 185 | 
            +
                    it "delegates to #each" do
         | 
| 186 | 
            +
                      subject.similar_products.source.should_receive :find
         | 
| 187 | 
            +
                      subject.similar_products.find {|p| p.title == "title" }
         | 
| 188 | 
            +
                    end
         | 
| 189 | 
            +
                  end
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                  context "without a block" do
         | 
| 192 | 
            +
                    it "calls a finder method" do
         | 
| 193 | 
            +
                      subject.similar_products.source.should_not_receive :find
         | 
| 194 | 
            +
                      subject.similar_products.find 1
         | 
| 195 | 
            +
                    end
         | 
| 196 | 
            +
                  end
         | 
| 197 | 
            +
                end
         | 
| 181 198 | 
             
              end
         | 
| 182 199 |  | 
| 183 200 | 
             
              context('.decorates_associations') do
         | 
| @@ -693,6 +710,69 @@ describe Draper::Base do | |
| 693 710 | 
             
                end
         | 
| 694 711 | 
             
              end
         | 
| 695 712 |  | 
| 713 | 
            +
              describe "a sample usage with denies_all" do
         | 
| 714 | 
            +
                let(:subject_with_denies_all){ DecoratorWithDeniesAll.new(source) }
         | 
| 715 | 
            +
             | 
| 716 | 
            +
                [:goodnight_moon, :hello_world, :title].each do |method|
         | 
| 717 | 
            +
                  it "does echo #{method} method" do
         | 
| 718 | 
            +
                    subject_with_denies_all.should_not respond_to(method)
         | 
| 719 | 
            +
                  end
         | 
| 720 | 
            +
                end
         | 
| 721 | 
            +
             | 
| 722 | 
            +
                let(:using_denies_all_then_denies_all) {
         | 
| 723 | 
            +
                  class DecoratorWithDeniesAllAndDeniesAll < Draper::Base
         | 
| 724 | 
            +
                    denies_all
         | 
| 725 | 
            +
                    denies_all
         | 
| 726 | 
            +
                  end
         | 
| 727 | 
            +
                }
         | 
| 728 | 
            +
             | 
| 729 | 
            +
                it "allows multple calls to .denies_all" do
         | 
| 730 | 
            +
                  expect { using_denies_all_then_denies_all }.to_not raise_error(ArgumentError)
         | 
| 731 | 
            +
                end
         | 
| 732 | 
            +
              end
         | 
| 733 | 
            +
             | 
| 734 | 
            +
              describe "invalid usages of denies_all" do
         | 
| 735 | 
            +
                let(:using_allows_then_denies_all) {
         | 
| 736 | 
            +
                  class DecoratorWithAllowsAndDeniesAll < Draper::Base
         | 
| 737 | 
            +
                    allows :hello_world
         | 
| 738 | 
            +
                    denies_all
         | 
| 739 | 
            +
                  end
         | 
| 740 | 
            +
                }
         | 
| 741 | 
            +
                let(:using_denies_then_denies_all) {
         | 
| 742 | 
            +
                  class DecoratorWithDeniesAndDeniesAll < Draper::Base
         | 
| 743 | 
            +
                    denies :goodnight_moon
         | 
| 744 | 
            +
                    denies_all
         | 
| 745 | 
            +
                  end
         | 
| 746 | 
            +
                }
         | 
| 747 | 
            +
                let(:using_denies_all_then_allows) {
         | 
| 748 | 
            +
                  class DecoratorWithDeniesAllAndAllows < Draper::Base
         | 
| 749 | 
            +
                    denies_all
         | 
| 750 | 
            +
                    allows :hello_world
         | 
| 751 | 
            +
                  end
         | 
| 752 | 
            +
                }
         | 
| 753 | 
            +
                let(:using_denies_all_then_denies) {
         | 
| 754 | 
            +
                  class DecoratorWithDeniesAllAndDenies < Draper::Base
         | 
| 755 | 
            +
                    denies_all
         | 
| 756 | 
            +
                    denies :goodnight_moon
         | 
| 757 | 
            +
                  end
         | 
| 758 | 
            +
                }
         | 
| 759 | 
            +
                it "raises an exception when calling allows then denies_all" do
         | 
| 760 | 
            +
                  expect {using_allows_then_denies_all}.to raise_error(ArgumentError)
         | 
| 761 | 
            +
                end
         | 
| 762 | 
            +
             | 
| 763 | 
            +
                it "raises an exception when calling denies then denies_all" do
         | 
| 764 | 
            +
                  expect {using_denies_then_denies_all}.to raise_error(ArgumentError)
         | 
| 765 | 
            +
                end
         | 
| 766 | 
            +
             | 
| 767 | 
            +
                it "raises an exception when calling denies_all then allows" do
         | 
| 768 | 
            +
                  expect {using_denies_all_then_allows}.to raise_error(ArgumentError)
         | 
| 769 | 
            +
                end
         | 
| 770 | 
            +
             | 
| 771 | 
            +
                it "raises an exception when calling denies_all then denies" do
         | 
| 772 | 
            +
                  expect {using_denies_all_then_denies}.to raise_error(ArgumentError)
         | 
| 773 | 
            +
                end
         | 
| 774 | 
            +
              end
         | 
| 775 | 
            +
             | 
| 696 776 | 
             
              context "in a Rails application" do
         | 
| 697 777 | 
             
                let(:decorator){ DecoratorWithApplicationHelper.decorate(Object.new) }
         | 
| 698 778 |  | 
| @@ -2,6 +2,10 @@ require 'spec_helper' | |
| 2 2 | 
             
            require 'draper/test/view_context'
         | 
| 3 3 |  | 
| 4 4 | 
             
            describe Draper::ViewContext do
         | 
| 5 | 
            +
              before(:each) do
         | 
| 6 | 
            +
                Thread.current[:current_view_context] = nil
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 5 9 | 
             
              let(:app_controller) { ApplicationController }
         | 
| 6 10 | 
             
              let(:app_controller_instance) { app_controller.new }
         | 
| 7 11 |  | 
| @@ -13,4 +17,14 @@ describe Draper::ViewContext do | |
| 13 17 | 
             
                ctx = app_controller_instance.view_context
         | 
| 14 18 | 
             
                Draper::ViewContext.current.should == ctx
         | 
| 15 19 | 
             
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              describe "view_context priming" do
         | 
| 22 | 
            +
                let(:app_controller_instance) { double(ApplicationController, :view_context => view_context) }
         | 
| 23 | 
            +
                let(:view_context) { double("ApplicationController#view_context") }
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                it "primes the view_context when nil" do
         | 
| 26 | 
            +
                  app_controller.should_receive(:new).and_return(app_controller_instance)
         | 
| 27 | 
            +
                  Draper::ViewContext.current.should == view_context
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 16 30 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -15,6 +15,7 @@ require './spec/support/samples/decorator_with_allows' | |
| 15 15 | 
             
            require './spec/support/samples/decorator_with_multiple_allows'
         | 
| 16 16 | 
             
            require './spec/support/samples/decorator_with_application_helper'
         | 
| 17 17 | 
             
            require './spec/support/samples/decorator_with_denies'
         | 
| 18 | 
            +
            require './spec/support/samples/decorator_with_denies_all'
         | 
| 18 19 | 
             
            require './spec/support/samples/decorator_with_special_methods'
         | 
| 19 20 | 
             
            require './spec/support/samples/namespaced_product'
         | 
| 20 21 | 
             
            require './spec/support/samples/namespaced_product_decorator'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: draper
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.17.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-08- | 
| 13 | 
            +
            date: 2012-08-21 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: activesupport
         | 
| @@ -120,7 +120,7 @@ files: | |
| 120 120 | 
             
            - .rspec
         | 
| 121 121 | 
             
            - .travis.yml
         | 
| 122 122 | 
             
            - .yardopts
         | 
| 123 | 
            -
            - CHANGELOG. | 
| 123 | 
            +
            - CHANGELOG.markdown
         | 
| 124 124 | 
             
            - Gemfile
         | 
| 125 125 | 
             
            - Guardfile
         | 
| 126 126 | 
             
            - Rakefile
         | 
| @@ -187,6 +187,7 @@ files: | |
| 187 187 | 
             
            - spec/support/samples/decorator_with_allows.rb
         | 
| 188 188 | 
             
            - spec/support/samples/decorator_with_application_helper.rb
         | 
| 189 189 | 
             
            - spec/support/samples/decorator_with_denies.rb
         | 
| 190 | 
            +
            - spec/support/samples/decorator_with_denies_all.rb
         | 
| 190 191 | 
             
            - spec/support/samples/decorator_with_multiple_allows.rb
         | 
| 191 192 | 
             
            - spec/support/samples/decorator_with_special_methods.rb
         | 
| 192 193 | 
             
            - spec/support/samples/namespaced_product.rb
         | 
| @@ -214,7 +215,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 214 215 | 
             
                  version: '0'
         | 
| 215 216 | 
             
                  segments:
         | 
| 216 217 | 
             
                  - 0
         | 
| 217 | 
            -
                  hash:  | 
| 218 | 
            +
                  hash: 26927068821793701
         | 
| 218 219 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 219 220 | 
             
              none: false
         | 
| 220 221 | 
             
              requirements:
         | 
| @@ -223,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 223 224 | 
             
                  version: '0'
         | 
| 224 225 | 
             
                  segments:
         | 
| 225 226 | 
             
                  - 0
         | 
| 226 | 
            -
                  hash:  | 
| 227 | 
            +
                  hash: 26927068821793701
         | 
| 227 228 | 
             
            requirements: []
         | 
| 228 229 | 
             
            rubyforge_project: draper
         | 
| 229 230 | 
             
            rubygems_version: 1.8.24
         | 
| @@ -245,6 +246,7 @@ test_files: | |
| 245 246 | 
             
            - spec/support/samples/decorator_with_allows.rb
         | 
| 246 247 | 
             
            - spec/support/samples/decorator_with_application_helper.rb
         | 
| 247 248 | 
             
            - spec/support/samples/decorator_with_denies.rb
         | 
| 249 | 
            +
            - spec/support/samples/decorator_with_denies_all.rb
         | 
| 248 250 | 
             
            - spec/support/samples/decorator_with_multiple_allows.rb
         | 
| 249 251 | 
             
            - spec/support/samples/decorator_with_special_methods.rb
         | 
| 250 252 | 
             
            - spec/support/samples/namespaced_product.rb
         | 
    
        data/CHANGELOG.txt
    DELETED
    
    | @@ -1,70 +0,0 @@ | |
| 1 | 
            -
            = Draper Changelog
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            = 0.16.0
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            * Automatically prime view_context, see 057ab4
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            * Fixed bug where rspec eq matchers didn't work, see 57617b
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            * Sequel ORM support, see 7d4942
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            * Fixed issues with newer minitest
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            * changed the way the view_context gets set. See 0b039c
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            = 0.15.0
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            * Proper minitest integration
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            * We can properly decorate scoped associations, see #223
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            * Fixed awkward eager loading, see 7dc3510b
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            = 0.14.0
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            * Properly prime the view context in Rails Console 738074f
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            * Make more gems development requirements only
         | 
| 28 | 
            -
             | 
| 29 | 
            -
            = 0.13.0
         | 
| 30 | 
            -
             | 
| 31 | 
            -
            * Upgraded all dependencies
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            * Dropped support for Rubies < 1.9.3
         | 
| 34 | 
            -
             | 
| 35 | 
            -
            * #to_model has been renamed to #wrapped_object
         | 
| 36 | 
            -
             | 
| 37 | 
            -
            * Allow proper overriding of special ActiveModel methods
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            == v0.12.3
         | 
| 40 | 
            -
             | 
| 41 | 
            -
            * Fix i18n issue, see #202
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            == 0.12.2
         | 
| 44 | 
            -
             | 
| 45 | 
            -
            * Fix bug with initializing ammeter
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            * Some gems are now development only in the gemspec
         | 
| 48 | 
            -
             | 
| 49 | 
            -
            * Fix bug where generated models were still inheriting from
         | 
| 50 | 
            -
            ApplicationDecorator
         | 
| 51 | 
            -
             | 
| 52 | 
            -
            == 0.12.0
         | 
| 53 | 
            -
             | 
| 54 | 
            -
            * Added Changelog
         | 
| 55 | 
            -
             | 
| 56 | 
            -
            * Prevented double decoration, see #173
         | 
| 57 | 
            -
             | 
| 58 | 
            -
            * ActiveModel::Errors support, 19496f0c
         | 
| 59 | 
            -
             | 
| 60 | 
            -
            * Fixed autoloading issue, see #188
         | 
| 61 | 
            -
             | 
| 62 | 
            -
            * Re-did generators, see 9155e58f
         | 
| 63 | 
            -
             | 
| 64 | 
            -
            * Added capybara integration, see 57c8678e
         | 
| 65 | 
            -
             | 
| 66 | 
            -
            * Fixed a few bugs with the DecoratedEnumerableProxy
         | 
| 67 | 
            -
             | 
| 68 | 
            -
            == 0.11.1
         | 
| 69 | 
            -
             | 
| 70 | 
            -
            * Fixed regression, we don't want to introduce a hard dependency on Rails. #107
         |