lib/ruby_ext/string.rb in ruby-ext-0.2.16 vs lib/ruby_ext/string.rb in ruby-ext-0.4.0
- old
+ new
@@ -1,26 +1,36 @@
String.class_eval do
- def to_reader
- self.to_sym
- end
-
- def to_writer
- "#{self}=".to_sym
- end
-
- def to_iv
- "@#{self}"
- end
-
+ def to_reader
+ self.to_sym
+ end
+
+ def to_writer
+ "#{self}=".to_sym
+ end
+
+ def to_iv
+ "@#{self}"
+ end
+
def interpolate binding
- binding.should! :be_a, Binding
+ binding.must_be.a Binding
return gsub(/\#\{.+?\}/) do |term|
identifier = term.slice(2 .. term.size-2)
binding.eval identifier
end
end
def self.secure_token
original = [Time.now, (1..10).map{ rand.to_s }]
Digest::SHA1.hexdigest(original.flatten.join('--'))
+ end
+
+ def underscore
+ word = self.dup
+ word.gsub!(/::/, '/')
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
+ word.tr!("-", "_")
+ word.downcase!
+ word
end
end
\ No newline at end of file