Class: Diecut::UIApplier

Inherits:
Object
  • Object
show all
Defined in:
lib/diecut/ui-applier.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#contextObject

Returns the value of attribute context.



3
4
5
# File 'lib/diecut/ui-applier.rb', line 3

def context
  @context
end

#pluginsObject

Returns the value of attribute plugins.



3
4
5
# File 'lib/diecut/ui-applier.rb', line 3

def plugins
  @plugins
end

#uiObject

Returns the value of attribute ui.



3
4
5
# File 'lib/diecut/ui-applier.rb', line 3

def ui
  @ui
end

Instance Method Details

#applyObject

setup default values on ui setup dynamic defaults on context copy ui settings to context resolve context config confirm required



10
11
12
13
14
15
16
17
# File 'lib/diecut/ui-applier.rb', line 10

def apply
  check_ui
  basic_defaults
  dynamic_defaults
  copy_to_context
  resolve_context
  confirm_required
end

#apply_dynamic_default(default) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/diecut/ui-applier.rb', line 55

def apply_dynamic_default(default)
  return if default.simple?

  segment = context.walk_path(default.context_path).last

  segment.value = default.compute_value(context)
end

#basic_defaultsObject



23
24
25
# File 'lib/diecut/ui-applier.rb', line 23

def basic_defaults
  context.setup_defaults
end

#check_uiObject



19
20
21
# File 'lib/diecut/ui-applier.rb', line 19

def check_ui
  ui.check_required
end

#confirm_requiredObject



51
52
53
# File 'lib/diecut/ui-applier.rb', line 51

def confirm_required
  context.check_required
end

#copy_option(option) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/diecut/ui-applier.rb', line 63

def copy_option(option)
  return unless option.has_context_path?

  segment = context.walk_path(option.context_path).last

  segment.value = ui.get_value(option.name.to_sym)
end

#copy_to_contextObject



35
36
37
38
39
40
41
# File 'lib/diecut/ui-applier.rb', line 35

def copy_to_context
  plugins.each do |plugin|
    plugin.options.each do |option|
      copy_option(option)
    end
  end
end

#dynamic_defaultsObject



27
28
29
30
31
32
33
# File 'lib/diecut/ui-applier.rb', line 27

def dynamic_defaults
  plugins.each do |plugin|
    plugin.context_defaults.each do |default|
      apply_dynamic_default(default)
    end
  end
end

#resolve_contextObject



43
44
45
46
47
48
49
# File 'lib/diecut/ui-applier.rb', line 43

def resolve_context
  plugins.each do |plugin|
    unless plugin.resolve_block.nil?
      plugin.apply_resolve(ui, context)
    end
  end
end