k_doc 0.0.25 → 0.0.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a629e6b0524e5610debb6b933e7473cf122518a9e7b0d86a8627e4d1e23380e
4
- data.tar.gz: bac4ddc4e068b3c975ed51fcb2c93c6bbbdd7b2c9da6d82dc7706432b803b4f1
3
+ metadata.gz: e43e7408a95cf8bf701922e28ef33115d12dd66dd77af00ca1f8b0e492c0952d
4
+ data.tar.gz: 74506c87934ece30b1e5e37b111fc6ff347ae277b8085aff50a0dce698946b7c
5
5
  SHA512:
6
- metadata.gz: 1bf61c53b8f3c75e315bf9ca05473c0c0c7b08c371ca62135297a66e5f96f8991f34df27cb3e7a75244b6037dde8023ad33cff7c98435415024c49392f18c666
7
- data.tar.gz: 5f3c9aa53fdcf7022285818d5a857374050aad58523a74b1cb06c42a2bb603589d23745d0b36a018f2b8477b6aec666ed92be219cde9fd9e9a167766decb90da
6
+ metadata.gz: 92427570dd666fa9d679472fe48dd79771a877209ddd80df4143db1b03cf75ed587af99b1bca3f39e4f039e6ffa4e074c2173f19f8047811a17ca6c7d25cf248
7
+ data.tar.gz: 553d2c7d0bbf1304b7814e3196b3bf4d90a413c920c2209865918dd3351edabcd6fdad345cb4deb53fb5cb2678b637992caf00a7349218030a37518605071206
data/.rubocop.yml CHANGED
@@ -44,15 +44,20 @@ Layout/LineLength:
44
44
  Lint/UnusedMethodArgument:
45
45
  AllowUnusedKeywordArguments: true
46
46
 
47
- Style/Documentation:
47
+ Style/AccessorGrouping:
48
48
  Enabled: false
49
-
50
49
  Style/BlockComments:
51
50
  Enabled: false
52
51
  Include:
53
52
  - "**/spec/*"
54
-
55
- # My Preferences - Start
53
+ Style/Documentation:
54
+ Enabled: false
55
+ Style/EmptyMethod:
56
+ Exclude:
57
+ - "**/spec/**/*"
58
+ Style/OpenStructUse:
59
+ Exclude:
60
+ - "**/spec/**/*"
56
61
  Metrics/ClassLength:
57
62
  Enabled: false
58
63
  Metrics/ModuleLength:
@@ -63,23 +68,14 @@ Naming/MemoizedInstanceVariableName:
63
68
  Naming/VariableNumber:
64
69
  Exclude:
65
70
  - "**/spec/**/*"
66
- Style/EmptyMethod:
67
- Exclude:
68
- - "**/spec/**/*"
69
71
  Metrics/ParameterLists:
70
72
  Exclude:
71
73
  - "**/spec/**/*"
72
74
  Layout/EmptyLineBetweenDefs:
73
75
  Exclude:
74
76
  - "**/spec/**/*"
75
-
76
77
  Lint/AmbiguousBlockAssociation:
77
78
  Exclude:
78
79
  - "**/spec/**/*"
79
-
80
- Style/AccessorGrouping:
81
- Enabled: false
82
-
83
80
  Layout/SpaceBeforeComma:
84
81
  Enabled: false
85
- # My Preferences - End
@@ -9,6 +9,7 @@ module KDoc
9
9
  include KDoc::Taggable
10
10
  include KDoc::Datum
11
11
  include KDoc::BlockProcessor
12
+ include KDoc::Importable
12
13
 
13
14
  attr_reader :opts
14
15
 
@@ -24,6 +25,7 @@ module KDoc
24
25
 
25
26
  initialize_tag(opts)
26
27
  initialize_data(opts)
28
+ initialize_import(opts) if respond_to?(:initialize_import)
27
29
  initialize_block(opts, &block)
28
30
  end
29
31
 
@@ -36,7 +38,8 @@ module KDoc
36
38
  end
37
39
 
38
40
  def debug
39
- debug_container
41
+ debug_taggable
42
+ debug_block_processor
40
43
  debug_errors
41
44
  end
42
45
 
@@ -6,9 +6,19 @@ module KDoc
6
6
  # Rename: BlockProcessor
7
7
  module BlockProcessor
8
8
  attr_accessor :block
9
+ attr_accessor :block_state
9
10
 
10
11
  def initialize_block(_opts, &block)
11
12
  @block = block if block_given?
13
+ @block_state = :initial
14
+ end
15
+
16
+ def evaluated?
17
+ @block_state == :evaluated || @block_state == :actioned
18
+ end
19
+
20
+ def actioned?
21
+ @block_state == :actioned
12
22
  end
13
23
 
14
24
  def execute_block(run_actions: nil)
@@ -20,6 +30,7 @@ module KDoc
20
30
  return if @block.nil?
21
31
 
22
32
  instance_eval(&@block)
33
+ @block_state = :evaluated
23
34
  rescue StandardError => e
24
35
  log.error('Standard error in document')
25
36
  # puts "key #{unique_key}"
