morph 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/CHANGELOG +4 -0
  2. data/README +106 -108
  3. data/lib/morph.rb +14 -10
  4. data/morph.gemspec +12 -16
  5. data/spec/morph_spec.rb +74 -158
  6. metadata +11 -6
data/CHANGELOG CHANGED
@@ -1 +1,5 @@
1
+ v0.1.2. fixed problems in packaging of v0.1.1 gem
2
+
3
+ v0.1.1. calling unknown reader method no longer adds accessor methods to class
4
+
1
5
  v0.1.0. initial release
data/README CHANGED
@@ -1,155 +1,153 @@
1
1
  Morph allows you to emerge class definitions via calling assignment methods.
2
2
  Mix with Hpricot for screen scrapping fun.
3
3
 
4
+ == Morph example
5
+
4
6
  Here's example code showing Morph playing with Hpricot:
5
7
 
6
- require 'hpricot'; require 'open-uri'; require 'morph'
8
+ require 'hpricot'; require 'open-uri'; require 'morph'
7
9
 
8
- class Hubbit
9
- include Morph # allows class to morph
10
+ class Hubbit
11
+ include Morph # allows class to morph
10
12
 
11
- def initialize name
12
- doc = Hpricot open("http://github.com/#{name}")
13
+ def initialize name
14
+ doc = Hpricot open("http://github.com/#{name}")
13
15
 
14
- (doc/'label').collect do |node|
15
- label = node.inner_text
16
- value = node.next_sibling.inner_text.strip
16
+ (doc/'label').collect do |node|
17
+ label = node.inner_text
18
+ value = node.next_sibling.inner_text.strip
17
19
 
18
- morph(label, value) # morph magic happening here!
19
- end
20
- end
21
- end
20
+ morph(label, value) # morph magic happening here!
21
+ end
22
+ end
23
+ end
22
24
 
23
- def Hubbit name; Hubbit.new name; end
25
+ def Hubbit name; Hubbit.new name; end
24
26
 
25
27
 
26
28
  The model emerges from the data. Let's start by looking up 'why':
27
29
 
28
- why = Hubbit 'why'
30
+ why = Hubbit 'why'
29
31
 
30
32
  What new methods do we have?
31
33
 
32
- Hubbit.morph_methods # => ["email", "email=", "name", "name="]
34
+ Hubbit.morph_methods # => ["email", "email=", "name", "name="]
33
35
 
34
36
  Ah-ha, so we have a name attribute now:
35
37
 
36
- why.name #=> "why the lucky stiff"
38
+ why.name #=> "why the lucky stiff"
37
39
 
38
40
 
39
41
  Let's add some of why's projects:
40
42
 
41
- why.projects = %w[shoes hacketyhack camping hoodwinkd hpricot markaby
42
- mousehole parkplace poignant sandbox]
43
+ why.projects = %w[shoes hacketyhack camping hoodwinkd hpricot markaby mousehole parkplace poignant sandbox]
43
44
 
44
45
  That why's a productive fellow! Note new accessor methods have been added:
45
46
 
46
- Hubbit.morph_methods # => ["email", "email=", "name", "name=",
47
- "projects", "projects="]
47
+ Hubbit.morph_methods # => ["email", "email=", "name", "name=", "projects", "projects="]
48
48
 
49
49
 
50
50
  Let's do some more morphing:
51
51
 
52
- dhh = Hubbit 'dhh'
52
+ dhh = Hubbit 'dhh'
53
53
 
54
54
  Do we have more methods now?
55
55
 
56
- Hubbit.morph_methods # => ["blog", "blog=", "company", "company=",
57
- "email", "email=", "location", "location="
58
- "name", "name=", "projects", "projects="]
56
+ Hubbit.morph_methods # => ["blog", "blog=", "company", "company=", "email", "email=", "location", "location=" "name", "name=", "projects", "projects="]
59
57
 
60
58
  So, a new company method has appeared:
61
59
 
62
- dhh.company #=> "37signals"
60
+ dhh.company #=> "37signals"
63
61
 
64
62
 
65
63
  Time to print the nascent attribute definitions:
66
64
 
67
- puts Hubbit.print_morph_methods
65
+ puts Hubbit.print_morph_methods
68
66
 
69
- # attr_accessor :name
70
- # attr_accessor :email
71
- # attr_accessor :blog
72
- # attr_accessor :company
73
- # attr_accessor :location
74
- # attr_accessor :projects
67
+ # attr_accessor :name
68
+ # attr_accessor :email
69
+ # attr_accessor :blog
70
+ # attr_accessor :company
71
+ # attr_accessor :location
72
+ # attr_accessor :projects
75
73
 
