datts_right 0.0.12 → 0.0.13
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/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/datts_right.gemspec +25 -1
- data/lib/datts_right/instance_methods.rb +29 -0
- data/spec/datts_right/add_dynamic_attributes_spec.rb +37 -0
- data/spec/datts_right/attributes_spec.rb +21 -0
- data/spec/datts_right/remove_dynamic_attribute_spec.rb +26 -0
- data/spec/datts_right_spec.rb +18 -0
- data/spec/spec_helper.rb +1 -0
- metadata +99 -3
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.13
         | 
    
        data/datts_right.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{datts_right}
         | 
| 8 | 
            -
              s.version = "0.0. | 
| 8 | 
            +
              s.version = "0.0.13"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Ramon Tayag"]
         | 
| @@ -35,6 +35,9 @@ Gem::Specification.new do |s| | |
| 35 35 | 
             
                "lib/datts_right/page.rb",
         | 
| 36 36 | 
             
                "lib/datts_right/query_methods.rb",
         | 
| 37 37 | 
             
                "spec/datt_spec.rb",
         | 
| 38 | 
            +
                "spec/datts_right/add_dynamic_attributes_spec.rb",
         | 
| 39 | 
            +
                "spec/datts_right/attributes_spec.rb",
         | 
| 40 | 
            +
                "spec/datts_right/remove_dynamic_attribute_spec.rb",
         | 
| 38 41 | 
             
                "spec/datts_right_spec.rb",
         | 
| 39 42 | 
             
                "spec/spec_helper.rb"
         | 
| 40 43 | 
             
              ]
         | 
| @@ -45,6 +48,9 @@ Gem::Specification.new do |s| | |
| 45 48 | 
             
              s.summary = %q{Allows saving of dynamic attributes in your ActiveRecord model}
         | 
| 46 49 | 
             
              s.test_files = [
         | 
| 47 50 | 
             
                "spec/datt_spec.rb",
         | 
| 51 | 
            +
                "spec/datts_right/add_dynamic_attributes_spec.rb",
         | 
| 52 | 
            +
                "spec/datts_right/attributes_spec.rb",
         | 
| 53 | 
            +
                "spec/datts_right/remove_dynamic_attribute_spec.rb",
         | 
| 48 54 | 
             
                "spec/datts_right_spec.rb",
         | 
| 49 55 | 
             
                "spec/spec_helper.rb"
         | 
| 50 56 | 
             
              ]
         | 
| @@ -200,6 +206,12 @@ Gem::Specification.new do |s| | |
| 200 206 | 
             
                  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 201 207 | 
             
                  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 202 208 | 
             
                  s.add_development_dependency(%q<rcov>, [">= 0"])
         | 
| 209 | 
            +
                  s.add_development_dependency(%q<autotest>, [">= 0"])
         | 
| 210 | 
            +
                  s.add_development_dependency(%q<sqlite3>, [">= 0"])
         | 
| 211 | 
            +
                  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
         | 
| 212 | 
            +
                  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 213 | 
            +
                  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 214 | 
            +
                  s.add_development_dependency(%q<rcov>, [">= 0"])
         | 
| 203 215 | 
             
                else
         | 
| 204 216 | 
             
                  s.add_dependency(%q<datts_right>, [">= 0"])
         | 
| 205 217 | 
             
                  s.add_dependency(%q<rails>, [">= 3.0.0"])
         | 
| @@ -348,6 +360,12 @@ Gem::Specification.new do |s| | |
| 348 360 | 
             
                  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 349 361 | 
             
                  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 350 362 | 
             
                  s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 363 | 
            +
                  s.add_dependency(%q<autotest>, [">= 0"])
         | 
| 364 | 
            +
                  s.add_dependency(%q<sqlite3>, [">= 0"])
         | 
| 365 | 
            +
                  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
         | 
| 366 | 
            +
                  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 367 | 
            +
                  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 368 | 
            +
                  s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 351 369 | 
             
                end
         | 
| 352 370 | 
             
              else
         | 
