Sha256: 33f90a7e526e8fca84bf60fe9bab7020f757781c4626780b9d16f5ff9353026f
Contents?: true
Size: 745 Bytes
Versions: 3
Compression:
Stored size: 745 Bytes
Contents
module Cucumber module Constantize def constantize(camel_cased_word) begin names = camel_cased_word.split('::') names.shift if names.empty? || names.first.empty? constant = Object names.each do |name| constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name) end constant rescue NameError require underscore(camel_cased_word) retry end end # Snagged from active_support def underscore(camel_cased_word) camel_cased_word.to_s.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end end end
Version data entries
3 entries across 3 versions & 3 rubygems
Version | Path |
---|---|
aslakhellesoy-cucumber-0.3.96 | lib/cucumber/constantize.rb |
kosmas58-cucumber-0.3.96 | lib/cucumber/constantize.rb |
cucumber-0.3.96 | lib/cucumber/constantize.rb |