with_model 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b88698902a3eed64e0fc34a173d4758e4f108dc5
4
- data.tar.gz: 49b3e03abeccfc847d9f5751e5107ff3c486233e
3
+ metadata.gz: a8cca5256377f4b9344225ea73072ed1da4f9021
4
+ data.tar.gz: 88f4236aac8bcfc99d18bc6b2d607b7f6d9e29ba
5
5
  SHA512:
6
- metadata.gz: e021cf0aa7032ea90c7572f28172d2158062682f382fbe8036489b88120607e986638c3b059cf3be30605f93465c90e3c417ff616f8b385a2eff0f097a4d1814
7
- data.tar.gz: efd6470ae68ea7ae8861f8b0067c8fddb67062553e68eb88ec6c6afa53fc8f7160f8e05490fb1521da135e6c2fde76ec473dab85f0e48e3caa13a9781e12ca67
6
+ metadata.gz: 9d4dec931009a42eb33bdbfb9c2a0220a427689f0b5fabe1f2ea694d7e82d10974814a6034f870d320db3a56b12db56490b73f4a96834bf418831c18fd55462a
7
+ data.tar.gz: 685d7c90874dc1abcc831a4ae76b67d4324792e856854cafa06c6ea9d9af9bf50fc6d76ab05a78196c0e55d009a2a7501456f0284e0218907bb8c7027060bb9f
data/.travis.yml CHANGED
@@ -3,12 +3,15 @@ language: ruby
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
+ - 2.1.1
6
7
  - jruby-19mode
7
8
  - rbx-2.2
8
9
 
9
10
  env:
10
11
  - ACTIVE_RECORD_BRANCH="master"
12
+ - ACTIVE_RECORD_BRANCH="4-1-stable"
11
13
  - ACTIVE_RECORD_BRANCH="4-0-stable"
14
+ - ACTIVE_RECORD_VERSION="~> 4.1.0"
12
15
  - ACTIVE_RECORD_VERSION="~> 4.0.0"
13
16
  - ACTIVE_RECORD_VERSION="~> 3.2.0"
14
17
  - ACTIVE_RECORD_VERSION="~> 3.1.0"
@@ -17,4 +20,5 @@ env:
17
20
  matrix:
18
21
  allow_failures:
19
22
  - env: ACTIVE_RECORD_BRANCH="master"
23
+ - env: ACTIVE_RECORD_BRANCH="4-1-stable"
20
24
  - env: ACTIVE_RECORD_BRANCH="4-0-stable"
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ### 1.1.0
2
+ - Support Ruby 2.1
3
+ - Support Rails 4.1
4
+ - Refactor some internals
5
+
1
6
  ### 1.0.0
2
7
  - Start using [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html)
3
8
  - Complete refactor of internals (Andrew Marshall)
data/README.md CHANGED
@@ -152,7 +152,7 @@ end
152
152
 
153
153
  - Ruby 1.9.3+
154
154
  - RSpec or minitest/spec
155
- - ActiveRecord 3+ (for ActiveRecord 2, use with_model 0.2.x)
155
+ - ActiveRecord 3.0.x–4.1.x (for ActiveRecord 2, use with_model 0.2.x)
156
156
 
157
157
  ## Versioning
158
158
 
