Class: Saber::Task::Generate

Inherits:
Base
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/saber/task/generate.rb

Overview

Generate meta data file.

Usage


Task["generate"].invoke(:generate, ["bib", "ebook", "Hello.epub", isbn])
> generate Hello.epub.yml data file.

Instance Method Summary collapse

Methods inherited from Base

inherited, invoke

Instance Method Details

#generate(tracker_name, type, filename, *args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/saber/task/generate.rb', line 17

def generate(tracker_name, type, filename, *args)
  require "saber/tracker/#{tracker_name}" if !args.empty?
  template_file = find_in_source_paths("#{tracker_name}/#{type}.yml")
  dest = "#{filename}.yml" 

  if !args.empty? and Tracker[tracker_name].can_populate?(type)
    require "yaml"
    populate = {}
    data = YAML.load_file(template_file)

    tracker = Tracker[tracker_name].new
    tracker.
    populate = tracker.populate(type, *args)
    data.merge!(populate)

    create_file dest, YAML.dump(data)
  else
    copy_file template_file, dest
  end
end