callmeback 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -14,4 +14,7 @@ group :development, :test do
14
14
  gem 'guard'
15
15
  gem 'guard-rspec'
16
16
  gem 'pry'
17
+ gem "activerecord"
18
+ gem "activerecord-nulldb-adapter"
19
+ gem "mongoid"
17
20
  end
@@ -1,9 +1,21 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activemodel (3.2.3)
5
+ activesupport (= 3.2.3)
6
+ builder (~> 3.0.0)
7
+ activerecord (3.2.3)
8
+ activemodel (= 3.2.3)
9
+ activesupport (= 3.2.3)
10
+ arel (~> 3.0.2)
11
+ tzinfo (~> 0.3.29)
12
+ activerecord-nulldb-adapter (0.2.3)
13
+ activerecord (>= 2.0.0)
4
14
  activesupport (3.2.3)
5
15
  i18n (~> 0.6)
6
16
  multi_json (~> 1.0)
17
+ arel (3.0.2)
18
+ builder (3.0.4)
7
19
  coderay (1.0.6)
8
20
  diff-lcs (1.1.3)
9
21
  ffi (1.0.11)
@@ -21,7 +33,14 @@ GEM
21
33
  rdoc
22
34
  json (1.7.1)
23
35
  method_source (0.7.1)
36
+ mongoid (3.1.3)
37
+ activemodel (~> 3.2)
38
+ moped (~> 1.4.2)
39
+ origin (~> 1.0)
40
+ tzinfo (~> 0.3.22)
41
+ moped (1.4.5)
24
42
  multi_json (1.3.4)
43
+ origin (1.1.0)
25
44
  pry (0.9.9.4)
26
45
  coderay (~> 1.0.5)
27
46
  method_source (~> 0.7.1)
@@ -43,16 +62,20 @@ GEM
43
62
  simplecov-html (0.5.3)
44
63
  slop (2.4.4)
45
64
  thor (0.14.6)
65
+ tzinfo (0.3.37)
46
66
 
47
67
  PLATFORMS
48
68
  ruby
49
69
 
50
70
  DEPENDENCIES
71
+ activerecord
72
+ activerecord-nulldb-adapter
51
73
  activesupport (>= 3.2.3)
52
74
  bundler
53
75
  guard
54
76
  guard-rspec
55
77
  jeweler (~> 1.8.3)
78
+ mongoid
56
79
  pry
57
80
  rdoc (~> 3.12)
58
81
  rspec (~> 2.8.0)
@@ -19,25 +19,30 @@ Or add it to your gem file:
19
19
  == Usage
20
20
 
21
21
  === Basic
22
- Add +include Callmeback+ after *all* your module inclusions to be sure the gem works.
22
+ Add +include Callmeback+ to your class:
23
23
  class Example
24
24
  include Callmeback
25
25
 
26
26
  before :foo => :bar
27
27
 
28
+ def initialize
29
+ callmeback!
30
+ @result = []
31
+ end
32
+
28
33
  def foo
29
- (@result ||= []) << 'foo'
34
+ @result << 'foo'
30
35
  end
31
36
 
32
37
  def bar
33
- (@result ||= []) << 'bar'
38
+ @result << 'bar'
34
39
  end
35
40
  end
36
41
 
37
42
  example = Example.new
38
43
  example.foo #=> ['bar','foo']
39
44
 
40
- Because this extension overrides the +.initialize+ method, if you need to redefine it, please add +callback_binding+ to your +.initialize+ method. Here is the same example as above but implemeting the +.initialize+ method:
45
+ Because your methods must be redefined to perform custom callbacks, you need to call +#callmeback!+ on initialization.
41
46
 
42
47
  You can use +before+, +after+ and +around+, as if you use the suggested method in the +ActiveSupport::Callbacks+ documentation.
43
48
  To perform the +around+ callbacks, define them like:
@@ -49,6 +54,18 @@ To perform the +around+ callbacks, define them like:
49
54
  bar
50
55
  end
51
56
 
