class Dry::Web::Roda::Generate
Constants
- SOURCE_DIR
- TEMPLATES_DIR
Attributes
processor[R]
target_dir[R]
template_files[R]
template_scope[R]
Public Class Methods
new(target_dir, template_scope)
click to toggle source
# File lib/dry/web/roda/generate.rb, line 13 def initialize(target_dir, template_scope) @target_dir = target_dir @template_scope = template_scope @template_files = Dir[SOURCE_DIR.join('**/{.,}*')] @processor = Class.new(Thor) do include Thor::Actions end.new @processor.class.source_root SOURCE_DIR end
Public Instance Methods
call(source, target)
click to toggle source
# File lib/dry/web/roda/generate.rb, line 24 def call(source, target) source = Pathname(source) aboslute_source_path = source.expand_path(SOURCE_DIR) target_file = get_target_file(target) template_file = template_files.find { |f| f == aboslute_source_path.to_s } or raise "missing template file +#{source}+" template_file = Pathname(template_file) processor.template template_file, target_file, template_scope create_executable(target_file) if executable?(template_file) end
Private Instance Methods
create_executable(file)
click to toggle source
# File lib/dry/web/roda/generate.rb, line 42 def create_executable(file) FileUtils.chmod "a+x", file end
executable?(file)
click to toggle source
# File lib/dry/web/roda/generate.rb, line 46 def executable?(file) file.file? && file.executable? end
get_target_file(target)
click to toggle source
# File lib/dry/web/roda/generate.rb, line 38 def get_target_file(target) Pathname.getwd.join(target_dir, target) end