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!
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/timeline_setter/cli.rb', line 78 def compile! FileUtils.mkdir_p outdir unless File.exists? outdir if ![:no_assets] || ![:min] FileUtils.cp_r(Dir.glob("#{TimelineSetter::ROOT}/public/*"), outdir) # Concatenate JSTs to timeline-setter.js and remove templates.js `cat #{outdir}/javascripts/templates.js >> #{outdir}/javascripts/timeline-setter.js && rm -rf #{outdir}/javascripts/templates*` 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
59 60 61 |
# File 'lib/timeline_setter/cli.rb', line 59 def events TimelineSetter::Parser.new sheet end |
- (Object) html
63 64 65 66 67 68 |
# File 'lib/timeline_setter/cli.rb', line 63 def html TimelineSetter::Timeline.new({ :events => events.events, :interval => [:interval] || '' }).send([:min] ? :timeline_min : :timeline) end |
- (Object) outdir
70 71 72 |
# File 'lib/timeline_setter/cli.rb', line 70 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 46 47 48 |
# 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', '--without-assets', 'Output timeline without supporting assets') do |a| [:no_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('-i', '--interval INTERVAL', 'Override automatic interval notches with a custom interval.') do |i| [:interval] = i 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
55 56 57 |
# File 'lib/timeline_setter/cli.rb', line 55 def sheet File.open([:csv]).read end |
- (Object) timeline_page_path
74 75 76 |
# File 'lib/timeline_setter/cli.rb', line 74 def timeline_page_path File.join(outdir, 'timeline.html') end |