Class: EasyHtmlGenerator::Generator::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_html_generator/generator/base.rb

Overview

this is the generator base class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, config) ⇒ Base

Returns a new instance of Base.



8
9
10
11
# File 'lib/easy_html_generator/generator/base.rb', line 8

def initialize(project, config)
  @project = project
  @config  = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



6
7
8
# File 'lib/easy_html_generator/generator/base.rb', line 6

def config
  @config
end

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/easy_html_generator/generator/base.rb', line 13

def enabled?
  !!@config[:enabled]
end

#file_changed?(file) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/easy_html_generator/generator/base.rb', line 50

def file_changed?(file)
  EasyHtmlGenerator::Checksum.file_changed? file
end

#generateObject



17
18
19
20
21
22
23
24
25
# File 'lib/easy_html_generator/generator/base.rb', line 17

def generate
  return unless enabled?

  log_running

  tasks.each do |task|
    generate! @config.merge(task)
  end
end

#generate!(_config) ⇒ Object



27
28
29
# File 'lib/easy_html_generator/generator/base.rb', line 27

def generate!(_config)
  fail NotImplementedError.new "#{self.class.name} is an abstract class."
end

#log(msg) ⇒ Object



45
46
47
48
# File 'lib/easy_html_generator/generator/base.rb', line 45

def log(msg)
  STDERR.puts "  | #{msg.sub(@project.src_path, '')
    .sub('EasyHtmlGenerator::', '')}"
end

#log_runningObject



41
42
43
# File 'lib/easy_html_generator/generator/base.rb', line 41

def log_running
  log "#{self.class.name.yellow}"
end

#repetitive?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/easy_html_generator/generator/base.rb', line 31

def repetitive?
  @config.key? :repetitive
end

#store_file_hash(file) ⇒ Object



54
55
56
# File 'lib/easy_html_generator/generator/base.rb', line 54

def store_file_hash(file)
  EasyHtmlGenerator::Checksum.store_file(file)
end

#tasksObject



35
36
37
38
39
# File 'lib/easy_html_generator/generator/base.rb', line 35

def tasks
  return [@config] unless repetitive?

  @config[:repetitive]
end