with_model 0.2.6 → 0.3
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/.gitignore +2 -2
- data/CHANGELOG +10 -0
- data/Gemfile +7 -4
- data/README.rdoc +3 -19
- data/Rakefile +5 -28
- data/lib/with_model.rb +5 -2
- data/lib/with_model/base.rb +0 -23
- data/lib/with_model/dsl.rb +3 -10
- data/lib/with_model/version.rb +1 -1
- data/spec/active_record_behaviors_spec.rb +0 -1
- data/spec/spec_helper.rb +2 -10
- data/with_model.gemspec +2 -2
- metadata +24 -16
- data/gemfiles/Gemfile.common +0 -7
- data/gemfiles/rspec1/Gemfile +0 -5
- data/gemfiles/rspec2/Gemfile +0 -4
- data/spec/spec.opts +0 -2
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
### 0.3
|
2
|
+
|
3
|
+
Use RSpec 2.11's built-in constant stubbing.
|
4
|
+
Remove RSpec 1.x and Active Record 2.x support.
|
5
|
+
Remove Mixico support.
|
6
|
+
|
7
|
+
### 0.2.6
|
8
|
+
|
9
|
+
Active Record 3.2 compatible. (Steven Harman / Brent Wheeldon)
|
10
|
+
|
1
11
|
### 0.2.5
|
2
12
|
|
3
13
|
Clear Active Record 3.x associations class cache between specs to clean up test
|
data/Gemfile
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
source :rubygems
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
|
5
|
+
gem "rake"
|
6
|
+
gem "sqlite3", :platforms => :ruby
|
7
|
+
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
* http://github.com/casecommons/with_model/
|
4
4
|
|
5
|
-
{<img src="https://secure.travis-ci.org/Casecommons/with_model.png" />}[http://travis-ci.org/Casecommons/with_model]
|
5
|
+
{<img src="https://secure.travis-ci.org/Casecommons/with_model.png" />}[http://travis-ci.org/Casecommons/with_model] {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/Casecommons/with_model]
|
6
6
|
|
7
7
|
== DESCRIPTION
|
8
8
|
|
@@ -12,22 +12,12 @@
|
|
12
12
|
|
13
13
|
gem install with_model
|
14
14
|
|
15
|
-
=== RSpec 2
|
16
|
-
|
17
15
|
In spec_helper.rb:
|
18
16
|
|
19
17
|
RSpec.configure do |config|
|
20
18
|
config.extend WithModel
|
21
19
|
end
|
22
20
|
|
23
|
-
=== Rspec 1
|
24
|
-
|
25
|
-
In spec_helper.rb:
|
26
|
-
|
27
|
-
Spec::Runner.configure do |config|
|
28
|
-
config.extend WithModel
|
29
|
-
end
|
30
|
-
|
31
21
|
== USAGE
|
32
22
|
|
33
23
|
In an RSpec example group, call +with_model+ and inside its block pass it a +table+ block and a +model+ block.
|
@@ -119,16 +109,10 @@ In an RSpec example group, call +with_model+ and inside its block pass it a +tab
|
|
119
109
|
end
|
120
110
|
end
|
121
111
|
|
122
|
-
=== Mixico
|
123
|
-
|
124
|
-
If you have the +mixico+ gem installed, WithModel will automatically unmix any modules that were mixed into your model class. Without +mixico+, each module will hold a reference to the class for the remainder of your test suite.
|
125
|
-
|
126
|
-
Usually unmixing isn't necessary, but it can be helpful if you use something like Module#included_in_classes (from Active Support 2.3) in a later test to ask a module which classes it has been mixed into.
|
127
|
-
|
128
112
|
== REQUIREMENTS
|
129
113
|
|
130
|
-
* RSpec
|
131
|
-
* ActiveRecord 2
|
114
|
+
* RSpec 2.11 or higher (for earlier RSpec versions, use 0.2.x)
|
115
|
+
* ActiveRecord 3 (for ActiveRecord 2, use 0.2.x)
|
132
116
|
|
133
117
|
== LICENSE:
|
134
118
|
|
data/Rakefile
CHANGED
@@ -1,38 +1,15 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
|
-
|
5
|
-
major, minor, revision = RUBY_VERSION.split(".").map{|str| str.to_i }
|
6
|
-
|
7
|
-
in_environment = lambda do |environment, command|
|
8
|
-
sh %Q{export BUNDLE_GEMFILE="gemfiles/#{environment}/Gemfile"; bundle update && bundle exec #{command}}
|
9
|
-
end
|
4
|
+
task :default => :spec
|
10
5
|
|
11
|
-
|
12
|
-
|
13
|
-
puts "\n---#{environment}---\n"
|
14
|
-
in_environment.call(environment, command)
|
15
|
-
end
|
6
|
+
def bundle_exec(command)
|
7
|
+
sh %Q{bundle update && bundle exec #{command}}
|
16
8
|
end
|
17
9
|
|
18
|
-
|
19
|
-
:rspec1 => 'rspec',
|
20
|
-
:rspec2 => 'rspec2'
|
21
|
-
}
|
22
|
-
|
23
|
-
desc "Run all specs against Rspec 1 and 2"
|
10
|
+
desc "Run all specs"
|
24
11
|
task "spec" do
|
25
|
-
|
26
|
-
in_environment.call('rspec2', 'rspec spec')
|
27
|
-
end
|
28
|
-
|
29
|
-
namespace "autotest" do
|
30
|
-
environments.each do |environment|
|
31
|
-
desc "Run autotest in #{environment}"
|
32
|
-
task environment do
|
33
|
-
in_environment.call(environment, "autotest -s #{autotest_styles[environment.to_sym]}")
|
34
|
-
end
|
35
|
-
end
|
12
|
+
bundle_exec("rspec spec")
|
36
13
|
end
|
37
14
|
|
38
15
|
namespace "doc" do
|
data/lib/with_model.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
-
require "with_model/dsl"
|
2
|
-
|
3
1
|
module WithModel
|
2
|
+
autoload :Base, "with_model/base"
|
3
|
+
autoload :Dsl, "with_model/dsl"
|
4
|
+
autoload :VERSION, "with_model/version"
|
5
|
+
|
4
6
|
def with_model(name, &block)
|
5
7
|
Dsl.new(name, self).tap { |dsl| dsl.instance_eval(&block) }.execute
|
6
8
|
end
|
7
9
|
|
8
10
|
def with_table(name, options = {}, &block)
|
9
11
|
connection = ActiveRecord::Base.connection
|
12
|
+
|
10
13
|
before do
|
11
14
|
connection.drop_table(name) if connection.table_exists?(name)
|
12
15
|
connection.create_table(name, options, &block)
|
data/lib/with_model/base.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
begin
|
2
|
-
require 'mixico'
|
3
|
-
rescue LoadError
|
4
|
-
end
|
5
|
-
|
6
1
|
module WithModel
|
7
2
|
class Base < ActiveRecord::Base
|
8
3
|
self.abstract_class = true
|
@@ -10,24 +5,6 @@ module WithModel
|
|
10
5
|
def with_model?
|
11
6
|
true
|
12
7
|
end
|
13
|
-
|
14
|
-
if defined?(Mixico)
|
15
|
-
def include(*args)
|
16
|
-
@modules_to_unmix ||= []
|
17
|
-
args.each do |mod|
|
18
|
-
unless @modules_to_unmix.include?(mod)
|
19
|
-
@modules_to_unmix << mod
|
20
|
-
end
|
21
|
-
end
|
22
|
-
super
|
23
|
-
end
|
24
|
-
|
25
|
-
def _with_model_deconstructor
|
26
|
-
@modules_to_unmix.each do |mod|
|
27
|
-
disable_mixin mod
|
28
|
-
end if defined?(@modules_to_unmix)
|
29
|
-
end
|
30
|
-
end
|
31
8
|
end
|
32
9
|
end
|
33
10
|
end
|
data/lib/with_model/dsl.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'with_model/base'
|
2
1
|
require 'active_support/inflector'
|
3
2
|
|
4
3
|
module WithModel
|
@@ -24,20 +23,17 @@ module WithModel
|
|
24
23
|
|
25
24
|
def execute
|
26
25
|
model_initialization = @model_initialization
|
27
|
-
const_name = @name.to_s.camelize
|
26
|
+
const_name = @name.to_s.camelize
|
28
27
|
table_name = "with_model_#{@name.to_s.tableize}_#{$$}"
|
29
28
|
|
30
|
-
original_const_defined = Object.const_defined?(const_name)
|
31
|
-
original_const_value = Object.const_get(const_name) if original_const_defined
|
32
|
-
|
33
29
|
model = nil
|
34
30
|
|
35
31
|
@example_group.with_table(table_name, @table_options, &@table_block)
|
36
32
|
|
37
33
|
@example_group.before do
|
38
34
|
model = Class.new(WithModel::Base)
|
39
|
-
|
40
|
-
|
35
|
+
stub_const(const_name, model)
|
36
|
+
model.class_eval do
|
41
37
|
self.table_name = table_name
|
42
38
|
self.class_eval(&model_initialization)
|
43
39
|
end
|
@@ -45,9 +41,6 @@ module WithModel
|
|
45
41
|
end
|
46
42
|
|
47
43
|
@example_group.after do
|
48
|
-
model._with_model_deconstructor if model.respond_to?(:_with_model_deconstructor)
|
49
|
-
Object.send(:remove_const, const_name)
|
50
|
-
Object.const_set(const_name, original_const_value) if original_const_defined
|
51
44
|
if defined?(ActiveSupport::Dependencies::Reference)
|
52
45
|
ActiveSupport::Dependencies::Reference.clear!
|
53
46
|
end
|
data/lib/with_model/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,8 @@
|
|
1
1
|
require "active_record"
|
2
2
|
require "with_model"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
RSpec.configure do |config|
|
7
|
-
config.extend WithModel
|
8
|
-
end
|
9
|
-
else
|
10
|
-
# For RSpec 1 users.
|
11
|
-
Spec::Runner.configure do |config|
|
12
|
-
config.extend WithModel
|
13
|
-
end
|
4
|
+
RSpec.configure do |config|
|
5
|
+
config.extend WithModel
|
14
6
|
end
|
15
7
|
|
16
8
|
jruby = RUBY_PLATFORM =~ /\bjava\b/
|
data/with_model.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.authors = ["Case Commons, LLC", "Grant Hutchins"]
|
10
10
|
s.email = ["casecommons-dev@googlegroups.com", "gems@nertzy.com"]
|
11
11
|
s.homepage = "https://github.com/Casecommons/with_model"
|
12
|
-
s.summary = %q{Dynamically build a model within an
|
12
|
+
s.summary = %q{Dynamically build a model within an RSpec context}
|
13
13
|
s.description = s.summary
|
14
14
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
@@ -18,5 +18,5 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
|
20
20
|
s.add_dependency 'activerecord', '>=2.3.5', '<4.0.0'
|
21
|
-
s.add_dependency 'rspec', "
|
21
|
+
s.add_dependency 'rspec', "~>2.11"
|
22
22
|
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: 0.
|
4
|
+
version: '0.3'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-08-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -25,19 +25,32 @@ dependencies:
|
|
25
25
|
version: 4.0.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
|
-
version_requirements:
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.3.5
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 4.0.0
|
29
37
|
- !ruby/object:Gem::Dependency
|
30
38
|
name: rspec
|
31
|
-
requirement:
|
39
|
+
requirement: !ruby/object:Gem::Requirement
|
32
40
|
none: false
|
33
41
|
requirements:
|
34
|
-
- -
|
42
|
+
- - ~>
|
35
43
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
44
|
+
version: '2.11'
|
37
45
|
type: :runtime
|
38
46
|
prerelease: false
|
39
|
-
version_requirements:
|
40
|
-
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ~>
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '2.11'
|
53
|
+
description: Dynamically build a model within an RSpec context
|
41
54
|
email:
|
42
55
|
- casecommons-dev@googlegroups.com
|
43
56
|
- gems@nertzy.com
|
@@ -54,16 +67,12 @@ files:
|
|
54
67
|
- LICENSE
|
55
68
|
- README.rdoc
|
56
69
|
- Rakefile
|
57
|
-
- gemfiles/Gemfile.common
|
58
|
-
- gemfiles/rspec1/Gemfile
|
59
|
-
- gemfiles/rspec2/Gemfile
|
60
70
|
- lib/with_model.rb
|
61
71
|
- lib/with_model/base.rb
|
62
72
|
- lib/with_model/dsl.rb
|
63
73
|
- lib/with_model/version.rb
|
64
74
|
- spec/active_record_behaviors_spec.rb
|
65
75
|
- spec/readme_spec.rb
|
66
|
-
- spec/spec.opts
|
67
76
|
- spec/spec_helper.rb
|
68
77
|
- spec/with_model_spec.rb
|
69
78
|
- with_model.gemspec
|
@@ -87,13 +96,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
96
|
version: '0'
|
88
97
|
requirements: []
|
89
98
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.8.
|
99
|
+
rubygems_version: 1.8.24
|
91
100
|
signing_key:
|
92
101
|
specification_version: 3
|
93
|
-
summary: Dynamically build a model within an
|
102
|
+
summary: Dynamically build a model within an RSpec context
|
94
103
|
test_files:
|
95
104
|
- spec/active_record_behaviors_spec.rb
|
96
105
|
- spec/readme_spec.rb
|
97
|
-
- spec/spec.opts
|
98
106
|
- spec/spec_helper.rb
|
99
107
|
- spec/with_model_spec.rb
|
data/gemfiles/Gemfile.common
DELETED
data/gemfiles/rspec1/Gemfile
DELETED
data/gemfiles/rspec2/Gemfile
DELETED
data/spec/spec.opts
DELETED