Class: Giblish::NodeDataProvider
- Inherits:
-
Object
- Object
- Giblish::NodeDataProvider
- 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
- #add_provider(provider) ⇒ Object
- #adoc ⇒ Object
- #adoc_source(src_node, dst_node, dst_top) ⇒ Object
- #api_options(src_node, dst_node, dst_top) ⇒ Object
- #branch ⇒ Object
- #converted ⇒ Object
- #docid ⇒ Object
-
#document_attributes(src_node, dst_node, dst_top) ⇒ Object
Source Node Interface (DocAttrBuilder + AdocSrcProvider) ===.
- #dst_node ⇒ Object
- #dst_rel_path ⇒ Object
- #dst_top ⇒ Object
-
#error_msg ⇒ Object
FailedConversion specific.
-
#history ⇒ Object
History Interface (FileHistory) ===.
-
#initialize(*providers) ⇒ NodeDataProvider
constructor
A new instance of NodeDataProvider.
- #purpose_str ⇒ Object
- #respond_to?(method_name, include_private = false) ⇒ Boolean
- #src_basename ⇒ Object
-
#src_node ⇒ Object
Conversion Info Interface (SuccessfulConversion / FailedConversion) ===.
- #src_rel_path ⇒ Object
-
#stderr ⇒ Object
SuccessfulConversion specific.
- #title ⇒ Object
- #to_s ⇒ Object
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 |
#adoc ⇒ Object
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 (src_node, dst_node, dst_top) provider = find_provider(:api_options, raise_on_missing: false) return {} unless provider provider.(src_node, dst_node, dst_top) end |
#branch ⇒ Object
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 |
#converted ⇒ Object
52 53 54 55 |
# File 'lib/giblish/node_data_provider.rb', line 52 def converted provider = find_provider(:converted) provider.converted end |
#docid ⇒ Object
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_node ⇒ Object
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_path ⇒ Object
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_top ⇒ Object
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_msg ⇒ Object
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 |
#history ⇒ Object
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_str ⇒ Object
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
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_basename ⇒ Object
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_node ⇒ Object
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_path ⇒ Object
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 |
#stderr ⇒ Object
SuccessfulConversion specific
83 84 85 86 |
# File 'lib/giblish/node_data_provider.rb', line 83 def stderr provider = find_provider(:stderr) provider.stderr end |
#title ⇒ Object
67 68 69 70 |
# File 'lib/giblish/node_data_provider.rb', line 67 def title provider = find_provider(:title) provider.title end |
#to_s ⇒ Object
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 |