76
74
 
77
75
  See examples/ directory for more example code.
78
76
  See LICENSE for the terms of this software.
79
77
 
80
- ,
81
- ?7+~::+II~
82
- ?7: ,:+7
83
- 777IIII777? 7: :?7
84
- =I= I: 7? ,+7
85
- I? ,, 77 7: :I
86
- = ?7777 77 7 7 7+, :7
87
- 7 777777 ~77+=77 I+ I? ,7
88
- :7 77 ~77 I I7 7 ?: ?
89
- I 77 7, 7 7 :I I ?
90
- 7 ?77=7~ 77777 7 ~+ ,+
91
- 7~ 7 :I7?~ 7
92
- =? 7 ?I ~I77= I=
93
- 7 ? :, 7 I7777, 7 7
94
- ? 777?~~7777+ 7 7~ 7
95
- ?7 ,777777=, ,7 7 ,7
96
- 7= , =7 7: 7
97
- +7 :7 7 ,I
98
- :7 ?~ 7? 7
99
- 7 7 ~II7~, 7
100
- 7 7 , =7777777?+,,, I=
101
- :7, ~==, 7
102
- II~,, 77~
103
- ,I? +777
104
- 7+, ~7777:
105
- == :77
106
- :7: ,7I
107
- 7I 7
108
- I ,7, 7
109
- =7 77=7 7
110
- ,7 7I 7 7
111
- I, I7 7 7
112
- ?, ,7 7, 7
113
- 7 7~ 7, 7
114
- 7 ,7I 7 7
115
- =+ =7 7 ~=
116
- =7 7, 7 7
117
- ,7, ~7IIII7+, 7
118
- +: II I
119
- ?7 I? +~
120
- II, +I 7
121
- ~7 ,I 7
122
- 7= ~7 7
123
- ?7, ~7+ ?~
124
- ~7777I= ,7
125
- 7: 7
126
- I 7
127
- I ,:77I 7
128
- I :7 I
129
- I =~
130
- 7 , ,7
131
- +, 7 : ,7
132
- + 7 + 7
133
- + 7 + ,7
134
- 7 I ? ,7
135
- 7 +: 7 ,7
136
- 7 =+ 7 ,7
137
- 7 :I I ,7
138
- 7 :I 7 7
139
- 7 :I I 7
140
- I, ,7 I: 7
141
- =+ ,7 ? 7
142
- :?, ,7 7, 7
143
- I: ,7 7, ?
144
- :7 ,7 7, ,
145
- +I, : ? ,=
146
- += ~ =~ 7
147
- :II,, = I ?
148
- =I= ? 7, :7
149
- II~ I 7, ,II
150
- 7~ ~7 7 ,=7
151
- = =7 I, ::
152
- 77II?==?II777777777777777 7~ 7
153
- 77+,, 7:
154
- 777777+:,~777
155
-
78
+ . ,
79
+ . ?7+~::+II~
80
+ . ?7: ,:+7
81
+ . 777IIII777? 7: :?7
82
+ . =I= I: 7? ,+7
83
+ . I? ,, 77 7: :I
84
+ . = ?7777 77 7 7 7+, :7
85
+ . 7 777777 ~77+=77 I+ I? ,7
86
+ . :7 77 ~77 I I7 7 ?: ?
87
+ . I 77 7, 7 7 :I I ?
88
+ . 7 ?77=7~ 77777 7 ~+ ,+
89
+ . 7~ 7 :I7?~ 7
90
+ . =? 7 ?I ~I77= I=
91
+ . 7 ? :, 7 I7777, 7 7
92
+ . ? 777?~~7777+ 7 7~ 7
93
+ . ?7 ,777777=, ,7 7 ,7
94
+ . 7= , =7 7: 7
95
+ . +7 :7 7 ,I
96
+ . :7 ?~ 7? 7
97
+ . 7 7 ~II7~, 7
98
+ . 7 7 , =7777777?+,,, I=
99
+ . :7, ~==, 7
100
+ . II~,, 77~
101
+ . ,I? +777
102
+ . 7+, ~7777:
103
+ . == :77
104
+ . :7: ,7I
105
+ . 7I 7
106
+ . I ,7, 7
107
+ . =7 77=7 7
108
+ . ,7 7I 7 7
109
+ . I, I7 7 7
110
+ . ?, ,7 7, 7
111
+ . 7 7~ 7, 7
112
+ . 7 ,7I 7 7
113
+ . =+ =7 7 ~=
114
+ . =7 7, 7 7
115
+ . ,7, ~7IIII7+, 7
116
+ . +: II I
117
+ . ?7 I? +~
118
+ . II, +I 7
119
+ . ~7 ,I 7
120
+ . 7= ~7 7
121
+ . ?7, ~7+ ?~
122
+ . ~7777I= ,7
123
+ . 7: 7
124
+ . I 7
125
+ . I ,:77I 7
126
+ . I :7 I
127
+ . I =~
128
+ . 7 , ,7
129
+ . +, 7 : ,7
130
+ . + 7 + 7
131
+ . + 7 + ,7
132
+ . 7 I ? ,7
133
+ . 7 +: 7 ,7
134
+ . 7 =+ 7 ,7
135
+ . 7 :I I ,7
136
+ . 7 :I 7 7
137
+ . 7 :I I 7
138
+ . I, ,7 I: 7
139
+ . =+ ,7 ? 7
140
+ . :?, ,7 7, 7
141
+ . I: ,7 7, ?
142
+ . :7 ,7 7, ,
143
+ . +I, : ? ,=
144
+ . += ~ =~ 7
145
+ . :II,, = I ?
146
+ . =I= ? 7, :7
147
+ . II~ I 7, ,II
148
+ . 7~ ~7 7 ,=7
149
+ . = =7 I, ::
150
+ . 77II?==?II777777777777777 7~ 7
151
+ . 77+,, 7:
152
+ . 777777+:,~777
153
+ .
data/lib/morph.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Morph
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
 
