Class: MarkdownComposer::PlanBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/markdown_composer/plan_builder.rb

Instance Method Summary collapse

Constructor Details

#initializePlanBuilder

Returns a new instance of PlanBuilder.



5
6
7
8
9
10
# File 'lib/markdown_composer/plan_builder.rb', line 5

def initialize
  @rows = []
  @transforms = []
  @current = {}
  @output = nil
end

Instance Method Details

#append(target = nil) ⇒ Object



37
38
39
# File 'lib/markdown_composer/plan_builder.rb', line 37

def append(target = nil)
  finish("append", target)
end

#copy(target) ⇒ Object



61
62
63
# File 'lib/markdown_composer/plan_builder.rb', line 61

def copy(target)
  finish("copy", target)
end

#from(source) ⇒ Object



12
13
14
# File 'lib/markdown_composer/plan_builder.rb', line 12

def from(source)
  @current["source"] = source
end

#include(*items) ⇒ Object



20
21
22
23
# File 'lib/markdown_composer/plan_builder.rb', line 20

def include(*items)
  existing = Array(@current["include"])
  @current["include"] = existing.concat(items.flatten).compact
end

#insert_after(target) ⇒ Object



49
50
51
# File 'lib/markdown_composer/plan_builder.rb', line 49

def insert_after(target)
  finish("insert_after", target)
end

#insert_before(target) ⇒ Object



45
46
47
# File 'lib/markdown_composer/plan_builder.rb', line 45

def insert_before(target)
  finish("insert_before", target)
end

#insert_between(target) ⇒ Object



53
54
55
# File 'lib/markdown_composer/plan_builder.rb', line 53

def insert_between(target)
  finish("insert_between", target)
end

#modify(target = nil, transforms: nil) ⇒ Object



69
70
71
72
# File 'lib/markdown_composer/plan_builder.rb', line 69

def modify(target = nil, transforms: nil)
  @current["transforms"] = Array(transforms) if transforms
  finish("modify", target)
end

#move(target) ⇒ Object



65
66
67
# File 'lib/markdown_composer/plan_builder.rb', line 65

def move(target)
  finish("move", target)
end

#output(format) ⇒ Object



29
30
31
# File 'lib/markdown_composer/plan_builder.rb', line 29

def output(format)
  @output = format.to_s
end

#prepend(target = nil) ⇒ Object



41
42
43
# File 'lib/markdown_composer/plan_builder.rb', line 41

def prepend(target = nil)
  finish("prepend", target)
end

#remove_buffer_target(target = nil) ⇒ Object



74
75
76
77
# File 'lib/markdown_composer/plan_builder.rb', line 74

def remove_buffer_target(target = nil)
  target ||= @current["select"]
  finish("remove_buffer_target", target)
end

#replace(target) ⇒ Object



57
58
59
# File 'lib/markdown_composer/plan_builder.rb', line 57

def replace(target)
  finish("replace", target)
end

#select(selector) ⇒ Object



16
17
18
# File 'lib/markdown_composer/plan_builder.rb', line 16

def select(selector)
  @current["select"] = selector
end

#set(target = nil) ⇒ Object



33
34
35
# File 'lib/markdown_composer/plan_builder.rb', line 33

def set(target = nil)
  finish("set", target)
end

#target(target) ⇒ Object



25
26
27
# File 'lib/markdown_composer/plan_builder.rb', line 25

def target(target)
  @current["target"] = target
end

#to_planObject



93
94
95
96
97
98
# File 'lib/markdown_composer/plan_builder.rb', line 93

def to_plan
  config = { "compose" => @rows }
  config["transform"] = @transforms if @transforms.any?
  config["output"] = @output if @output
  Plan.new(config)
end

#transform(scope, transform, mode, options = {}) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/markdown_composer/plan_builder.rb', line 84

def transform(scope, transform, mode, options = {})
  @transforms << {
    "scope" => scope,
    "transform" => transform,
    "mode" => mode,
    "options" => options
  }
end

#transform_buffer_target(target = nil, transforms: nil) ⇒ Object



79
80
81
82
# File 'lib/markdown_composer/plan_builder.rb', line 79

def transform_buffer_target(target = nil, transforms: nil)
  @current["transforms"] = Array(transforms) if transforms
  finish("transform_buffer_target", target)
end