57
+ === ActiveRecord and Mongoid
58
+
59
+ You may want to use Callmeback on your ActiveRecord or Mongoid models. I recommend you not to redefine the +initialize+ method. Instead please use the +after_initialize+ callback. Here is an example using Mongoid:
60
+ class Example
61
+ include Mongoid::Document
62
+ include Callmeback
63
+
64
+ after_initialize do
65
+ callmeback!
66
+ end
67
+ ...
68
+
52
69
  === Array of callbacks
53
70
  You can pass an array of callback method symbol:
54
71
  before :foo => [:bar, :bar]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.1
1
+ 1.2.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "callmeback"
8
- s.version = "1.2.1"
8
+ s.version = "1.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sebastien Azimi"]
12
- s.date = "2013-01-16"
12
+ s.date = "2013-04-26"
13
13
  s.description = ""
14
14
  s.email = "sebstp@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -28,7 +28,11 @@ Gem::Specification.new do |s|
28
28
  "VERSION",
29
29
  "callmeback.gemspec",
30
30
  "lib/callmeback.rb",
31
+ "spec/app/db/schema.rb",
31
32
  "spec/app/models/example.rb",
33
+ "spec/app/models/example_active_record.rb",
34
+ "spec/app/models/example_mongoid.rb",
35
+ "spec/app/support/example_definition.rb",
32
36
  "spec/callmeback_spec.rb",
33
37
  "spec/spec_helper.rb"
34
38
  ]
@@ -51,6 +55,9 @@ Gem::Specification.new do |s|
51
55
  s.add_development_dependency(%q<guard>, [">= 0"])
52
56
  s.add_development_dependency(%q<guard-rspec>, [">= 0"])
53
57
  s.add_development_dependency(%q<pry>, [">= 0"])
58
+ s.add_development_dependency(%q<activerecord>, [">= 0"])
59
+ s.add_development_dependency(%q<activerecord-nulldb-adapter>, [">= 0"])
60
+ s.add_development_dependency(%q<mongoid>, [">= 0"])
54
61
  else
55
62
  s.add_dependency(%q<activesupport>, [">= 3.2.3"])
56
63
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
@@ -61,6 +68,9 @@ Gem::Specification.new do |s|
61
68
  s.add_dependency(%q<guard>, [">= 0"])
62
69
  s.add_dependency(%q<guard-rspec>, [">= 0"])
63
70
  s.add_dependency(%q<pry>, [">= 0"])
71
+ s.add_dependency(%q<activerecord>, [">= 0"])
72
+ s.add_dependency(%q<activerecord-nulldb-adapter>, [">= 0"])
73
+ s.add_dependency(%q<mongoid>, [">= 0"])
64
74
  end
65
75
  else
66
76
  s.add_dependency(%q<activesupport>, [">= 3.2.3"])
@@ -72,6 +82,9 @@ Gem::Specification.new do |s|
72
82
  s.add_dependency(%q<guard>, [">= 0"])
73
83
  s.add_dependency(%q<guard-rspec>, [">= 0"])
74
84
  s.add_dependency(%q<pry>, [">= 0"])
85
+ s.add_dependency(%q<activerecord>, [">= 0"])
86
+ s.add_dependency(%q<activerecord-nulldb-adapter>, [">= 0"])
87
+ s.add_dependency(%q<mongoid>, [">= 0"])
75
88
  end
76
89
  end
77
90
 
@@ -5,24 +5,7 @@ module Callmeback
5
5
  extend ActiveSupport::Concern
6
6
  include ActiveSupport::Callbacks
7
7
 
8
- included do
9
- if defined?(Mongoid::Document)
10
- after_initialize do
11
- callback_binding
12
- end
13
- end
14
- end
15
-
16
- def initialize(*args, &block)
17
- super(*args, &block)
18
-
19
- unless defined?(Mongoid::Document)
20
- # Overwrite the initialize method to perform the defined callbacks binding
21
- callback_binding
22
- end
23
- end
24
-
25
- def callback_binding
8
+ def callmeback!
26
9
  self.class.callmeback_methods.each do |callback_prefix, callback_array|
