Module: Cucumber::Constantize
- Included in:
- Cucumber::Cli::Configuration, StepMother
- Defined in:
- lib/cucumber/constantize.rb
Overview
:nodoc:
Instance Method Summary collapse
- #constantize(camel_cased_word) ⇒ Object
-
#underscore(camel_cased_word) ⇒ Object
Snagged from active_support.
Instance Method Details
#constantize(camel_cased_word) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/cucumber/constantize.rb', line 3 def constantize(camel_cased_word) try = 0 begin try += 1 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 => e require underscore(camel_cased_word) if try < 2 retry else raise e end end end |
#underscore(camel_cased_word) ⇒ Object
Snagged from active_support
26 27 28 29 30 31 32 |
# File 'lib/cucumber/constantize.rb', line 26 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 |