@@ -160,5 +160,5 @@ As of version 1.0.0, with_model uses [Semantic Versioning 2.0.0](http://semver.o
160
160
 
161
161
  ## License
162
162
 
163
- Copyright © 2010-2014 Case Commons, LLC.
163
+ Copyright © 20102014 Case Commons, LLC.
164
164
  Licensed under the MIT license, available in the “LICENSE” file.
@@ -1,3 +1,4 @@
1
+ require 'active_record'
1
2
  require 'active_support/core_ext/string/inflections'
2
3
  require 'with_model/constant_stubber'
3
4
  require 'with_model/methods'
@@ -10,25 +11,22 @@ module WithModel
10
11
  def initialize name, options = {}
11
12
  @name = name.to_sym
12
13
  @options = options
13
- @model_block = proc {}
14
- @table_block = proc {}
14
+ @model_block = nil
15
+ @table_block = nil
15
16
  @table_options = {}
16
17
  end
17
18
 
18
19
  def create
19
20
  table.create
20
- @model = Class.new(superclass)
21
-
22
- class << @model
23
- include WithModel::Methods
21
+ @model = Class.new(superclass) do
22
+ extend WithModel::Methods
24
23
  end
25
-
26
24
  stubber.stub_const @model
27
25
  setup_model
28
26
  end
29
27
 
30
28
  def superclass
31
- @options.fetch(:superclass) { ActiveRecord::Base }
29
+ @options.fetch(:superclass, ActiveRecord::Base)
32
30
  end
33
31
 
34
32
  def destroy
@@ -47,7 +45,7 @@ module WithModel
47
45
 
48
46
  def setup_model
49
47
  @model.table_name = table_name
50
- @model.class_eval(&@model_block)
48
+ @model.class_eval(&@model_block) if @model_block
51
49
  @model.reset_column_information
52
50
  end
53
51
 
@@ -1,3 +1,3 @@
1
1
  module WithModel
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.1.0'.freeze
3
3
  end
@@ -4,13 +4,11 @@ describe "ActiveRecord behaviors" do
4
4
  describe "a temporary ActiveRecord model created with with_model" do
5
5
  context "that has a named scope" do
6
6
  before do
7
- regular_model = Class.new ActiveRecord::Base do
7
+ @regular_model = Class.new ActiveRecord::Base do
8
8
  scope :title_is_foo, lambda { where(:title => 'foo') }
9
9
  end
10
- stub_const 'RegularModel', regular_model
11
10
 
12
- RegularModel.connection.drop_table(RegularModel.table_name) rescue nil
13
- RegularModel.connection.create_table(RegularModel.table_name) do |t|
11
+ @regular_model.connection.create_table(@regular_model.table_name, force: true) do |t|
14
12
  t.string 'title'
15
13
  t.text 'content'
16
14
  t.timestamps
@@ -18,7 +16,7 @@ describe "ActiveRecord behaviors" do
18
16
  end
19
17
 
20
18
  after do
21
- RegularModel.connection.drop_table(@model.table_name) rescue nil
19
+ @regular_model.connection.drop_table(@regular_model.table_name)
22
20
  end
23
21
 
24
22
  with_model :BlogPost do
@@ -35,10 +33,10 @@ describe "ActiveRecord behaviors" do
35
33
 
36
34
  describe "the named scope" do
37
35
  it "works like a regular named scope" do
38
- included = RegularModel.create!(:title => 'foo', :content => 'Include me!')
39
- excluded = RegularModel.create!(:title => 'bar', :content => 'Include me!')
36
+ included = @regular_model.create!(:title => 'foo', :content => 'Include me!')
37
+ excluded = @regular_model.create!(:title => 'bar', :content => 'Include me!')
40
38
 
41
- expect(RegularModel.title_is_foo).to eq [included]
39
+ expect(@regular_model.title_is_foo).to eq [included]
42
40
 
43
41
  included = BlogPost.create!(:title => 'foo', :content => 'Include me!')
44
42
  excluded = BlogPost.create!(:title => 'bar', :content => 'Include me!')
data/with_model.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.required_ruby_version = '>= 1.9.3'
21
21
 
22
- spec.add_dependency 'activerecord', '>= 3.0', '< 4.1'
22
+ spec.add_dependency 'activerecord', '>= 3.0', '< 4.2'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '~> 1.3'
25
25
  spec.add_development_dependency 'rake'
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: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Case Commons, LLC
@@ -9,68 +9,68 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-26 00:00:00.000000000 Z
12
+ date: 2014-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '3.0'
21
- - - <
21
+ - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '4.1'
23
+ version: '4.2'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - '>='
28
+ - - ">="
29
29
  - !ruby/object:Gem::Version
30
30
  version: '3.0'
31
- - - <
31
+ - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.1'
33
+ version: '4.2'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: bundler
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  type: :development
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.14'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.14'
76
76
  description: Dynamically build a model within an RSpec context
@@ -82,9 +82,9 @@ executables: []
82
82
  extensions: []
83
83
  extra_rdoc_files: []
84
84
  files:
85
- - .gitignore
86
- - .rspec
87
- - .travis.yml
85
+ - ".gitignore"
86
+ - ".rspec"
87
+ - ".travis.yml"
88
88
  - CHANGELOG.md
89
89
  - Gemfile
90
90
  - LICENSE
@@ -112,17 +112,17 @@ require_paths:
112
112
  - lib
113
113
  required_ruby_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.9.3
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - '>='
120
+ - - ">="
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  requirements: []
124
124
  rubyforge_project:
125
- rubygems_version: 2.0.14
125
+ rubygems_version: 2.2.2
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Dynamically build a model within an RSpec context