k_doc 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c5aa8cc7a7c428e9e15b9a705b9783cfb977b7d49706d3faf95ef17137b2042
4
- data.tar.gz: 794988e7fb3451fc307659e6b790cff4b5903bdd708d8172886eaa906bbed716
3
+ metadata.gz: 6b4d2d8600ef139ecfe4ebc33df2a6fec04f28d014b92dde485bd03c3f50fc9a
4
+ data.tar.gz: 6395ffd44207e6d247ca612a5af8c610856185e1d6dc8d4034cfb9f4be5104e7
5
5
  SHA512:
6
- metadata.gz: 9f3ba7e70149ad585bdd2c8c615a6d21d5dca3b0004c1b9a50b974f2eeeb36637fab456fa9cdc15cf416122864e55ef5f871d2eafaff6f2b1f38ec7b7a606ea7
7
- data.tar.gz: 6cd090ae8c0d409e76d830b9370ab292a8678e434c7e13ef49ab24e7aea500a68fab99ac72fac132dd962cf6b1b4a0eb809e8fca79f5e6506f21fb2656842107
6
+ metadata.gz: 6698d8bd459a9bc19ed6f3882258851a7779bf4be4eab13fed6cfd19870f2311b5f60ec618b1ddd6619e154c16da15f21f80bb4b4a5527d7e42d4ac71c254a02
7
+ data.tar.gz: d5bb18b0271b810a1f795537d6a9ae430dc8f7d82f940be5cfbb6c1dc28b7916c0d7f279ccd8f42be4d35f53a2822d6e43b2280dfc1e7fe8a2f2fe35b8d0f47c
data/lib/k_doc.rb CHANGED
@@ -10,7 +10,8 @@ require 'k_decor'
10
10
 
11
11
  require 'k_doc/version'
12
12
  require 'k_doc/container'
13
- require 'k_doc/data'
13
+ # require 'k_doc/data'
14
+ require 'k_doc/model'
14
15
  require 'k_doc/fake_opinion'
15
16
  require 'k_doc/settings'
16
17
  require 'k_doc/table'
@@ -24,11 +25,11 @@ module KDoc
24
25
  class Error < StandardError; end
25
26
 
26
27
  class << self
27
- # Factory method to create a new data
28
- def data(key = nil, **options, &block)
29
- data = KDoc::Data.new(key, **options, &block)
30
- data.execute_block
31
- data
28
+ # Factory method to create a new model
29
+ def model(key = nil, **options, &block)
30
+ model = KDoc::Model.new(key, **options, &block)
31
+ model.execute_block
32
+ model
32
33
  end
33
34
 
34
35
  attr_accessor :opinion
@@ -1,15 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDoc
4
- # A container acts a base data object for any data requires tagging such as
4
+ # A data acts a base data object for any data requires tagging such as
5
5
  # unique key, type and namespace.
6
6
  class Container
7
7
  # include KLog::Logging
8
8
 
9
+ # Seems like there is way too much data here
10
+ # Firstly it should probably be in an interface
11
+ # Secondly some of this (namespace, project_key, error) belongs in k_manager
12
+ # So container would be better off just being key, type, data
9
13
  attr_reader :key
14
+
15
+ # NOTE: This should not be using an opinion in this project
10
16
  attr_reader :type
11
- attr_reader :namespace
12
- attr_reader :project_key
17
+
18
+ # Move this up to k_manager
19
+ # attr_reader :namespace
20
+ # attr_reader :project_key
13
21
  attr_reader :error
14
22
 
15
23
  # Create container for storing data/documents.
@@ -24,9 +32,9 @@ module KDoc
24
32
  # @option opts [String|Symbol] project_key Project that the container belongs to
25
33
  def initialize(**opts)
26
34
  @key = opts[:key] || SecureRandom.alphanumeric(4)
27
- @type = opts[:type] || KDoc.opinion.default_document_type
28
- @namespace = opts[:namespace] || ''
29
- @project_key = opts[:project_key] || ''
35
+ @type = opts[:type] || '' # KDoc.opinion.default_document_type
36
+ # @namespace = opts[:namespace] || ''
37
+ # @project_key = opts[:project_key] || ''
30
38
 