| 353 371 | 
             
                s.add_dependency(%q<datts_right>, [">= 0"])
         | 
| @@ -497,6 +515,12 @@ Gem::Specification.new do |s| | |
| 497 515 | 
             
                s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 498 516 | 
             
                s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 499 517 | 
             
                s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 518 | 
            +
                s.add_dependency(%q<autotest>, [">= 0"])
         | 
| 519 | 
            +
                s.add_dependency(%q<sqlite3>, [">= 0"])
         | 
| 520 | 
            +
                s.add_dependency(%q<rspec>, ["~> 2.3.0"])
         | 
| 521 | 
            +
                s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 522 | 
            +
                s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
         | 
| 523 | 
            +
                s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 500 524 | 
             
              end
         | 
| 501 525 | 
             
            end
         | 
| 502 526 |  | 
| @@ -73,6 +73,35 @@ module DattsRight | |
| 73 73 | 
             
                  end
         | 
| 74 74 | 
             
                end
         | 
| 75 75 |  | 
| 76 | 
            +
                def attributes=(new_attributes, guard_protected_attributes = true)
         | 
| 77 | 
            +
                  return unless new_attributes.is_a?(Hash)
         | 
| 78 | 
            +
                  attributes = new_attributes.stringify_keys
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                  multi_parameter_attributes = []
         | 
| 81 | 
            +
                  attributes = sanitize_for_mass_assignment(attributes) if guard_protected_attributes
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  attributes.each do |k, v|
         | 
| 84 | 
            +
                    if k.include?("(")
         | 
| 85 | 
            +
                      multi_parameter_attributes << [ k, v ]
         | 
| 86 | 
            +
                    else
         | 
| 87 | 
            +
                      #respond_to?(:"#{k}=") ? send(:"#{k}=", v) : raise(UnknownAttributeError, "unknown attribute: #{k}")
         | 
| 88 | 
            +
                      begin
         | 
| 89 | 
            +
                        send("#{k}=", v)
         | 
| 90 | 
            +
                        #puts "Set super #{k} to #{v}"
         | 
| 91 | 
            +
                      rescue NoMethodError => e
         | 
| 92 | 
            +
                        #puts "NoMethodError was raised: #{e}, so we now check to see if '#{k}' is dynamic_attribute"
         | 
| 93 | 
            +
                        if dynamic_attribute?(k)
         | 
| 94 | 
            +
                          write_dynamic_attribute("#{k}", v)
         | 
| 95 | 
            +
                        else
         | 
| 96 | 
            +
                          raise ActiveRecord::UnknownAttributeError, "unknown attribute: #{k}"
         | 
| 97 | 
            +
                        end
         | 
| 98 | 
            +
                      end
         | 
| 99 | 
            +
                    end
         | 
| 100 | 
            +
                  end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                  assign_multiparameter_attributes(multi_parameter_attributes)
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
             | 
| 76 105 | 
             
                private
         | 
| 77 106 |  | 
| 78 107 | 
             
                # Called after validation on update so that dynamic attributes behave
         | 
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe DattsRight, ".add_dynamic_attribute(attr_key, object_type)" do
         | 
| 4 | 
            +
              before do
         | 
| 5 | 
            +
                reset_database
         | 
| 6 | 
            +
                @page = Page.create
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              it "should be aliased by add_datt" do
         | 
| 10 | 
            +
                Page.instance_method(:add_dynamic_attribute).should == Page.instance_method(:add_datt)
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              it "should add a dynamic attribute" do
         | 
| 14 | 
            +
                @page.add_dynamic_attribute(:rocks, "string")
         | 
| 15 | 
            +
                @page.dynamic_attribute_details(:rocks).value.should be_nil
         | 
| 16 | 
            +
                @page.add_dynamic_attribute(:rock, "string", "123")
         | 
| 17 | 
            +
                @page.read_datt(:rock).should == "123"
         | 
| 18 | 
            +
                @page.dynamic_attribute_details(:rock).value.should == "123"
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              it "should ignore when trying to add same attribute" do
         | 
| 22 | 
            +
                @page.add_dynamic_attribute(:rocks, "string")
         | 
| 23 | 
            +
                @page.add_dynamic_attribute(:rocks, "integer")
         | 
| 24 | 
            +
                @page.dynamic_attribute_details(:rocks).object_type.should == "string"
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              it "should return false if the method that is being added already exists" do
         | 
| 28 | 
            +
                @page.add_dynamic_attribute(:name, "text").should be_false
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              it "should not make any changes to the original attribute" do
         | 
| 32 | 
            +
                @page.update_attribute(:name, "juno")
         | 
| 33 | 
            +
                @page.add_dynamic_attribute(:name, "text")
         | 
| 34 | 
            +
                @page.name.should == "juno"
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| 37 | 
            +
             | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe DattsRight, ".attributes=" do
         | 
| 4 | 
            +
              before do
         | 
| 5 | 
            +
                reset_database
         | 
| 6 | 
            +
                @page = Page.create
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              it "should accept a mix of normal and dynamic attributes" do
         | 
| 10 | 
            +
                @page.add_dynamic_attribute(:price, "integer", 200)
         | 
| 11 | 
            +
                @page.attributes = {:name => "fark", :price => 300}
         | 
| 12 | 
            +
                @page.name.should == "fark"
         | 
| 13 | 
            +
                @page.read_datt(:price).should == 300
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              it "should raise UnknownAttributeError if the attribute doesn't exist" do
         | 
| 17 | 
            +
                lambda {
         | 
| 18 | 
            +
                  @page.attributes = {:name => "fark", :body => "lark"}
         | 
| 19 | 
            +
                }.should raise_error(ActiveRecord::UnknownAttributeError, "unknown attribute: body")
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe DattsRight, ".remove_dynamic_attribute(attr_key)" do
         | 
| 4 | 
            +
              before do
         | 
| 5 | 
            +
                reset_database
         | 
| 6 | 
            +
                @page = Page.create
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              it "should be aliased by remove_datt" do
         | 
| 10 | 
            +
                Page.instance_method(:remove_dynamic_attribute).should == Page.instance_method(:remove_datt)
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              it "should remove the attribute completely" do
         | 
| 14 | 
            +
                @page.add_dynamic_attribute(:rocks, "string")
         | 
| 15 | 
            +
                @page.remove_dynamic_attribute(:rocks)
         | 
| 16 | 
            +
                lambda { @page.rocks }.should raise_error(NoMethodError)
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              it "should not explode if the attribute being removed isn't there" do
         | 
| 20 | 
            +
                @page.add_dynamic_attribute(:rocks, "string")
         | 
| 21 | 
            +
                @page.remove_dynamic_attribute(:rocks)
         | 
| 22 | 
            +
                lambda {
         | 
| 23 | 
            +
                  @page.remove_dynamic_attribute(:rocks)
         | 
| 24 | 
            +
                }.should_not raise_error(NoMethodError)
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
    
        data/spec/datts_right_spec.rb
    CHANGED
    
    | @@ -1,4 +1,7 @@ | |
| 1 1 | 
             
            require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
         | 
| 2 | 
            +
            # Raised when unknown attributes are supplied via mass assignment.
         | 
| 3 | 
            +
            #class UnknownAttributeError < NoMethodError
         | 
| 4 | 
            +
            #end
         | 
| 2 5 |  | 
| 3 6 | 
             
            describe DattsRight do
         | 
| 4 7 | 
             
              before do
         | 
| @@ -435,4 +438,19 @@ describe DattsRight do | |
| 435 438 | 
             
                @page.save
         | 
| 436 439 | 
             
                @page.body.should == "dude"
         | 
| 437 440 | 
             
              end
         | 
| 441 | 
            +
             | 
| 442 | 
            +
              describe ".attributes=" do
         | 
| 443 | 
            +
                it "should accept a mix of normal and dynamic attributes" do
         | 
| 444 | 
            +
                  @page.add_dynamic_attribute(:price, "integer", 200)
         | 
| 445 | 
            +
                  @page.attributes = {:name => "fark", :price => 300}
         | 
| 446 | 
            +
                  @page.name.should == "fark"
         | 
| 447 | 
            +
                  @page.read_datt(:price).should == 300
         | 
| 448 | 
            +
                end
         | 
| 449 | 
            +
             | 
| 450 | 
            +
                it "should raise UnknownAttributeError if the attribute doesn't exist" do
         | 
| 451 | 
            +
                  lambda {
         | 
| 452 | 
            +
                    @page.attributes = {:name => "fark", :body => "lark"}
         | 
| 453 | 
            +
                  }.should raise_error(ActiveRecord::UnknownAttributeError, "unknown attribute: body")
         | 
| 454 | 
            +
                end
         | 
| 455 | 
            +
              end
         | 
| 438 456 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: datts_right
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 5
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.0. | 
| 9 | 
            +
              - 13
         | 
| 10 | 
            +
              version: 0.0.13
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Ramon Tayag
         | 
| @@ -2224,6 +2224,96 @@ dependencies: | |
| 2224 2224 | 
             
              name: rcov
         | 
| 2225 2225 | 
             
              version_requirements: *id147
         | 
| 2226 2226 | 
             
              prerelease: false
         | 
| 2227 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2228 | 
            +
              type: :development
         | 
| 2229 | 
            +
              requirement: &id148 !ruby/object:Gem::Requirement 
         | 
| 2230 | 
            +
                none: false
         | 
| 2231 | 
            +
                requirements: 
         | 
| 2232 | 
            +
                - - ">="
         | 
| 2233 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2234 | 
            +
                    hash: 3
         | 
| 2235 | 
            +
                    segments: 
         | 
| 2236 | 
            +
                    - 0
         | 
| 2237 | 
            +
                    version: "0"
         | 
| 2238 | 
            +
              name: autotest
         | 
| 2239 | 
            +
              version_requirements: *id148
         | 
| 2240 | 
            +
              prerelease: false
         | 
| 2241 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2242 | 
            +
              type: :development
         | 
| 2243 | 
            +
              requirement: &id149 !ruby/object:Gem::Requirement 
         | 
| 2244 | 
            +
                none: false
         | 
| 2245 | 
            +
                requirements: 
         | 
| 2246 | 
            +
                - - ">="
         | 
| 2247 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2248 | 
            +
                    hash: 3
         | 
| 2249 | 
            +
                    segments: 
         | 
| 2250 | 
            +
                    - 0
         | 
| 2251 | 
            +
                    version: "0"
         | 
| 2252 | 
            +
              name: sqlite3
         | 
| 2253 | 
            +
              version_requirements: *id149
         | 
| 2254 | 
            +
              prerelease: false
         | 
| 2255 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2256 | 
            +
              type: :development
         | 
| 2257 | 
            +
              requirement: &id150 !ruby/object:Gem::Requirement 
         | 
| 2258 | 
            +
                none: false
         | 
| 2259 | 
            +
                requirements: 
         | 
| 2260 | 
            +
                - - ~>
         | 
| 2261 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2262 | 
            +
                    hash: 3
         | 
| 2263 | 
            +
                    segments: 
         | 
| 2264 | 
            +
                    - 2
         | 
| 2265 | 
            +
                    - 3
         | 
| 2266 | 
            +
                    - 0
         | 
| 2267 | 
            +
                    version: 2.3.0
         | 
| 2268 | 
            +
              name: rspec
         | 
| 2269 | 
            +
              version_requirements: *id150
         | 
| 2270 | 
            +
              prerelease: false
         | 
| 2271 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2272 | 
            +
              type: :development
         | 
| 2273 | 
            +
              requirement: &id151 !ruby/object:Gem::Requirement 
         | 
| 2274 | 
            +
                none: false
         | 
| 2275 | 
            +
                requirements: 
         | 
| 2276 | 
            +
                - - ~>
         | 
| 2277 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2278 | 
            +
                    hash: 23
         | 
| 2279 | 
            +
                    segments: 
         | 
| 2280 | 
            +
                    - 1
         | 
| 2281 | 
            +
                    - 0
         | 
| 2282 | 
            +
                    - 0
         | 
| 2283 | 
            +
                    version: 1.0.0
         | 
| 2284 | 
            +
              name: bundler
         | 
| 2285 | 
            +
              version_requirements: *id151
         | 
| 2286 | 
            +
              prerelease: false
         | 
| 2287 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2288 | 
            +
              type: :development
         | 
| 2289 | 
            +
              requirement: &id152 !ruby/object:Gem::Requirement 
         | 
| 2290 | 
            +
                none: false
         | 
| 2291 | 
            +
                requirements: 
         | 
| 2292 | 
            +
                - - ~>
         | 
| 2293 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2294 | 
            +
                    hash: 7
         | 
| 2295 | 
            +
                    segments: 
         | 
| 2296 | 
            +
                    - 1
         | 
| 2297 | 
            +
                    - 5
         | 
| 2298 | 
            +
                    - 2
         | 
| 2299 | 
            +
                    version: 1.5.2
         | 
| 2300 | 
            +
              name: jeweler
         | 
| 2301 | 
            +
              version_requirements: *id152
         | 
| 2302 | 
            +
              prerelease: false
         | 
| 2303 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 2304 | 
            +
              type: :development
         | 
| 2305 | 
            +
              requirement: &id153 !ruby/object:Gem::Requirement 
         | 
| 2306 | 
            +
                none: false
         | 
| 2307 | 
            +
                requirements: 
         | 
| 2308 | 
            +
                - - ">="
         | 
| 2309 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 2310 | 
            +
                    hash: 3
         | 
| 2311 | 
            +
                    segments: 
         | 
| 2312 | 
            +
                    - 0
         | 
| 2313 | 
            +
                    version: "0"
         | 
| 2314 | 
            +
              name: rcov
         | 
| 2315 | 
            +
              version_requirements: *id153
         | 
| 2316 | 
            +
              prerelease: false
         | 
| 2227 2317 | 
             
            description: Creates a separate table that saves all your dynamic attributes.
         | 
| 2228 2318 | 
             
            email: ramon@tayag.net
         | 
| 2229 2319 | 
             
            executables: []
         | 
| @@ -2252,6 +2342,9 @@ files: | |
| 2252 2342 | 
             
            - lib/datts_right/page.rb
         | 
| 2253 2343 | 
             
            - lib/datts_right/query_methods.rb
         | 
| 2254 2344 | 
             
            - spec/datt_spec.rb
         | 
| 2345 | 
            +
            - spec/datts_right/add_dynamic_attributes_spec.rb
         | 
| 2346 | 
            +
            - spec/datts_right/attributes_spec.rb
         | 
| 2347 | 
            +
            - spec/datts_right/remove_dynamic_attribute_spec.rb
         | 
| 2255 2348 | 
             
            - spec/datts_right_spec.rb
         | 
| 2256 2349 | 
             
            - spec/spec_helper.rb
         | 
| 2257 2350 | 
             
            has_rdoc: true
         | 
| @@ -2290,5 +2383,8 @@ specification_version: 3 | |
| 2290 2383 | 
             
            summary: Allows saving of dynamic attributes in your ActiveRecord model
         | 
| 2291 2384 | 
             
            test_files: 
         | 
| 2292 2385 | 
             
            - spec/datt_spec.rb
         | 
| 2386 | 
            +
            - spec/datts_right/add_dynamic_attributes_spec.rb
         | 
| 2387 | 
            +
            - spec/datts_right/attributes_spec.rb
         | 
| 2388 | 
            +
            - spec/datts_right/remove_dynamic_attribute_spec.rb
         | 
| 2293 2389 | 
             
            - spec/datts_right_spec.rb
         | 
| 2294 2390 | 
             
            - spec/spec_helper.rb
         |