Class: TimelineSetter::CLI
- Inherits:
-
Object
- Object
- TimelineSetter::CLI
- Defined in:
- lib/timeline_setter/cli.rb
Instance Method Summary (collapse)
- - (Object) compile!
- - (Object) events
- - (Object) html
-
- (CLI) initialize
constructor
A new instance of CLI.
- - (Object) outdir
- - (Object) parse_options!
- - (Object) sheet
- - (Object) timeline_page_path
Constructor Details
- (CLI) initialize
A new instance of CLI
6 7 8 |
# File 'lib/timeline_setter/cli.rb', line 6 def initialize end |
Instance Method Details
- (Object) compile!
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/timeline_setter/cli.rb', line 72 def compile! if [:assets] FileUtils.cp_r(Dir.glob("#{TimelineSetter::ROOT}/public/*"), outdir) end File.open(timeline_page_path, 'w+') do |doc| doc.write html end puts "== Files copied to #{outdir}" if [:open] puts "== Opening ..." %x[ open #{timeline_page_path} ] end end |
- (Object) events
56 57 58 |
# File 'lib/timeline_setter/cli.rb', line 56 def events TimelineSetter::Parser.new sheet end |
- (Object) html
60 61 62 |
# File 'lib/timeline_setter/cli.rb', line 60 def html TimelineSetter::Timeline.new(events.events).send([:min] ? :timeline_min : :timeline) end |
- (Object) outdir
64 65 66 |
# File 'lib/timeline_setter/cli.rb', line 64 def outdir [:output] ? [:output] : "#{`pwd`.strip}/" end |
- (Object) parse_options!
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/timeline_setter/cli.rb', line 10 def = {} option_parser = OptionParser.new do |opts| opts. = "TimelineSetter: A tool to generate HTML timelines from CSVs.\n\nUsage:\n" opts.on('-c', '--csv CSV', 'CSV input file') do |c| [:csv] = c end opts.on('-o', '--output OUTPUT', 'Output directory to install timeline into.') do |o| [:output] = o end opts.on('-a', '--with-assets', 'Output timeline supporting assets as well') do |a| [:assets] = a end opts.on('-O', '--open', 'Open generated timeline in a browser') do |o| [:open] = o end opts.on('-m', '--min', 'Create a minified one-page version of the timeline') do |m| [:min] = m end opts.on_tail("-h", "--help", "Show this message") do puts opts exit end end option_parser.parse! if .empty? puts option_parser.on_tail exit else compile! end end |
- (Object) sheet
52 53 54 |
# File 'lib/timeline_setter/cli.rb', line 52 def sheet File.open([:csv]).read end |
- (Object) timeline_page_path
68 69 70 |
# File 'lib/timeline_setter/cli.rb', line 68 def timeline_page_path File.join(outdir, 'timeline.html') end |