Class: KDoc::JsonDoc
Overview
JsonDoc is a DSL for modeling JSON data objects
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
Attributes inherited from Container
Attributes included from BlockProcessor
#action_block, #block, #block_state, #children, #depend_on_tags, #dependents, #init_block
Attributes included from Datum
Attributes included from Taggable
Instance Method Summary collapse
-
#initialize(key = nil, **opts, &_block) ⇒ JsonDoc
constructor
Create JSON document.
-
#load(load_action: :once, data_action: :replace) ⇒ Object
Load data from file.
- #loaded? ⇒ Boolean
Methods inherited from Container
Methods included from BlockProcessor
#action, #actioned?, #add_child, #block_execute, #children_evaluated?, #debug_block_processor, #depend_on, #dependencies_met?, #evaluated?, #execute_block, #fire_action, #fire_children, #fire_eval, #fire_init, #import, #import_data, #init, #initialize_block_processor, #initialized?, #new?, #resolve_dependency
Methods included from Datum
#clear_data, #initialize_data, #set_data
Methods included from Guarded
#clear_errors, #error_hash, #error_messages, #errors, #guard, #log_any_messages, #valid?, #warn
Methods included from Taggable
#initialize_tag, #key, #namespace, #project, #tag, #type
Constructor Details
#initialize(key = nil, **opts, &_block) ⇒ JsonDoc
Create JSON document
14 15 16 17 18 |
# File 'lib/k_doc/json_doc.rb', line 14 def initialize(key = nil, **opts, &_block) super(**{ key: key }.merge(opts)) initialize_file end |
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
6 7 8 |
# File 'lib/k_doc/json_doc.rb', line 6 def file @file end |
Instance Method Details
#load(load_action: :once, data_action: :replace) ⇒ Object
Load data from file
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/k_doc/json_doc.rb', line 28 def load(load_action: :once, data_action: :replace) return if load_action == :once && loaded? content = File.read(file) hash = JSON.parse(content) set_data(hash, data_action: data_action) @loaded = true end |
#loaded? ⇒ Boolean
39 40 41 |
# File 'lib/k_doc/json_doc.rb', line 39 def loaded? @loaded end |