elliottcable-refinery 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.
@@ -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
+