not_only_but_also 0.2.0 → 1.0.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.
- data/Rakefile +4 -11
- data/lib/not_only_but_also.rb +1 -1
- data/spec/not_only_but_also_spec.rb +33 -12
- data/spec/rails_root/app/models/post/stuff.rb +4 -1
- data/spec/rails_root/app/models/post/validations.rb +4 -1
- data/spec/rails_root/app/models/post.rb +1 -1
- data/spec/spec_helper.rb +3 -16
- metadata +20 -8
data/Rakefile
CHANGED
@@ -2,10 +2,10 @@ require 'rubygems'
|
|
2
2
|
require 'rake/rdoctask'
|
3
3
|
require 'rake/gempackagetask'
|
4
4
|
require 'rubygems/specification'
|
5
|
-
require '
|
5
|
+
require 'rspec/core/rake_task'
|
6
6
|
|
7
7
|
GEM_NAME = "not_only_but_also"
|
8
|
-
GEM_VERSION = '0.
|
8
|
+
GEM_VERSION = '1.0.0'
|
9
9
|
AUTHOR = "Adam Meehan"
|
10
10
|
EMAIL = "adam.meehan@gmail.com"
|
11
11
|
HOMEPAGE = "http://github.com/adzap/not_only_but_also"
|
@@ -32,19 +32,12 @@ end
|
|
32
32
|
desc 'Default: run specs.'
|
33
33
|
task :default => :spec
|
34
34
|
|
35
|
-
spec_files = Rake::FileList["spec/**/*_spec.rb"]
|
36
|
-
|
37
35
|
desc "Run specs"
|
38
|
-
|
39
|
-
t.spec_files = spec_files
|
40
|
-
t.spec_opts = ["-c"]
|
41
|
-
end
|
36
|
+
RSpec::Core::RakeTask.new(:spec)
|
42
37
|
|
43
38
|
desc "Generate code coverage"
|
44
|
-
|
45
|
-
t.spec_files = spec_files
|
39
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
46
40
|
t.rcov = true
|
47
|
-
t.rcov_opts = ['--exclude', 'spec,/var/lib/gems']
|
48
41
|
end
|
49
42
|
|
50
43
|
desc 'Generate documentation for plugin.'
|
data/lib/not_only_but_also.rb
CHANGED
@@ -1,27 +1,48 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe NotOnlyButAlso do
|
4
|
-
|
5
4
|
before do
|
6
5
|
Object.send(:remove_const, :Post) if Object.const_defined?(:Post)
|
7
6
|
Object.send(:remove_const, :Comment) if Object.const_defined?(:Comment)
|
8
7
|
ActiveSupport::Dependencies.loaded = []
|
9
8
|
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
describe ".not_only_but_also" do
|
11
|
+
context "with array of symbols" do
|
12
|
+
it 'should require symbols as file' do
|
13
|
+
NotOnlyButAlso::Helpers.should_receive(:require_context_file).with('Post', :validations)
|
14
|
+
Post.also_has :validations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "with block" do
|
19
|
+
it 'should evaluate the block in the class context' do
|
20
|
+
Post.also_has do
|
21
|
+
def self.method_in_block; end
|
22
|
+
end
|
23
|
+
Post.should respond_to(:method_in_block)
|
24
|
+
end
|
14
25
|
end
|
15
|
-
Post.should respond_to(:test_validation_method)
|
16
|
-
Post.should_not respond_to(:test_stuff_method)
|
17
26
|
end
|
18
27
|
|
19
|
-
|
20
|
-
|
21
|
-
|
28
|
+
describe NotOnlyButAlso::Helpers do
|
29
|
+
describe ".require_context_file" do
|
30
|
+
it 'should require context file in folder with underscored class name' do
|
31
|
+
NotOnlyButAlso::Helpers.should_receive(:require_dependency).with('post/validations')
|
32
|
+
Post.also_has :validations
|
33
|
+
end
|
22
34
|
end
|
23
|
-
Post.should respond_to(:test_validation_method)
|
24
|
-
Post.should respond_to(:test_stuff_method)
|
25
35
|
end
|
26
36
|
|
37
|
+
context "integration" do
|
38
|
+
it 'should load files from all contexts' do
|
39
|
+
Post.should_not respond_to(:validation_class_method)
|
40
|
+
Post.should_not respond_to(:stuff_class_method)
|
41
|
+
|
42
|
+
Post.also_has :validations, :stuff
|
43
|
+
|
44
|
+
Post.should respond_to(:validation_class_method)
|
45
|
+
Post.should respond_to(:stuff_class_method)
|
46
|
+
end
|
47
|
+
end
|
27
48
|
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class Post
|
1
|
+
class Post
|
2
2
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,22 +1,9 @@
|
|
1
|
-
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), '..', 'spec'))
|
3
|
-
|
4
1
|
require 'rubygems'
|
5
|
-
require '
|
2
|
+
require 'rspec'
|
6
3
|
|
7
|
-
require '
|
8
|
-
require 'active_support'
|
4
|
+
require 'active_support/dependencies'
|
9
5
|
require 'not_only_but_also'
|
10
6
|
|
11
7
|
RAILS_ROOT = File.join(File.dirname(__FILE__), 'rails_root')
|
12
8
|
|
13
|
-
|
14
|
-
ActiveRecord::Base.establish_connection({:adapter => 'sqlite3', :database => ':memory:'})
|
15
|
-
|
16
|
-
ActiveRecord::Schema.define(:version => 1) do
|
17
|
-
create_table :posts, :force => true do |t|
|
18
|
-
t.string :title
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
ActiveSupport::Dependencies.load_paths = %W( #{RAILS_ROOT}/app #{RAILS_ROOT}/app/models )
|
9
|
+
ActiveSupport::Dependencies.autoload_paths = %W( #{RAILS_ROOT}/app #{RAILS_ROOT}/app/models )
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: not_only_but_also
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Adam Meehan
|
@@ -9,7 +15,7 @@ autorequire: not_only_but_also
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2011-01-06 00:00:00 +11:00
|
13
19
|
default_executable:
|
14
20
|
dependencies: []
|
15
21
|
|
@@ -26,13 +32,13 @@ files:
|
|
26
32
|
- README.rdoc
|
27
33
|
- Rakefile
|
28
34
|
- lib/not_only_but_also.rb
|
29
|
-
- spec/
|
35
|
+
- spec/not_only_but_also_spec.rb
|
30
36
|
- spec/rails_root/app/models/post/stuff.rb
|
31
37
|
- spec/rails_root/app/models/post/validations.rb
|
32
|
-
- spec/
|
38
|
+
- spec/rails_root/app/models/post.rb
|
33
39
|
- spec/spec_helper.rb
|
34
|
-
- generators/not_only_but_also/templates/context.erb
|
35
40
|
- generators/not_only_but_also/not_only_but_also_generator.rb
|
41
|
+
- generators/not_only_but_also/templates/context.erb
|
36
42
|
has_rdoc: true
|
37
43
|
homepage: http://github.com/adzap/not_only_but_also
|
38
44
|
licenses: []
|
@@ -43,21 +49,27 @@ rdoc_options: []
|
|
43
49
|
require_paths:
|
44
50
|
- lib
|
45
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
46
53
|
requirements:
|
47
54
|
- - ">="
|
48
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
49
59
|
version: "0"
|
50
|
-
version:
|
51
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
52
62
|
requirements:
|
53
63
|
- - ">="
|
54
64
|
- !ruby/object:Gem::Version
|
65
|
+
hash: 3
|
66
|
+
segments:
|
67
|
+
- 0
|
55
68
|
version: "0"
|
56
|
-
version:
|
57
69
|
requirements: []
|
58
70
|
|
59
71
|
rubyforge_project: not_only_but_also
|
60
|
-
rubygems_version: 1.3.
|
72
|
+
rubygems_version: 1.3.7
|
61
73
|
signing_key:
|
62
74
|
specification_version: 3
|
63
75
|
summary: Rails plugin to split large models into separate files of concern. Like concerned_with but a little more convenient.
|