31
39
  # Old name is default_data, wonder if I still need that idea?
32
40
  # Most documents live within a hash, some tabular documents such as CSV will use an []
@@ -34,16 +42,16 @@ module KDoc
34
42
  @data = opts[:data] || {}
35
43
  end
36
44
 
37
- def unique_key
38
- @unique_key ||= KDoc.util.build_unique_key(key, type, namespace, project_key)
39
- end
45
+ # def unique_key
46
+ # @unique_key ||= KDoc.util.build_unique_key(key, type, namespace, project_key)
47
+ # end
40
48
 
41
49
  def debug_header
42
50
  log.kv 'key', key
43
51
  log.kv 'type', type
44
- log.kv 'namespace', namespace
45
- log.kv 'project_key', namespace
46
- log.kv 'error', error
52
+ # log.kv 'namespace', namespace
53
+ # log.kv 'project_key', namespace
54
+ # log.kv 'error', error
47
55
  end
48
56
 
49
57
  attr_writer :data
@@ -1,10 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KDoc
4
- # General purpose data DSL
4
+ # Model is a DSL for modeling general purpose data objects
5
5
  #
6
- # Made up of 0 or more setting groups and table groups
7
- class Data < KDoc::Container
6
+ # A mode can have
7
+ # - 0 or more named setting groups each with their key/value pairs
8
+ # - 0 or more named table groups each with their own columns and rows
9
+ #
10
+ # A settings group without a name will default to name: :settings
11
+ # A table group without a name will default to name: :table
12
+ class Model < KDoc::Container
8
13
  include KLog::Logging
9
14
 
10
15
  # include KType::Error
@@ -26,6 +31,7 @@ module KDoc
26
31
  @block = block if block_given?
27
32
  end
28
33
 
34
+ # NOTE: Can this be moved out of the is object?
29
35
  def execute_block(run_actions: nil)
30
36
  return if @block.nil?
31
37
 
@@ -54,9 +60,10 @@ module KDoc
54
60
  @run_actions = nil
55
61
  end
56
62
 
57
- def unique_key
58
- @unique_key ||= KDoc.util.build_unique_key(key, type, namespace)
59
- end
63
+ # Move this up to k_manager
64
+ # def unique_key
65
+ # @unique_key ||= KDoc.util.build_unique_key(key, type, namespace)
66
+ # end
60
67
 
61
68
  def settings(key = nil, **options, &block)
62
69
  options ||= {}
@@ -135,19 +142,17 @@ module KDoc
135
142
  log.o(raw_data_struct)
136
143
  end
137
144
 
138
- # rubocop:disable Metrics/AbcSize
139
145
  def debug_header
140
146
  log.heading self.class.name
141
147
  log.kv 'key', key
142
148
  log.kv 'type', type
143
- log.kv 'namespace', namespace
149
+ # log.kv 'namespace', namespace
144
150
  log.kv 'error', error
145
151
 
146
152
  debug_header_keys
147
153
 
148
154
  log.line
149
155
  end
150
- # rubocop:enable Metrics/AbcSize
151
156
 
152
157
  def debug_header_keys
153
158
  options&.keys&.reject { |k| k == :namespace }&.each do |key|
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.13'
4
+ VERSION = '0.0.15'
5
5
  end
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.13
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-23 00:00:00.000000000 Z
11
+ date: 2021-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -111,10 +111,10 @@ files:
111
111
  - k_doc.gemspec
112
112
  - lib/k_doc.rb
113
113
  - lib/k_doc/container.rb
114
- - lib/k_doc/data.rb
115
114
  - lib/k_doc/decorators/settings_decorator.rb
116
115
  - lib/k_doc/decorators/table_decorator.rb
117
116
  - lib/k_doc/fake_opinion.rb
117
+ - lib/k_doc/model.rb
118
118
  - lib/k_doc/settings.rb
119
119
  - lib/k_doc/table.rb
120
120
  - lib/k_doc/util.rb