Sha256: ded6eef69e047f009328530f2f81f6dc0757531ca50e0797295dafda65ebca99
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
require 'fileutils' require 'ggem/template' module GGem class Gem attr_reader :root_path, :name def initialize(path, name) @root_path = path self.name = name end def path File.join(root_path, name) end def name=(name) @name = name. gsub(/([A-Z])([a-z])/, '_\1\2'). gsub(/_+/, '_'). sub(/^_/, ''). downcase end def module_name @module_name ||= transform_name({ '_' => '', '-' => '::' }) {|part| part.capitalize } end def ruby_name @ruby_name ||= transform_name({ '-' => '/' }) {|part| part.downcase } end def save Template.new(self).tap do |t| t.save t.init end end private def transform_name(conditions, &block) n = (block ? block.call(self.name) : self.name) conditions.each do |on, glue| if (a = n.split(on)).size > 1 n = a.collect do |part| block.call(part) if block end.join(glue) end end n end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ggem-1.2.1 | lib/ggem/gem.rb |
ggem-1.2.0 | lib/ggem/gem.rb |