class GGem::Gem
Constants
- NoNameError
Attributes
name[R]
root_path[R]
Public Class Methods
new(path, name)
click to toggle source
# File lib/ggem/gem.rb, line 13 def initialize(path, name) raise NoNameError if name.to_s.empty? @root_path, self.name = path, name end
Public Instance Methods
module_name()
click to toggle source
# File lib/ggem/gem.rb, line 31 def module_name transforms = { "_" => "", "-" => "", } @module_name ||= transform_name(transforms, &:capitalize) end
name=(name)
click to toggle source
# File lib/ggem/gem.rb, line 27 def name=(name) @name = normalize_name(name) end
path()
click to toggle source
# File lib/ggem/gem.rb, line 23 def path File.join(@root_path, @name) end
ruby_name()
click to toggle source
# File lib/ggem/gem.rb, line 39 def ruby_name @ruby_name ||= transform_name(&:downcase) end
save!()
click to toggle source
# File lib/ggem/gem.rb, line 18 def save! GGem::Template.new(self).save self end
Private Instance Methods
normalize_name(name)
click to toggle source
# File lib/ggem/gem.rb, line 45 def normalize_name(name) und_camelcs = [/([A-Z])([a-z])/, '_\1\2'] rm_dup_und = [/_+/, "_"] rm_lead_und = [/^_/, ""] name.gsub(*und_camelcs).gsub(*rm_dup_und).sub(*rm_lead_und).downcase end
transform_name(conditions = {}, &block)
click to toggle source
# File lib/ggem/gem.rb, line 52 def transform_name(conditions = {}, &block) n = (block ? block.call(name) : name) conditions.each do |on, glue| if (a = n.split(on)).size > 1 n = a.map{ |part| block&.call(part) }.join(glue) end end n end