elliottcable-refinery 0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,167 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Refinery do
4
+ before :each do
5
+ # Kind of hackish, but I'd rather refer to it by it's name as a class.
6
+ Object.send :remove_const, :Something if defined? Something
7
+ end
8
+
9
+ describe '#refine_method' do
10
+ describe '- instance method' do
11
+
12
+ it 'should still work ordinarily when defined before refining' do
13
+ class Something
14
+ attr_reader :abc
15
+ extend Refinery
16
+
17
+ def foobar
18
+ @abc = 123
19
+ end
20
+ refine_method :foobar
21
+ end
22
+
23
+ something = Something.new
24
+ something.foobar
25
+ something.abc.should == 123
26
+ end
27
+
28
+ it 'should still work ordinarily when not defined before refining' do
29
+ class Something
30
+ attr_reader :abc
31
+ extend Refinery
32
+
33
+ refine_method :foobar
34
+ def foobar
35
+ @abc = 123
36
+ end
37
+ end
38
+
39
+ something = Something.new
40
+ something.foobar
41
+ something.abc.should == 123
42
+ end
43
+
44
+ it 'should stack when defined multiple times after refining' do; pending do
45
+ class Something
46
+ attr_reader :abc
47
+ extend Refinery
48
+
49
+ refine_method :foobar
50
+ def foobar
51
+ @abc = 123
52
+ end
53
+
54
+ def foobar
55
+ @abc += 111
56
+ end
57
+
58
+ def foobar
59
+ @abc += 111
60
+ end
61
+ end
62
+
63
+ something = Something.new
64
+ something.foobar
65
+ something.abc.should == 345
66
+ end; end
67
+
68
+ it 'should stack when defined before and after refining' do; pending do
69
+ class Something
70
+ attr_reader :abc
71
+ extend Refinery
72
+
73
+ def foobar
74
+ @abc = 123
75
+ end
76
+ refine_method :foobar
77
+
78
+ def foobar
79
+ @abc += 111
80
+ end
81
+ end
82
+
83
+ something = Something.new
84
+ something.foobar
85
+ something.abc.should == 234
86
+ end; end
87
+
88
+ end
89
+
90
+ describe '- singleton method' do
91
+
92
+ it 'should still work ordinarily when defined before refining' do
93
+ class Something; class << self
94
+ attr_reader :abc
95
+ extend Refinery
96
+
97
+ def foobar
98
+ @abc = 123
99
+ end
100
+ refine_method :foobar
101
+ end; end
102
+
103
+ Something.foobar
104
+ Something.abc.should == 123
105
+ end
106
+
107
+ it 'should still work ordinarily when not defined before refining' do
108
+ class Something; class << self
109
+ attr_reader :abc
110
+ extend Refinery
111
+
112
+ refine_method :foobar
113
+ def foobar
114
+ @abc = 123
115
+ end
116
+ end; end
117
+
118
+ Something.foobar
119
+ Something.abc.should == 123
120
+ end
121
+
122
+ it 'should stack when defined multiple times after refining' do; pending do
123
+ class Something; class << self
124
+ attr_reader :abc
125
+ extend Refinery
126
+
127
+ refine_method :foobar
128
+ def foobar
129
+ @abc = 123
130
+ end
131
+
132
+ def foobar
133
+ @abc += 111
134
+ end
135
+
136
+ def foobar
137
+ @abc += 111
138
+ end
139
+ end; end
140
+
141
+ Something.foobar
142
+ Something.abc.should == 345
143
+ end; end
144
+
145
+ it 'should stack when defined before and after refining' do; pending do
146
+ class Something; class << self
147
+ attr_reader :abc
148
+ extend Refinery
149
+
150
+ def foobar
151
+ @abc = 123
152
+ end
153
+ refine_method :foobar
154
+
155
+ def foobar
156
+ @abc += 111
157
+ end
158
+ end; end
159
+
160
+ Something.foobar
161
+ Something.abc.should == 234
162
+ end; end
163
+
164
+ end
165
+ end
166
+
167
+ end
@@ -0,0 +1,6 @@
1
+ ($:.unshift File.expand_path(File.join( File.dirname(__FILE__), '..', 'lib' ))).uniq!
2
+ require 'refinery'
3
+
4
+ # Require spec here, for things like autotest and rdebug that aren't running
5
+ # using the Rakefile.
6
+ require 'spec'
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elliottcable-refinery
3
+ version: !ruby/object:Gem::Version
4
+ version: "0"
5
+ platform: ruby
6
+ authors:
7
+ - elliottcable
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ date: 2008-10-12 01:00:00 -07:00
12
+ default_executable:
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: echoe
16
+ type: :development
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.1
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rspec
26
+ type: :development
27
+ version_requirement:
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: "0"
33
+ version:
34
+ - !ruby/object:Gem::Dependency
35
+ name: rcov
36
+ type: :development
37
+ version_requirement:
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: "0"
43
+ version:
44
+ - !ruby/object:Gem::Dependency
45
+ name: yard
46
+ type: :development
47
+ version_requirement:
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
54
+ - !ruby/object:Gem::Dependency
55
+ name: stringray
56
+ type: :development
57
+ version_requirement:
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ version:
64
+ description: Mmmmagic
65
+ email:
66
+ - Refinery@elliottcable.com
67
+ executables: []
68
+
69
+ extensions:
70
+ - ext/sing/extconf.rb
71
+ extra_rdoc_files:
72
+ - ext/sing/extconf.rb
73
+ - ext/sing/sing.c
74
+ - lib/refinery/core_ext/class.rb
75
+ - lib/refinery/core_ext/object.rb
76
+ - lib/refinery.rb
77
+ - LICENSE.text
78
+ - README.markdown
79
+ files:
80
+ - ext/sing/extconf.rb
81
+ - ext/sing/sing.c
82
+ - lib/refinery/core_ext/class.rb
83
+ - lib/refinery/core_ext/object.rb
84
+ - lib/refinery.rb
85
+ - LICENSE.text
86
+ - Rakefile.rb
87
+ - README.markdown
88
+ - spec/refinery/core_ext/class_spec.rb
89
+ - spec/refinery_spec.rb
90
+ - spec/spec_helper.rb
91
+ - .manifest
92
+ - refinery.gemspec
93
+ has_rdoc: true
94
+ homepage: http://github.com/elliottcable/refinery
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --line-numbers
98
+ - --inline-source
99
+ - --title
100
+ - Refinery
101
+ - --main
102
+ - README.markdown
103
+ require_paths:
104
+ - lib
105
+ - ext
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ version:
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: "1.2"
117
+ version:
118
+ requirements: []
119
+
120
+ rubyforge_project: refinery
121
+ rubygems_version: 1.2.0
122
+ signing_key:
123
+ specification_version: 2
124
+ summary: Mmmmagic
125
+ test_files: []
126
+