class Blam
Public Class Methods
source_root()
click to toggle source
# File lib/blam.rb, line 18 def self.source_root File.dirname(__FILE__) end
Public Instance Methods
create_source_file()
click to toggle source
# File lib/blam.rb, line 30 def create_source_file dir = opts[:source_dir] @class_parts = name.split('::') file_name = "#{dir}/#{get_path(name)}.rb" if @class_parts.count == 1 template('templates/module.tt', file_name) unless File.exists?(file_name) else template('templates/source.tt', file_name) unless File.exists?(file_name) end end
create_test_file()
click to toggle source
# File lib/blam.rb, line 41 def create_test_file if opts[:no_tests] puts 'Skipped the tests, you lazy piece of shit!' else dirs = [opts[:tests_dir]] test_suffix = opts[:test_suffix] test_template = test_suffix == 'spec' ? 'rspec' : 'test' dirs.concat opts[:additional_test_dirs] if opts[:additional_test_dirs] && !opts[:just_unit] dirs.each do |dir| @name = name @path = get_path(name) file_name = "#{dir}/#{get_path(name)}_#{test_suffix}.rb" template("templates/#{test_template}.tt", file_name) unless File.exists?(file_name) end end end
init()
click to toggle source
# File lib/blam.rb, line 22 def init if name == '--init' file_name = '.blam' template('templates/blam.tt', file_name) unless File.exists?(file_name) exit(0) end end
Private Instance Methods
get_path(name)
click to toggle source
# File lib/blam.rb, line 60 def get_path(name) name.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z])/, '\1_\2').tr('-', '_').downcase end
opts()
click to toggle source
# File lib/blam.rb, line 64 def opts default_opts = { source_dir: 'lib', tests_dir: 'spec', test_suffix: 'spec' } cli_opts = symbolize(options) return default_opts.merge(cli_opts) unless File.exists?('.blam') raw_file_opts = ::YAML.load_file('.blam') || {} file_opts = symbolize(raw_file_opts) default_opts.merge(file_opts).merge(cli_opts) end
symbolize(hash)
click to toggle source
# File lib/blam.rb, line 73 def symbolize(hash) new_hash = {} hash.each do |key, value| new_hash[key.to_sym] = value end new_hash end