k_doc 0.0.13 → 0.0.15

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: 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