@@ -32,7 +43,10 @@ module KDoc
32
43
  def run_on_action
33
44
  return if @block.nil?
34
45
 
35
- on_action if respond_to?(:on_action)
46
+ if respond_to?(:on_action)
47
+ on_action
48
+ @block_state = :actioned
49
+ end
36
50
  rescue StandardError => e
37
51
  log.error('Standard error while running actions')
38
52
  # puts "key #{unique_key}"
@@ -41,5 +55,11 @@ module KDoc
41
55
  @error = e
42
56
  raise
43
57
  end
58
+
59
+ def debug_block_processor
60
+ log.kv 'block_state', block_state , debug_pad_size if respond_to?(:block_state)
61
+ log.kv 'evaluated' , evaluated? , debug_pad_size if respond_to?(:evaluated?)
62
+ log.kv 'actioned' , actioned? , debug_pad_size if respond_to?(:actioned?)
63
+ end
44
64
  end
45
65
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KDoc
4
+ # Alow documents to import data from other sources (usually other documents)
5
+
6
+ module Importable
7
+ include KLog::Logging
8
+
9
+ attr_reader :importer
10
+ attr_reader :imports
11
+
12
+ # Imports are provided via an options hash, these imports are remove from the hash as they are read
13
+ #
14
+ # Any container can import data from an existing container via the import options
15
+ # rubocop:disable Style/OpenStructUse
16
+ def initialize_import(opts)
17
+ # log.error 'initialize_import'
18
+ @importer = opts.delete(:importer)
19
+ @imports = OpenStruct.new
20
+ end
21
+ # rubocop:enable Style/OpenStructUse
22
+
23
+ def call_importer
24
+ return unless importer
25
+
26
+ importer.call(self)
27
+ end
28
+
29
+ # def import(tag)
30
+ # KManager.find_document(tag)
31
+ # end
32
+
33
+ # def import_data(tag, as: :document)
34
+ # doc = KManager.find_document(tag)
35
+
36
+ # return nil unless doc&.data
37
+
38
+ # # log.error 'about to import'
39
+ # doc.debug(include_header: true)
40
+
41
+ # return KUtil.data.to_open_struct(doc.data) if %i[open_struct ostruct].include?(as)
42
+
43
+ # doc.data
44
+ # end
45
+
46
+ protected
47
+
48
+ def debug_importable
49
+ # log.kv 'class type' , self.class.name , debug_pad_size
50
+ end
51
+ end
52
+ end
@@ -67,28 +67,10 @@ module KDoc
67
67
  @namespace = ns.is_a?(Array) ? ns : [ns]
68
68
  end
69
69
 
70
- # # Internal data object
71
- # def data
72
- # @data ||= @tag_options.delete(:data) || @tag_options.delete(:default_data) || default_data_value
73
- # # Settings and Table on Model needed access to @data for modification, I don't think this should be a clone
74
- # # never return the original data object, but at the same time
75
- # # do not re-clone it every time this accessor is called.
76
- # # @clone_data ||= @data.clone
77
- # end
78
-
79
- # Implement in container
80
- # def default_container_type
81
- # :container
82
- # end
83
-
84
- # def default_data_value
85
- # {}
86
- # end
87
-
88
70
  protected
89
71
 
90
72
  # rubocop:disable Metrics/AbcSize
91
- def debug_container
73
+ def debug_taggable
92
74
  log.kv 'tag' , tag , debug_pad_size
93
75
  log.kv 'project' , project , debug_pad_size unless project.nil? || project.empty?
94
76
  log.kv 'namespace' , namespace , debug_pad_size unless namespace.nil? || namespace.empty?
data/lib/k_doc/model.rb CHANGED
@@ -115,7 +115,8 @@ module KDoc
115
115
 
116
116
  def debug_header
117
117
  log.heading self.class.name
118
- debug_container
118
+ debug_taggable
119
+ debug_block_processor
119
120
  debug_header_keys
120
121
 
121
122
  log.line
data/lib/k_doc/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDoc
4
- VERSION = '0.0.25'
4
+ VERSION = '0.0.26'
5
5
  end
data/lib/k_doc.rb CHANGED
@@ -15,6 +15,7 @@ require 'k_doc/mixins/taggable'
15
15
  require 'k_doc/mixins/datum'
16
16
  require 'k_doc/mixins/block_processor'
17
17
  require 'k_doc/mixins/composable_components'
18
+ require 'k_doc/mixins/importable'
18
19
  require 'k_doc/container'
19
20
  # require 'k_doc/data'
20
21
  require 'k_doc/action'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_doc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-12 00:00:00.000000000 Z
11
+ date: 2022-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -130,6 +130,7 @@ files:
130
130
  - lib/k_doc/mixins/composable_components.rb
131
131
  - lib/k_doc/mixins/datum.rb
132
132
  - lib/k_doc/mixins/guarded.rb
133
+ - lib/k_doc/mixins/importable.rb
133
134
  - lib/k_doc/mixins/taggable.rb
134
135
  - lib/k_doc/model.rb
135
136
  - lib/k_doc/model_backup.rb