4
4
  def self.included(base)
5
5
  base.extend ClassMethods
@@ -64,18 +64,22 @@ module Morph
64
64
  end
65
65
 
66
66
  def method_missing symbol, *args
67
- attribute = symbol.to_s.chomp '='
68
- if Object.instance_methods.include?(attribute)
69
- raise "'#{attribute}' is an instance_method on Object, cannot create accessor methods for '#{attribute}'"
70
- else
71
- is_writer = symbol.to_s =~ /=\Z/
72
- if is_writer
67
+ is_writer = symbol.to_s =~ /=\Z/
68
+
69
+ if is_writer
70
+ attribute = symbol.to_s.chomp '='
71
+ if Object.instance_methods.include?(attribute)
72
+ raise "'#{attribute}' is an instance_method on Object, cannot create accessor methods for '#{attribute}'"
73
+ elsif args.size > 0
73
74
  value = args[0]
74
75
  empty_value = (value.nil? or (value.is_a?(String) && value.strip.size == 0))
75
- return if empty_value
76
+ unless empty_value
77
+ self.class.morph_accessor attribute.to_sym
78
+ send(symbol, *args)
79
+ end
76
80
  end
77
- self.class.morph_accessor attribute.to_sym
78
- send(symbol, *args)
81
+ else
82
+ super
79
83
  end
80
84
  end
81
85
  end
data/morph.gemspec CHANGED
@@ -1,20 +1,21 @@
1
1
 
2
- # Gem::Specification for Morph-0.1.0
2
+ # Gem::Specification for Morph-0.1.2
3
3
  # Originally generated by Echoe
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = %q{morph}
7
- s.version = "0.1.0"
7
+ s.version = "0.1.2"
8
8
 
9
9
  s.specification_version = 2 if s.respond_to? :specification_version=
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
11
  s.authors = ["Rob McKinnon"]
13
- s.date = %q{2008-03-24}
12
+ s.date = %q{2008-03-25}
14
13
  s.description = %q{Morph allows you to emerge class definitions via calling assignment methods.}
15
14
  s.email = ["rob ~@nospam@~ rubyforge.org"]
16
15
  s.files = ["CHANGELOG", "examples/forger.rb", "examples/hubbit.rb", "lib/morph.rb", "LICENSE", "README", "spec/morph_spec.rb", "spec/spec.opts", "Manifest", "morph.gemspec"]
17
16
  s.has_rdoc = true
17
+ s.rdoc_options += ['--quiet', '--inline-source', '--main', 'README']
18
+ s.extra_rdoc_files = ["README", "CHANGELOG", "LICENSE"]
18
19
  s.homepage = %q{}
19
20
  s.require_paths = ["lib"]
20
21
  s.rubyforge_project = %q{morph}
@@ -32,11 +33,13 @@ end
32
33
  # begin
33
34
  # require 'echoe'
34
35
  #
