paranoid_starlight 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module ParanoidStarlight
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -112,24 +112,44 @@ module ParanoidStarlight
112
112
  end
113
113
 
114
114
  def convert_telephone_number(inattr, outattr = '')
115
- inattr = inattr.to_s
116
- outattr = outattr.to_s
117
-
118
- if self.respond_to? inattr.to_sym
115
+ basic_converter(self, inattr, outattr) do |telephone|
116
+ ::ParanoidStarlight::Converters.convert_telephone(
117
+ telephone,
118
+ TwitterCldr::Shared::PhoneCodes.code_for_territory(
119
+ FastGettext.locale.to_sym
120
+ )
121
+ ) rescue nil
122
+ end
123
+ end
124
+
125
+ def clean_text(inattr, outattr = '')
126
+ basic_converter(self, inattr, outattr) do |text|
127
+ text.to_s.strip.gsub(/\s{2,}/, ' ')
128
+ end
129
+ end
130
+
131
+ private
132
+ def basic_converter(obj, inattr, outattr, &code)
133
+ unless obj.respond_to? inattr.to_sym
134
+ raise("Attribute #{inattr} does not exist.")
135
+ end
136
+
119
137
  outattr = inattr if outattr == ''
120
- raise("Attribute #{outattr} does not exist.") unless self.respond_to? outattr.to_sym
138
+
139
+ unless obj.respond_to? outattr.to_sym
140
+ raise("Attribute #{outattr} does not exist.")
141
+ end
142
+
121
143
  setter = "#{outattr}=".to_sym
144
+ unless obj.respond_to? setter
145
+ raise("Setter #{setter} does not exist.")
146
+ end
122
147
 
123
- telephone = self.send(inattr.to_sym)
124
-
125
- num = ::ParanoidStarlight::Converters.convert_telephone(telephone,
126
- TwitterCldr::Shared::PhoneCodes.code_for_territory(FastGettext.locale.to_sym)
127
- ) rescue nil
148
+ to_convert = obj.send(inattr.to_sym)
149
+ unless to_convert.nil?
150
+ obj.send(setter, code.call(to_convert))
151
+ end
128
152
 
129
- self.send(setter, num) unless num.nil?
130
- else
131
- raise("Attribute #{inattr} does not exist.")
132
- end
133
153
  end
134
154
 
135
155
  end # end converters
@@ -7,6 +7,7 @@ require 'rspec'
7
7
  class Fangirl
8
8
  include ::ParanoidStarlight::Converters
9
9
  attr_accessor :telephone_from_form, :telephone
10
+ attr_accessor :text
10
11
  end
11
12
 
12
13
  describe ParanoidStarlight::Converters do
@@ -55,7 +56,7 @@ describe ParanoidStarlight::Converters do
55
56
 
56
57
  end
57
58
 
58
- describe 'convert_telephone_number' do
59
+ describe 'convert_telephone_number (for attributes)' do
59
60
  before :each do
60
61
  FastGettext.locale = 'sk'
61
62
  @test = Fangirl.new
@@ -75,7 +76,14 @@ describe ParanoidStarlight::Converters do
75
76
  @test.telephone_from_form.should == '421123456789'
76
77
  end
77
78
  end
79
+ end
78
80
 
81
+ describe 'clean_text (for attributes)' do
82
+ before { @test = Fangirl.new; @test.text = " Some \ttext. \t" }
83
+ it 'should clean text of unneccessary characters' do
84
+ @test.clean_text(:text)
85
+ @test.text.should == "Some text."
86
+ end
79
87
  end
80
88
  end
81
89
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paranoid_starlight
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
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: 2012-12-16 00:00:00.000000000 Z
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel