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 +4 -4
- data/lib/k_doc.rb +7 -6
- data/lib/k_doc/container.rb +20 -12
- data/lib/k_doc/{data.rb → model.rb} +14 -9
- data/lib/k_doc/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b4d2d8600ef139ecfe4ebc33df2a6fec04f28d014b92dde485bd03c3f50fc9a
|
4
|
+
data.tar.gz: 6395ffd44207e6d247ca612a5af8c610856185e1d6dc8d4034cfb9f4be5104e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
data/lib/k_doc/container.rb
CHANGED
@@ -1,15 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module KDoc
|
4
|
-
# A
|
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
|
-
|
12
|
-
|
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
|
-
|
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
|
-
#
|
4
|
+
# Model is a DSL for modeling general purpose data objects
|
5
5
|
#
|
6
|
-
#
|
7
|
-
|
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
|
-
|
58
|
-
|
59
|
-
|
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
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.
|
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-
|
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
|