35
- # Echoe.new("morph", Morph::VERSION) do |morph|
36
- # morph.author = ["Rob McKinnon"]
37
- # morph.email = ["rob ~@nospam@~ rubyforge.org"]
38
- # morph.description = File.readlines("README").first
39
- # morph.rubyforge_name = "morph"
36
+ # Echoe.new("morph", Morph::VERSION) do |m|
37
+ # m.author = ["Rob McKinnon"]
38
+ # m.email = ["rob ~@nospam@~ rubyforge.org"]
39
+ # m.description = File.readlines("README").first
40
+ # m.rubyforge_name = "morph"
41
+ # m.rdoc_options << '--inline-source'
42
+ # m.rdoc_pattern = ["README", "CHANGELOG", "LICENSE", "lib/*"]
40
43
  # end
41
44
  #
42
45
  # rescue LoadError
@@ -47,10 +50,3 @@ end
47
50
  # task :console do
48
51
  # sh "irb -rubygems -r ./lib/morph.rb"
49
52
  # end
50
- #
51
- # desc "Run spec runner"
52
- # task(:test) do
53
- # files = FileList['spec/**/*_spec.rb']
54
- # Spec::Runner::CommandLine.run(rspec_options)
55
- # system "ruby spec/spec_runner.rb #{files} --format specdoc"
56
- # end
data/spec/morph_spec.rb CHANGED
@@ -1,135 +1,64 @@
1
- $KCODE = "u"
2
-
3
1
  require File.dirname(__FILE__) + '/../lib/morph'
2
+ require File.dirname(__FILE__) + '/morph_spec_helper'
4
3
 
5
- module MorphSpecHelperMethods
6
-
7
- def initialize_morph_class
8
- @morphed_class = eval 'class ExampleMorph; include Morph; end'
9
- end
10
-
11
- def initialize_morph
12
- initialize_morph_class
13
- @original_instance_methods = @morphed_class.instance_methods
14
- @morph = @morphed_class.new
15
- end
16
-
17
- def remove_morph_methods
18
- @morphed_class.instance_methods.each do |method|
19
- @morphed_class.class_eval "remove_method :#{method}" unless @original_instance_methods.include?(method)
20
- end
21
- end
22
-
23
- def instance_methods
24
- @morphed_class.instance_methods
25
- end
26
-
27
- def morph_methods
28
- @morphed_class.morph_methods
29
- end
30
-
31
- def check_convert_to_morph_method_name label, method_name
32
- initialize_morph_class
33
- @morphed_class.convert_to_morph_method_name(label).should == method_name
34
- end
35
- end
36
-
37
- describe "class with generated accessor methods added", :shared => true do
38
-
39
- include MorphSpecHelperMethods
40
- before :all do initialize_morph; end
41
- after :all do remove_morph_methods; end
42
-
43
- it 'should add reader method to class instance_methods list' do
44
- instance_methods.include?(@attribute).should == true
45
- end
46
4
 
47
- it 'should add writer method to class instance_methods list' do
48
- instance_methods.include?("#{@attribute}=").should == true
49
- end
50
-
51
- it 'should add reader method to class morph_methods list' do
52
- morph_methods.include?(@attribute).should == true
53
- end
54
-
55
- it 'should add writer method to class morph_methods list' do
56
- morph_methods.include?("#{@attribute}=").should == true
5
+ describe Morph, "when writer method that didn't exist before is called with non-nil value" do
6
+ before :each do
7
+ remove_morph_methods
8
+ @quack = 'quack'
9
+ @morph.noise= @quack
10
+ @attribute = 'noise'
11
+ @expected_morph_methods_count = 2
57
12
  end
58
13
 
59
- it 'should only have generated accessor methods in morph_methods list' do
60
- morph_methods.size.should == @expected_morph_methods_count
61
- end
14
+ it_should_behave_like "class with generated accessor methods added"
62
15
 
63
- it 'should be able to print morph method declarations' do
64
- @morphed_class.print_morph_methods.should == %Q|attr_accessor :#{@attribute}|
16
+ it 'should return assigned value when reader method called' do
17
+ @morph.noise.should == @quack
65
18
  end
66
19
  end
67
20
 
68
- describe "class without generated accessor methods added", :shared => true do
69
- include MorphSpecHelperMethods
70
-
71
- before :all do
72
- initialize_morph
73
- end
74
-
75
- after :all do
21
+ describe Morph, "when writer method that didn't exist before is called with nil value" do
22
+ before :each do
76
23
  remove_morph_methods