27
10
  callback_array.each do |callback_hash|
28
11
  callback_hash.each do |callback_key, callbacks|
@@ -38,11 +21,11 @@ module Callmeback
38
21
  binded_methods.each do |binded|
39
22
  callbacks.each do |callback|
40
23
 
41
- binded_suffix = "method_#{self.class.callmeback_method_index}"
24
+ binded_suffix = :"method_#{self.class.callmeback_method_index}"
42
25
  self.class.callmeback_method_index += 1
43
26
 
44
- prefixed_wrapped_binded = "callmeback_wrapped_#{binded_suffix}"
45
- prefixed_unwrapped_binded = "callmeback_unwrapped_#{binded_suffix}"
27
+ prefixed_wrapped_binded = :"callmeback_wrapped_#{binded_suffix}"
28
+ prefixed_unwrapped_binded = :"callmeback_unwrapped_#{binded_suffix}"
46
29
 
47
30
  class_eval do
48
31
  define_method prefixed_wrapped_binded do
@@ -0,0 +1,6 @@
1
+ ActiveRecord::Schema.define do
2
+ self.verbose = false
3
+
4
+ create_table :example_active_records, :force => true do |t|
5
+ end
6
+ end
@@ -1,127 +1,10 @@
1
- class Example
2
- include Callmeback
3
-
4
- attr_accessor :result
5
-
6
- before :before_foo => :bar
7
- after :after_foo => :bar
8
- around :around_foo => :around_bar
9
-
10
- before :multiple_before_foo => [:bar, :bar]
11
- after :multiple_after_foo => [:bar, :bar]
12
- around :multiple_around_foo => [:around_bar, :around_bar]
13
-
14
- before :complex_foo => :bar
15
- around :complex_foo => [:around_bar, :around_bar]
16
- after :complex_foo => [:bar, :bar]
17
-
18
- before( /^regex_before_.+$/ => :bar )
19
-
20
- before :block_before_foo do
21
- bar
22
- end
23
-
24
- after :block_after_foo do
25
- bar
26
- end
27
-
28
- around :block_around_foo do |&block|
29
- bar
30
- block.call
31
- bar
32
- end
33
-
34
- before :complex_with_blocks_foo do
35
- bar
36
- bar
37
- end
38
- after :complex_with_blocks_foo do
39
- bar
40
- end
41
- around :complex_with_blocks_foo do |&block|
42
- bar
43
- block.call
44
- bar
45
- end
46
-
47
- before :complex_with_methods_and_blocks_foo => [:bar, :bar]
48
- after :complex_with_methods_and_blocks_foo do
49
- bar
50
- end
51
- around :complex_with_methods_and_blocks_foo do |&block|
52
- bar
53
- block.call
54
- bar
55
- end
56
-
57
- before(/^regex_block_before.+$/) do
58
- bar
59
- end
60
-
61
- before(/^regex_block_method_before.+$/) do
62
- bar
63
- end
64
- after(/^regex_block_method_before.+$/ => :bar)
65
-
66
- around [:array_around_method1_foo, :array_around_method2_foo] => :around_bar
67
-
68
- before %w{array_block_before_method1_foo array_block_before_method2_foo} do
69
- bar
70
- end
71
-
72
- before %w{array_block_method_before_method1_foo array_block_method_before_method2_foo} do
73
- bar
74
- end
75
- after %w{array_block_method_before_method1_foo array_block_method_before_method2_foo} => :bar
1
+ require "#{File.dirname(__FILE__)}/../support/example_definition.rb"
76
2
 
3
+ class Example
4
+ include ExampleDefinition
77
5
 
78
6
  def initialize
