Class: RevealCK::RakeTask

Inherits:
Rake::TaskLib
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/reveal-ck/rake_task.rb

Overview

Generate a reveal.js presentation

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) {|_self| ... } ⇒ RakeTask

Returns a new instance of RakeTask.

Yields:

  • (_self)

Yield Parameters:



32
33
34
35
36
37
38
39
40
41
# File 'lib/reveal-ck/rake_task.rb', line 32

def initialize(*args, &task_block)
  @name     = args.shift || :reveal
  @file     = FileList['slides.*'].first
  @dir      = 'slides'
  @user_dir = Dir.pwd
  @gem_dir  = RevealCK.path
  @config   = Config.new
  yield self if block_given?
  define(args, &task_block)
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



30
31
32
# File 'lib/reveal-ck/rake_task.rb', line 30

def config
  @config
end

#dirObject

Directory where slides are placed.

default:

'slides'


26
27
28
# File 'lib/reveal-ck/rake_task.rb', line 26

def dir
  @dir
end

#fileObject

File containing slide content.

default:

'slides.*'


20
21
22
# File 'lib/reveal-ck/rake_task.rb', line 20

def file
  @file
end

#gem_dirObject

Returns the value of attribute gem_dir.



29
30
31
# File 'lib/reveal-ck/rake_task.rb', line 29

def gem_dir
  @gem_dir
end

#nameObject

Name of task.

default:

:reveal


14
15
16
# File 'lib/reveal-ck/rake_task.rb', line 14

def name
  @name
end

#user_dirObject

Returns the value of attribute user_dir.



28
29
30
# File 'lib/reveal-ck/rake_task.rb', line 28

def user_dir
  @user_dir
end

Instance Method Details

#define(args, &task_block) ⇒ Object



58
59
60
61
62
63
64
65
66
67
# File 'lib/reveal-ck/rake_task.rb', line 58

def define(args, &task_block)
  last_description = ::Rake.application.last_description
  desc 'Generate a reveal.js presentation' unless last_description
  task name, *args do |_, task_args|
    RakeFileUtils.__send__(:verbose, verbose) do
      yield(*[self, task_args].slice(0, task_block.arity)) if task_block
      run_task verbose
    end
  end
end

#run_task(verbose) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/reveal-ck/rake_task.rb', line 44

def run_task(verbose)
  puts "Generating slides for '#{file}'.." if verbose

  slides_builder = RevealCK::Builders::SlidesBuilder.new(
    user_dir: user_dir,
    gem_dir: gem_dir,
    output_dir: dir,
    slides_file: file,
    config: config
  )
  slides_builder.prepare
  slides_builder.build
end