24
+ @morph.noise= nil
25
+ @attribute = 'noise'
77
26
  end
78
27
 
79
- it 'should not add reader method to class instance_methods list' do
80
- instance_methods.include?(@attribute).should == false
81
- end
82
-
83
- it 'should not add writer method to class instance_methods list' do
84
- instance_methods.include?("#{@attribute}=").should == false
85
- end
86
-
87
- it 'should not add reader method to class morph_methods list' do
88
- morph_methods.include?(@attribute).should == false
89
- end
90
-
91
- it 'should not add writer method to class morph_methods list' do
92
- morph_methods.include?("#{@attribute}=").should == false
93
- end
94
-
95
- it 'should have empty morph_methods list' do
96
- morph_methods.size.should == 0
97
- end
28
+ it_should_behave_like "class without generated accessor methods added"
98
29
  end
99
30
 
100
- describe Morph, "when reader method that didn't exist before is called" do
31
+ describe Morph, "when writer method that didn't exist before is called with blank space attribute value" do
101
32
  before :each do
102
33
  remove_morph_methods
103
- @morph.noise
34
+ @morph.noise= ' '
104
35
  @attribute = 'noise'
105
- @expected_morph_methods_count = 2
106
36
  end
107
37
 
108
- it_should_behave_like "class with generated accessor methods added"
109
-
110
- it 'should return nil if reader is called' do
111
- @morph.noise.should == nil
112
- end
38
+ it_should_behave_like "class without generated accessor methods added"
113
39
  end
114
40
 
115
- describe Morph, "when writer method that didn't exist before is called with non-nil value" do
41
+
42
+ describe Morph, 'when morph method used to set attribute value' do
43
+
116
44
  before :each do
117
45
  remove_morph_methods
118
- @quack = 'quack'
119
- @morph.noise= @quack
120
- @attribute = 'noise'
46
+ @value = '20 Mar 2008'
47
+ @morph.morph('Reading', @value)
48
+ @attribute = 'reading'
121
49
  @expected_morph_methods_count = 2
122
50
  end
123
51
 
124
52
  it_should_behave_like "class with generated accessor methods added"
125
53
 
126
54
  it 'should return assigned value when reader method called' do
127
- @morph.noise.should == @quack
55
+ @morph.reading.should == @value
128
56
  end
129
57
  end
130
58
 
131
- describe Morph, "when writer method that didn't exist before is in unicode" do
59
+ describe Morph, "when morph method used to set unicode attribute name with a value" do
132
60
  before :each do
61
+ $KCODE = "u"
133
62
  remove_morph_methods
134
63
  @age = 19
135
64
  @attribute = "年龄"
@@ -137,6 +66,10 @@ describe Morph, "when writer method that didn't exist before is in unicode" do
137
66
  @expected_morph_methods_count = 2
138
67
  end
139
68
 
69
+ after :all do
70
+ $KCODE = "NONE"
71
+ end
72
+
140
73
  it_should_behave_like "class with generated accessor methods added"
141
74
 
142
75
  it 'should return assigned value when reader method called' do
@@ -144,16 +77,6 @@ describe Morph, "when writer method that didn't exist before is in unicode" do
144
77
  end
145
78
  end
146
79
 
147
- describe Morph, "when writer method that didn't exist before is called with nil value" do
148
- before :each do
149
- remove_morph_methods
150
- @morph.morph('Pizza', nil)
151
- @attribute = 'pizza'
152
- end
153
-
154
- it_should_behave_like "class without generated accessor methods added"
155
- end
156
-
157
80
  describe Morph, 'when morph method used to set blank space attribute value' do
158
81
  before :each do
159
82
  remove_morph_methods
@@ -175,47 +98,27 @@ describe Morph, 'when morph method used to set nil attribute value' do
175
98
  end
176
99
 
177
100
 
178
- describe Morph, 'when remove_morph_writers is called after a generated method has been added' do
101
+ describe Morph, "when reader method that didn't exist before is called" do
179
102
 
180
103
  include MorphSpecHelperMethods
181
- before :all do initialize_morph; end
182
- after :all do remove_morph_methods; end
183
-
184
- before :each do
185
- remove_morph_methods
186
- @morph.noise= 'quack'
187
- @attribute = 'noise'
188
- @morphed_class.remove_morph_writers
189
- end
190
-
191
- it 'should remove a morph generated writer method from morph_methods list' do
192
- morph_methods.include?('noise=').should == false
193
- morph_methods.size.should == 1
194
- end
195
-
196
- it 'should remove a morph generated writer method from class instance_methods list' do
197
- instance_methods.include?('noise=').should == false
198
- end
199
104
 