79
- @result = []
80
- callback_binding
81
- end
82
-
83
- %w{
84
- before after
85
- around
86
- multiple_before
87
- multiple_after
88
- multiple_around
89
- complex
90
- block_before
91
- block_after
92
- block_around
93
- complex_with_blocks
94
- complex_with_methods_and_blocks
95
- regex_before_method1
96
- regex_before_method2
97
- regex_block_before_method1
98
- regex_block_before_method2
99
- regex_block_method_before_method1
100
- regex_block_method_before_method2
101
- array_around_method1
102
- array_around_method2
103
- array_block_before_method1
104
- array_block_before_method2
105
- array_block_method_before_method1
106
- array_block_method_before_method2
107
- }.each do |prefix|
108
- define_method "#{prefix}_foo" do
109
- foo
110
- end
111
- end
112
-
113
- private
114
- def foo
115
- @result << 'foo'
116
- end
117
-
118
- def bar
119
- @result << 'bar'
120
- end
121
-
122
- def around_bar
123
- bar
124
- yield
125
- bar
7
+ callmeback!
8
+ self.result = []
126
9
  end
127
10
  end
@@ -0,0 +1,11 @@
1
+ require "active_record"
2
+ require "#{File.dirname(__FILE__)}/../support/example_definition.rb"
3
+
4
+ class ExampleActiveRecord < ActiveRecord::Base
5
+ include ExampleDefinition
6
+
7
+ after_initialize do
8
+ callmeback!
9
+ self.result = []
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require "mongoid"
2
+ require "#{File.dirname(__FILE__)}/../support/example_definition.rb"
3
+
4
+ class ExampleMongoid
5
+ include Mongoid::Document
6
+ include ExampleDefinition
7
+
8
+ after_initialize do
9
+ callmeback!
10
+ self.result = []
11
+ end
12
+ end
@@ -0,0 +1,126 @@
1
+ require "active_support/concern"
2
+
3
+ module ExampleDefinition
4
+ extend ActiveSupport::Concern
5
+ include Callmeback
6
+
7
+ included do
8
+ attr_accessor :result
9
+
10
+ before :before_foo => :bar
11
+ after :after_foo => :bar
12
+ around :around_foo => :around_bar
13
+
14
+ before :multiple_before_foo => [:bar, :bar]
15
+ after :multiple_after_foo => [:bar, :bar]
16
+ around :multiple_around_foo => [:around_bar, :around_bar]
17
+
18
+ before :complex_foo => :bar
19
+ around :complex_foo => [:around_bar, :around_bar]
20
+ after :complex_foo => [:bar, :bar]
21
+
22
+ before( /^regex_before_.+$/ => :bar )
23
+
24
+ before :block_before_foo do
25
+ bar
26
+ end
27
+
28
+ after :block_after_foo do
29
+ bar
30
+ end
31
+
32
+ around :block_around_foo do |&block|
33
+ bar
34
+ block.call
35
+ bar
36
+ end
37
+
38
+ before :complex_with_blocks_foo do
39
+ bar
40
+ bar
41
+ end
42
+ after :complex_with_blocks_foo do
43
+ bar
44
+ end
45
+ around :complex_with_blocks_foo do |&block|
46
+ bar
47
+ block.call
48
+ bar
49
+ end
50
+
51
+ before :complex_with_methods_and_blocks_foo => [:bar, :bar]
52
+ after :complex_with_methods_and_blocks_foo do
53
+ bar
54
+ end
55
+ around :complex_with_methods_and_blocks_foo do |&block|
56
+ bar
57
+ block.call
58
+ bar
59
+ end
60
+
61
+ before(/^regex_block_before.+$/) do
62
+ bar
63
+ end
64
+
65
+ before(/^regex_block_method_before.+$/) do
66
+ bar
67
+ end
68
+ after(/^regex_block_method_before.+$/ => :bar)
69
+
70
+ around [:array_around_method1_foo, :array_around_method2_foo] => :around_bar
71
+
72
+ before %w{array_block_before_method1_foo array_block_before_method2_foo} do
73
+ bar
74
+ end
75
+
76
+ before %w{array_block_method_before_method1_foo array_block_method_before_method2_foo} do
77
+ bar
78
+ end
79
+ after %w{array_block_method_before_method1_foo array_block_method_before_method2_foo} => :bar
80
+
81
+
82
+ %w{
83
+ before after
84
+ around
85
+ multiple_before
86
+ multiple_after
87
+ multiple_around
88
+ complex
89
+ block_before
90
+ block_after
91
+ block_around
92
+ complex_with_blocks
93
+ complex_with_methods_and_blocks
94
+ regex_before_method1
95
+ regex_before_method2
96
+ regex_block_before_method1
97
+ regex_block_before_method2
98
+ regex_block_method_before_method1
99
+ regex_block_method_before_method2
100
+ array_around_method1
101
+ array_around_method2
102
+ array_block_before_method1
103
+ array_block_before_method2
104
+ array_block_method_before_method1
105
+ array_block_method_before_method2
106
+ }.each do |prefix|
107
+ define_method "#{prefix}_foo" do
108
+ foo
109
+ end
110
+ end
111
+ end
112
+
113
+ def foo
114
+ @result << 'foo'
115
+ end
116
+
117
+ def bar
118
+ @result << 'bar'
119
+ end
120
+
121
+ def around_bar
122
+ bar
123
+ yield
124
+ bar
125
+ end
126
+ end
@@ -2,123 +2,127 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe Callmeback do
4
4
 
