with_model 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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