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