200
- it 'should be able to print morph method declarations' do
201
- @morphed_class.print_morph_methods.should == %Q|attr_reader :#{@attribute}|
105
+ it 'should raise NoMethodError' do
106
+ initialize_morph
107
+ lambda { @morph.noise }.should raise_error(/undefined method `noise'/)
202
108
  end
203
-
204
109
  end
205
110
 
206
- describe Morph, "when reader method called is a class method" do
111
+ describe Morph, "when reader method called that didn't exist before is a class method" do
207
112
 
208
- before :each do
209
- remove_morph_methods
210
- @morph.name
211
- @attribute = 'name'
212
- @expected_morph_methods_count = 2
213
- end
113
+ include MorphSpecHelperMethods
214
114
 
215
- it_should_behave_like "class with generated accessor methods added"
115
+ it 'should raise NoMethodError' do
116
+ initialize_morph
117
+ lambda { @morph.name }.should raise_error(/undefined method `name'/)
118
+ end
216
119
  end
217
120
 
218
- describe Morph, "when writer method called is a class method" do
121
+ describe Morph, "when writer method called matches a class reader method" do
219
122
 
220
123
  before :each do
221
124
  remove_morph_methods
@@ -232,6 +135,7 @@ describe Morph, "when writer method called is a class method" do
232
135
  end
233
136
  end
234
137
 
138
+
235
139
  describe Morph, "when class= is called" do
236
140
 
237
141
  include MorphSpecHelperMethods
@@ -247,6 +151,36 @@ describe Morph, "when class= is called" do
247
151
  end
248
152
  end
249
153
 
154
+
155
+ describe Morph, 'when remove_morph_writers is called after a generated method has been added' do
156
+
157
+ include MorphSpecHelperMethods
158
+ before :all do initialize_morph; end
159
+ after :all do remove_morph_methods; end
160
+
161
+ before :each do
162
+ remove_morph_methods
163
+ @morph.noise= 'quack'
164
+ @attribute = 'noise'
165
+ @morphed_class.remove_morph_writers
166
+ end
167
+
168
+ it 'should remove a morph generated writer method from morph_methods list' do
169
+ morph_methods.include?('noise=').should == false
170
+ morph_methods.size.should == 1
171
+ end
172
+
173
+ it 'should remove a morph generated writer method from class instance_methods list' do
174
+ instance_methods.include?('noise=').should == false
175
+ end
176
+
177
+ it 'should be able to print morph method declarations' do
178
+ @morphed_class.print_morph_methods.should == %Q|attr_reader :#{@attribute}|
179
+ end
180
+
181
+ end
182
+
183
+
250
184
  describe Morph, "when converting label text to morph method name" do
251
185
 
252
186
  include MorphSpecHelperMethods
@@ -288,21 +222,3 @@ describe Morph, "when converting label text to morph method name" do
288
222
  check_convert_to_morph_method_name '年龄', '年龄'
289
223
  end
290
224
  end
291
-
292
- describe Morph, 'when morph method used to set attribute value and attribute name ends with colon' do
293
-
294
- before :each do
295
- remove_morph_methods
296
- @value = '20 Mar 2008'
297
- @morph.morph('First reading : ', @value)
298
- @attribute = 'first_reading'
299
- @expected_morph_methods_count = 2
300
- end
301
-
302
- it_should_behave_like "class with generated accessor methods added"
303
-
304
- it 'should return assigned value when reader method called' do
305
- @morph.first_reading.should == @value
306
- end
307
- end
308
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob McKinnon
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-24 00:00:00 +00:00
12
+ date: 2008-03-25 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -20,8 +20,10 @@ executables: []
20
20
 
21
21
  extensions: []
22
22
 
23
- extra_rdoc_files: []
24
-
23
+ extra_rdoc_files:
24
+ - README
25
+ - CHANGELOG
26
+ - LICENSE
25
27
  files:
26
28
  - CHANGELOG
27
29
  - examples/forger.rb
@@ -36,8 +38,11 @@ files:
36
38
  has_rdoc: true
37
39
  homepage: ""
38
40
  post_install_message:
39
- rdoc_options: []
40
-
41
+ rdoc_options:
42
+ - --quiet
43
+ - --inline-source
44
+ - --main
45
+ - README
41
46
  require_paths:
42
47
  - lib
43
48
  required_ruby_version: !ruby/object:Gem::Requirement