Class: Singer::NameTransformation
- Inherits:
-
Object
- Object
- Singer::NameTransformation
- Defined in:
- lib/singer/name_transformation.rb
Overview
transform between snakecase and camelcase, with some special rules
Constant Summary collapse
- DASHES_OPTIONS =
%w[modularize delete preserve].freeze
Class Method Summary collapse
Class Method Details
.encase_name(name) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/singer/name_transformation.rb', line 6 def self.encase_name(name) Singer.configuration.project_name_original = name Singer.configuration.project_name_snakecase = name.gsub(/(\w)([A-Z])/){ "#{$1}_#{$2}" }.gsub(/_+/, '_').downcase camelcase = Singer.configuration.project_name_snakecase.split('_').map(&:capitalize).join Singer.configuration.project_name_camelcase = treat_dashes_in_name(camelcase) end |
.treat_dashes_in_name(camelcase) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/singer/name_transformation.rb', line 13 def self.treat_dashes_in_name(camelcase) case Singer.configuration.dashes when 'modularize' camelcase.gsub(/([[:alnum:]])-+([[:alnum:]])/){ "#{$1}::#{$2.upcase}" } when 'delete' camelcase.delete('-') when 'preserve' camelcase else raise ParameterValueUnsupported, "Unsupported value #{Singer.configuration.dashes.inspect} for --dashes option" end end |