Class: Giblish::NodeDataProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/giblish/node_data_provider.rb

Overview

Provides a unified interface for node data by explicitly composing multiple providers into a single object.

Supports dynamic composition - providers can be added after initialization. Each method explicitly delegates to the first provider that responds to it.

Instance Method Summary collapse

Constructor Details

#initialize(*providers) ⇒ NodeDataProvider

Returns a new instance of NodeDataProvider.



8
9
10
# File 'lib/giblish/node_data_provider.rb', line 8

def initialize(*providers)
  @providers = Array(providers).compact
end

Instance Method Details

#add_provider(provider) ⇒ Object



12
13
14
15
# File 'lib/giblish/node_data_provider.rb', line 12

def add_provider(provider)
  @providers << provider
  self
end

#adocObject



88
89
90
91
# File 'lib/giblish/node_data_provider.rb', line 88

def adoc
  provider = find_provider(:adoc)
  provider.adoc
end

#adoc_source(src_node, dst_node, dst_top) ⇒ Object



24
25
26
27
# File 'lib/giblish/node_data_provider.rb', line 24

def adoc_source(src_node, dst_node, dst_top)
  provider = find_provider(:adoc_source)
  provider.adoc_source(src_node, dst_node, dst_top)
end

#api_options(src_node, dst_node, dst_top) ⇒ Object



29
30
31
32
33
# File 'lib/giblish/node_data_provider.rb', line 29

def api_options(src_node, dst_node, dst_top)
  provider = find_provider(:api_options, raise_on_missing: false)
  return {} unless provider
  provider.api_options(src_node, dst_node, dst_top)
end

#branchObject



117
118
119
120
121
# File 'lib/giblish/node_data_provider.rb', line 117

def branch
  provider = find_provider(:branch, raise_on_missing: false)
  return nil unless provider
  provider.branch
end

#convertedObject



52
53
54
55
# File 'lib/giblish/node_data_provider.rb', line 52

def converted
  provider = find_provider(:converted)
  provider.converted
end

#docidObject



72
73
74
75
# File 'lib/giblish/node_data_provider.rb', line 72

def docid
  provider = find_provider(:docid)
  provider.docid
end

#document_attributes(src_node, dst_node, dst_top) ⇒ Object

Source Node Interface (DocAttrBuilder + AdocSrcProvider) ===



19
20
21
22
# File 'lib/giblish/node_data_provider.rb', line 19

def document_attributes(src_node, dst_node, dst_top)
  provider = find_provider(:document_attributes)
  provider.document_attributes(src_node, dst_node, dst_top)
end

#dst_nodeObject



42
43
44
45
# File 'lib/giblish/node_data_provider.rb', line 42

def dst_node
  provider = find_provider(:dst_node)
  provider.dst_node
end

#dst_rel_pathObject



93
94
95
96
# File 'lib/giblish/node_data_provider.rb', line 93

def dst_rel_path
  provider = find_provider(:dst_rel_path)
  provider.dst_rel_path
end

#dst_topObject



47
48
49
50
# File 'lib/giblish/node_data_provider.rb', line 47

def dst_top
  provider = find_provider(:dst_top)
  provider.dst_top
end

#error_msgObject

FailedConversion specific



104
105
106
107
# File 'lib/giblish/node_data_provider.rb', line 104

def error_msg
  provider = find_provider(:error_msg)
  provider.error_msg
end

#historyObject

History Interface (FileHistory) ===



111
112
113
114
115
# File 'lib/giblish/node_data_provider.rb', line 111

def history
  provider = find_provider(:history, raise_on_missing: false)
  return nil unless provider
  provider.history
end

#purpose_strObject



98
99
100
101
# File 'lib/giblish/node_data_provider.rb', line 98

def purpose_str
  provider = find_provider(:purpose_str)
  provider.purpose_str
end

#respond_to?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


123
124
125
# File 'lib/giblish/node_data_provider.rb', line 123

def respond_to?(method_name, include_private = false)
  find_provider(method_name, raise_on_missing: false) ? true : super
end

#src_basenameObject



62
63
64
65
# File 'lib/giblish/node_data_provider.rb', line 62

def src_basename
  provider = find_provider(:src_basename)
  provider.src_basename
end

#src_nodeObject

Conversion Info Interface (SuccessfulConversion / FailedConversion) ===



37
38
39
40
# File 'lib/giblish/node_data_provider.rb', line 37

def src_node
  provider = find_provider(:src_node)
  provider.src_node
end

#src_rel_pathObject



57
58
59
60
# File 'lib/giblish/node_data_provider.rb', line 57

def src_rel_path
  provider = find_provider(:src_rel_path)
  provider.src_rel_path
end

#stderrObject

SuccessfulConversion specific



83
84
85
86
# File 'lib/giblish/node_data_provider.rb', line 83

def stderr
  provider = find_provider(:stderr)
  provider.stderr
end

#titleObject



67
68
69
70
# File 'lib/giblish/node_data_provider.rb', line 67

def title
  provider = find_provider(:title)
  provider.title
end

#to_sObject



77
78
79
80
# File 'lib/giblish/node_data_provider.rb', line 77

def to_s
  provider = find_provider(:to_s)
  provider.to_s
end