yeti 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/yeti/editor.rb CHANGED
@@ -101,13 +101,13 @@ module Yeti
101
101
  def #{name}
102
102
  unless defined? @#{name}
103
103
  opts = self.class.attribute_options[:#{name}]
104
- @#{name} = format_input #{from}, opts
104
+ @#{name} = format_output #{from}, opts
105
105
  end
106
106
  @#{name}
107
107
  end
108
108
  def #{name}=(value)
109
109
  opts = self.class.attribute_options[:#{name}]
110
- value = format_output value, opts
110
+ value = format_input value, opts
111
111
  return if value==#{name}
112
112
  #{name}_will_change!
113
113
  @#{name} = value
@@ -134,11 +134,12 @@ module Yeti
134
134
  end
135
135
 
136
136
  def format_input(value, attribute_opts)
137
- value.to_s if value
137
+ value = value.clean.strip if value.respond_to? :clean
138
+ value
138
139
  end
139
140
 
140
141
  def format_output(value, attribute_opts)
141
- value.to_s.clean.strip if value
142
+ value
142
143
  end
143
144
 
144
145
  end
data/lib/yeti/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yeti
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -123,11 +123,11 @@ describe ::Yeti::Editor do
123
123
  context "new record" do
124
124
  its(:id){ should be_nil }
125
125
  its(:name){ should be_nil }
126
- it "#name= converts input to string" do
126
+ it "#name= don't touch value if it's not a string" do
127
127
  subject.name = ["test"]
128
- subject.name.should == "[\"test\"]"
128
+ subject.name.should == ["test"]
129
129
  end
130
- it "#name= cleans the value of any harmful content" do
130
+ it "#name= cleans the value of harmful content if it's a string" do
131
131
  subject.name = "\tInfected\210\004"
132
132
  subject.name.should == "Infected"
133
133
  end
@@ -206,15 +206,15 @@ describe ::Yeti::Editor do
206
206
  subject.name.should == "Anthony"
207
207
  end
208
208
  it{ should be_valid }
209
- it "input formatting can be customized" do
210
- subject.stub(:format_input).with("Anthony", {
209
+ it "output formatting can be customized" do
210
+ subject.stub(:format_output).with("Anthony", {
211
211
  attribute_name: :name,
212
212
  from: :edited,
213
213
  }).and_return(expected = mock)
214
214
  subject.name.should be expected
215
215
  end
216
- it "output formatting can be customized" do
217
- subject.stub(:format_output).with("Tony", {
216
+ it "input formatting can be customized" do
217
+ subject.stub(:format_input).with("Tony", {
218
218
  attribute_name: :name,
219
219
  from: :edited,
220
220
  }).and_return(expected = mock)
@@ -264,7 +264,7 @@ describe ::Yeti::Editor do
264
264
  subject.timestamp.should == "2001-01-01"
265
265
  end
266
266
  it "attribute value can come from specified method on another object" do
267
- subject.related_id.should == "2"
267
+ subject.related_id.should == 2
268
268
  end
269
269
  it "attribute raises if value cannot be found in source" do
270
270
  lambda{ subject.invalid }.should raise_error NoMethodError
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yeti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
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-28 00:00:00.000000000 Z
12
+ date: 2013-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -116,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
116
  version: '0'
117
117
  segments:
118
118
  - 0
119
- hash: 2568117032009414659
119
+ hash: -227008563247670147
120
120
  required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  segments:
127
127
  - 0
128
- hash: 2568117032009414659
128
+ hash: -227008563247670147
129
129
  requirements: []
130
130
  rubyforge_project:
131
131
  rubygems_version: 1.8.23