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