5
- let(:example) do
6
- Example.new
7
- end
8
-
9
- it "should have created 3 methods: before, after, around" do
10
- [:before, :after, :around].each do |method_name|
11
- expect{ Example.method method_name }.to_not raise_error(NameError)
12
- end
13
- end
14
-
15
- describe ".before" do
16
- it "should fire a callback before the original method is executed" do
17
- example.before_foo.should == %w{bar foo}
18
- end
19
- end
20
-
21
- describe ".after" do
22
- it "should fire a callback after the original method is executed" do
23
- example.after_foo.should == %w{foo bar}
24
- end
25
- end
26
-
27
- describe ".around" do
28
- it "should fire a callback around the original method is executed" do
29
- example.around_foo.should == %w{bar foo bar}
30
- end
31
- end
32
-
33
- context "the callback value is an array of methods" do
34
- describe ".before" do
35
- it "should fire array-length callbacks before the original method is executed" do
36
- example.multiple_before_foo.should == %w{bar bar foo}
5
+ %w{Example ExampleActiveRecord ExampleMongoid}.each do |klass|
6
+ context "using #{klass}" do
7
+ let(:example) do
8
+ klass.constantize.new
37
9
  end
38
- end
39
10
 
40
- describe ".after" do
41
- it "should fire array-length callbacks after the original method is executed" do
42
- example.multiple_after_foo.should == %w{foo bar bar}
11
+ it "should have created 3 methods: before, after, around" do
12
+ [:before, :after, :around].each do |method_name|
13
+ expect{ klass.constantize.method method_name }.to_not raise_error(NameError)
14
+ end
43
15
  end
44
- end
45
16
 
46
- describe ".around" do
47
- it "should fire array-length callbacks around the original method is executed" do
48
- example.multiple_around_foo.should == %w{bar bar foo bar bar}
17
+ describe ".before" do
18
+ it "should fire a callback before the original method is executed" do
19
+ example.before_foo.should == %w{bar foo}
20
+ end
49
21
  end
50
- end
51
- end
52
22
 
53
- context "the gem should handle complex callback structures" do
54
- it "should fire the callbacks in the order of their call" do
55
- example.complex_foo.should == %w{bar bar bar foo bar bar bar bar}
56
- end
57
- end
58
-
59
- context "the gem should handle blocks as callbacks" do
60
- it "should fire a callback block before the original method is executed" do
61
- example.block_before_foo.should == %w{bar foo}
62
- end
23
+ describe ".after" do
24
+ it "should fire a callback after the original method is executed" do
25
+ example.after_foo.should == %w{foo bar}
26
+ end
27
+ end
63
28
 
