with_model 0.2 → 0.2.1
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 +5 -0
- data/lib/with_model/dsl.rb +2 -1
- data/lib/with_model/version.rb +1 -1
- data/spec/with_model_spec.rb +45 -0
- metadata +4 -4
    
        data/CHANGELOG
    CHANGED
    
    
    
        data/lib/with_model/dsl.rb
    CHANGED
    
    | @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            require 'with_model/base'
         | 
| 2 | 
            +
            require 'active_support/inflector'
         | 
| 2 3 |  | 
| 3 4 | 
             
            module WithModel
         | 
| 4 5 | 
             
              class Dsl
         | 
| @@ -8,7 +9,7 @@ module WithModel | |
| 8 9 | 
             
                  dsl = self
         | 
| 9 10 |  | 
| 10 11 | 
             
                  @example_group = example_group
         | 
| 11 | 
            -
                  @table_name = table_name = "with_model_#{name}_#{$$}"
         | 
| 12 | 
            +
                  @table_name = table_name = "with_model_#{name.to_s.tableize}_#{$$}"
         | 
| 12 13 | 
             
                  @model_initialization = lambda {|*|}
         | 
| 13 14 |  | 
| 14 15 | 
             
                  const_name = name.to_s.camelize.to_sym
         | 
    
        data/lib/with_model/version.rb
    CHANGED
    
    
    
        data/spec/with_model_spec.rb
    CHANGED
    
    | @@ -107,6 +107,17 @@ describe "a temporary ActiveRecord model created with with_model" do | |
| 107 107 | 
             
                end
         | 
| 108 108 | 
             
              end
         | 
| 109 109 |  | 
| 110 | 
            +
              describe "with a name containing capital letters" do
         | 
| 111 | 
            +
                with_model :BlogPost do
         | 
| 112 | 
            +
                  table {}
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                it "should tableize the table name" do
         | 
| 116 | 
            +
                  BlogPost.table_name.should match(/_blog_posts_/)
         | 
| 117 | 
            +
                  BlogPost.table_name.should == BlogPost.table_name.downcase
         | 
| 118 | 
            +
                end
         | 
| 119 | 
            +
              end
         | 
| 120 | 
            +
             | 
| 110 121 | 
             
              module AMixin
         | 
| 111 122 | 
             
                def foo
         | 
| 112 123 | 
             
                end
         | 
| @@ -150,4 +161,38 @@ describe "a temporary ActiveRecord model created with with_model" do | |
| 150 161 | 
             
                end
         | 
| 151 162 | 
             
              end
         | 
| 152 163 |  | 
| 164 | 
            +
              context "without a model block" do
         | 
| 165 | 
            +
                with_model :blog_post do
         | 
| 166 | 
            +
                  table do |t|
         | 
| 167 | 
            +
                    t.string 'title'
         | 
| 168 | 
            +
                    t.text 'content'
         | 
| 169 | 
            +
                    t.timestamps
         | 
| 170 | 
            +
                  end
         | 
| 171 | 
            +
                end
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                it "should act like a normal ActiveRecord model" do
         | 
| 174 | 
            +
                  record = BlogPost.create!(:title => 'New blog post', :content => "Hello, world!")
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                  record.reload
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                  record.title.should == 'New blog post'
         | 
| 179 | 
            +
                  record.content.should == 'Hello, world!'
         | 
| 180 | 
            +
                  record.updated_at.should be_present
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                  record.destroy
         | 
| 183 | 
            +
             | 
| 184 | 
            +
                  lambda {
         | 
| 185 | 
            +
                    record.reload
         | 
| 186 | 
            +
                  }.should raise_error(ActiveRecord::RecordNotFound)
         | 
| 187 | 
            +
                end
         | 
| 188 | 
            +
             | 
| 189 | 
            +
                if defined?(ActiveModel)
         | 
| 190 | 
            +
                  describe "the class" do
         | 
| 191 | 
            +
                    subject { BlogPost.new }
         | 
| 192 | 
            +
                    it_should_behave_like "ActiveModel"
         | 
| 193 | 
            +
                  end
         | 
| 194 | 
            +
                end
         | 
| 195 | 
            +
             | 
| 196 | 
            +
              end
         | 
| 197 | 
            +
             | 
| 153 198 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: with_model
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,12 +9,12 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 12 | 
            +
            date: 2011-07-01 00:00:00.000000000 -04:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: activerecord
         | 
| 17 | 
            -
              requirement: & | 
| 17 | 
            +
              requirement: &2164522740 !ruby/object:Gem::Requirement
         | 
| 18 18 | 
             
                none: false
         | 
| 19 19 | 
             
                requirements:
         | 
| 20 20 | 
             
                - - ! '>='
         | 
| @@ -25,7 +25,7 @@ dependencies: | |
| 25 25 | 
             
                    version: 4.0.0
         | 
| 26 26 | 
             
              type: :runtime
         | 
| 27 27 | 
             
              prerelease: false
         | 
| 28 | 
            -
              version_requirements: * | 
| 28 | 
            +
              version_requirements: *2164522740
         | 
| 29 29 | 
             
            description: Dynamically build a model within an Rspec context
         | 
| 30 30 | 
             
            email:
         | 
| 31 31 | 
             
            - casecommons-dev@googlegroups.com
         |