Module: Singer

Defined in:
lib/singer.rb,
lib/singer/paths.rb,
lib/singer/version.rb,
lib/singer/template.rb,
lib/singer/configuration.rb,
lib/singer/option_parsing.rb,
lib/singer/templating_methods.rb,
lib/singer/name_transformation.rb

Overview

main module, has ‘.configuration` reader

Defined Under Namespace

Classes: Configuration, Error, NameMissingError, NameTransformation, OptionParsing, ParameterValueUnsupported, Paths, Template, TemplateUnknown, TemplatingMethods

Constant Summary collapse

DEFAULT_TEMPLATE_NAME =
'tdd'.freeze
VERSION =
'2.3.0'.freeze
CONFIGURATION_VARIABLES_FORBIDDEN_IN_PATHS =
%w[template_file_name_actual].freeze

Class Method Summary collapse

Class Method Details

.configurationObject



13
14
15
# File 'lib/singer/configuration.rb', line 13

def self.configuration
	@configuration ||= Configuration.new
end

.configure_and_generate(argvies) ⇒ Object



18
19
20
21
22
23
# File 'lib/singer.rb', line 18

def self.configure_and_generate(argvies)
	Singer::OptionParsing.configure(argvies)
	configure_project_name(argvies)
	configure_template(argvies)
	Singer.generate
end

.configure_project_name(argvies) ⇒ Object

Raises:



25
26
27
28
29
# File 'lib/singer.rb', line 25

def self.configure_project_name(argvies)
	raise NameMissingError, 'Missing mandatory argument PROJECT_NAME' if argvies.empty?

	NameTransformation.encase_name(argvies.pop)
end

.configure_template(argvies) ⇒ Object

Raises:



32
33
34
35
36
37
38
39
# File 'lib/singer.rb', line 32

def self.configure_template(argvies)
	return if configuration.template_name # must have been set via --template-directory

	configuration.template_name = argvies.pop || DEFAULT_TEMPLATE_NAME
	return if Template.all.key?(configuration.template_name)

	raise TemplateUnknown, "Template #{configuration.template_name.inspect} not found"
end

.generateObject



41
42
43
# File 'lib/singer.rb', line 41

def self.generate
	Template.all[configuration.template_name].generate('.')
end