64
- it "should fire a callback block after the original method is executed" do
65
- example.block_after_foo.should == %w{foo bar}
66
- end
29
+ describe ".around" do
30
+ it "should fire a callback around the original method is executed" do
31
+ example.around_foo.should == %w{bar foo bar}
32
+ end
33
+ end
67
34
 
68
- it "should fire a callback block around the original method is executed" do
69
- example.block_around_foo.should == %w{bar foo bar}
70
- end
71
- end
35
+ context "the callback value is an array of methods" do
36
+ describe ".before" do
37
+ it "should fire array-length callbacks before the original method is executed" do
38
+ example.multiple_before_foo.should == %w{bar bar foo}
39
+ end
40
+ end
41
+
42
+ describe ".after" do
43
+ it "should fire array-length callbacks after the original method is executed" do
44
+ example.multiple_after_foo.should == %w{foo bar bar}
45
+ end
46
+ end
47
+
48
+ describe ".around" do
49
+ it "should fire array-length callbacks around the original method is executed" do
50
+ example.multiple_around_foo.should == %w{bar bar foo bar bar}
51
+ end
52
+ end
53
+ end
72
54
 
73
- context "the gem should handle blocks as callbacks" do
74
- it "should fire the callbacks in the order of their call" do
75
- example.complex_with_blocks_foo.should == %w{bar bar bar foo bar bar}
76
- end
77
- end
55
+ context "the gem should handle complex callback structures" do
56
+ it "should fire the callbacks in the order of their call" do
57
+ example.complex_foo.should == %w{bar bar bar foo bar bar bar bar}
58
+ end
59
+ end
78
60
 
79
- context "the gem should handle blocks as callbacks and methods" do
80
- it "should fire the callbacks in the order of their call" do
81
- example.complex_with_methods_and_blocks_foo.should == %w{bar bar bar foo bar bar}
82
- end
83
- end
61
+ context "the gem should handle blocks as callbacks" do
62
+ it "should fire a callback block before the original method is executed" do
63
+ example.block_before_foo.should == %w{bar foo}
64
+ end
84
65
 
85
- context "the gem should handle regex as callback argument" do
86
- it "should fire the callback for all the given methods that match the given regex" do
87
- example.regex_before_method1_foo.should == %w{bar foo}
88
- example.result.clear
89
- example.regex_before_method2_foo.should == %w{bar foo}
90
- end
66
+ it "should fire a callback block after the original method is executed" do
67
+ example.block_after_foo.should == %w{foo bar}
68
+ end
91
69
 
92
- it "should fire the callback for all the given blocks that match the given regex" do
93
- example.regex_block_before_method1_foo.should == %w{bar foo}
94
- example.result.clear
95
- example.regex_block_before_method2_foo.should == %w{bar foo}
96
- end
70
+ it "should fire a callback block around the original method is executed" do
71
+ example.block_around_foo.should == %w{bar foo bar}
72
+ end
73
+ end
97
74
 
98
- it "should fire the callback for all the given methods and blocks that match the given regex" do
99
- example.regex_block_method_before_method1_foo.should == %w{bar foo bar}
100
- example.result.clear
101
- example.regex_block_method_before_method2_foo.should == %w{bar foo bar}
102
- end
103
- end
75
+ context "the gem should handle blocks as callbacks" do
76
+ it "should fire the callbacks in the order of their call" do
77
+ example.complex_with_blocks_foo.should == %w{bar bar bar foo bar bar}
78
+ end
79
+ end
104
80
 
105
- context "the gem should handle array as callback argument" do
106
- it "should fire the callback for all the given methods that are included in the given array" do
107
- example.array_around_method1_foo.should == %w{bar foo bar}
108
- example.result.clear
109
- example.array_around_method2_foo.should == %w{bar foo bar}
110
- end
81
+ context "the gem should handle blocks as callbacks and methods" do
82
+ it "should fire the callbacks in the order of their call" do
83
+ example.complex_with_methods_and_blocks_foo.should == %w{bar bar bar foo bar bar}
84
+ end
85
+ end
111
86
 
112
- it "should fire the callback for all the given blocks that are included in the given array" do
113
- example.array_block_before_method1_foo.should == %w{bar foo}
114
- example.result.clear
115
- example.array_block_before_method2_foo.should == %w{bar foo}
116
- end
87
+ context "the gem should handle regex as callback argument" do
88
+ it "should fire the callback for all the given methods that match the given regex" do
89
+ example.regex_before_method1_foo.should == %w{bar foo}
90
+ example.result.clear
91
+ example.regex_before_method2_foo.should == %w{bar foo}
92
+ end
93
+
94
+ it "should fire the callback for all the given blocks that match the given regex" do
95
+ example.regex_block_before_method1_foo.should == %w{bar foo}
96
+ example.result.clear
97
+ example.regex_block_before_method2_foo.should == %w{bar foo}
98
+ end
99
+
100
+ it "should fire the callback for all the given methods and blocks that match the given regex" do
101
+ example.regex_block_method_before_method1_foo.should == %w{bar foo bar}
102
+ example.result.clear
103
+ example.regex_block_method_before_method2_foo.should == %w{bar foo bar}
104
+ end
105
+ end
117
106
 
118
- it "should fire the callback for all the given methods and blocks that are included in the given array" do
119
- example.array_block_method_before_method1_foo.should == %w{bar foo bar}
120
- example.result.clear
121
- example.array_block_method_before_method2_foo.should == %w{bar foo bar}
107
+ context "the gem should handle array as callback argument" do
108
+ it "should fire the callback for all the given methods that are included in the given array" do
109
+ example.array_around_method1_foo.should == %w{bar foo bar}
110
+ example.result.clear
111
+ example.array_around_method2_foo.should == %w{bar foo bar}
112
+ end
113
+
114
+ it "should fire the callback for all the given blocks that are included in the given array" do
115
+ example.array_block_before_method1_foo.should == %w{bar foo}
116
+ example.result.clear
117
+ example.array_block_before_method2_foo.should == %w{bar foo}
118
+ end
119
+
120
+ it "should fire the callback for all the given methods and blocks that are included in the given array" do
121
+ example.array_block_method_before_method1_foo.should == %w{bar foo bar}
122
+ example.result.clear
123
+ example.array_block_method_before_method2_foo.should == %w{bar foo bar}
124
+ end
125
+ end
122
126
  end
123
127
  end
124
128
  end
@@ -1,6 +1,9 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
 
4
+ require "active_record"
5
+ ActiveRecord::Base.establish_connection :adapter => :nulldb, :schema => File.join(File.dirname(__FILE__), "app", "db", "schema.rb")
6
+
4
7
  MODELS = File.join(File.dirname(__FILE__), "app/models")
5
8
 
6
9
  require 'rspec'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: callmeback
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-16 00:00:00.000000000 Z
12
+ date: 2013-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -155,6 +155,54 @@ dependencies:
155
155
  - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: activerecord
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: activerecord-nulldb-adapter
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: mongoid
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
158
206
  description: ''
159
207
  email: sebstp@gmail.com
160
208
  executables: []
@@ -174,7 +222,11 @@ files:
174
222
  - VERSION
175
223
  - callmeback.gemspec
176
224
  - lib/callmeback.rb
225
+ - spec/app/db/schema.rb
177
226
  - spec/app/models/example.rb
227
+ - spec/app/models/example_active_record.rb
228
+ - spec/app/models/example_mongoid.rb
229
+ - spec/app/support/example_definition.rb
178
230
  - spec/callmeback_spec.rb
179
231
  - spec/spec_helper.rb
180
232
  homepage: http://github.com/suruja/callmeback
@@ -192,7 +244,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
244
  version: '0'
193
245
  segments:
194
246
  - 0
195
- hash: -3698104378079920545
247
+ hash: -2380151203651981277
196
248
  required_rubygems_version: !ruby/object:Gem::Requirement
197
249
  none: false
198
250
  requirements: