k_doc 0.0.23 → 0.0.24

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: 3c113abcf9cd5dd3c9a8518c45503afc2fb545e3365b9d0c1ae75dcef02da7c5
4
- data.tar.gz: 1c4edfea6d0e82b5f300946a38880bbb3ee85a7ebb8f3979378bd8e755394028
3
+ metadata.gz: 62acce8bfac2c242082dd6cf050db2d7e6c535bc6af229f50b4185aec7573261
4
+ data.tar.gz: 23b23c0dffa5da8de05f88c0f470aa63dbdfe3f734582872debf0a74edd1c8fc
5
5
  SHA512:
6
- metadata.gz: 5f35384ccc40360f2fe92f99a994933b5a9060c0b1fcd5cd4a2e67dba4f17b49c2ed07ffeca9844510487aeddbe72afd585dd68b57306dccdc2f666e235f998f
7
- data.tar.gz: 594e5175236bdc19405e5ad7d00dc8326d25902dd92e8698e06a778b430172ef6baeb5bf15b0ebcb9a0bcd044fc92ad7e18ffc9bacc7ee5428666d931eac909c
6
+ metadata.gz: 3762d2ab76f5d4128a2330ea7ad84db2234bea4a56bec313ade497691a46df0f0e20aec4445268647b49d2d68279c3c5730d0ebdecd0b2dba0e48d15b7d77ded
7
+ data.tar.gz: 8e9054976e5e0fbe40e9a27cb3e5244cbd451b5d67c30246d874348b75fd17877774ac0dd819da017db8a3c02439e7fe70aa1fee9887c292d4d0c8997187fad6
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KDoc
4
+ # Action is a DSL for modeling JSON data objects
5
+ class Action < KDoc::Container
6
+ attr_reader :file
7
+
8
+ # Simple Ruby Action
9
+ #
10
+ # @param [String|Symbol] name Name of the document
11
+ # @param args[0] Type of the document, defaults to KDoc:: FakeOpinion.new.default_action_type if not set
12
+ # @param default: Default value (using named params), as above
13
+ # @param [Proc] block The block is stored and accessed different types in the document loading workflow.
14
+ def initialize(key = nil, **opts, &_block)
15
+ super(**{ key: key }.merge(opts))
16
+ end
17
+
18
+ private
19
+
20
+ def default_data_type
21
+ String
22
+ end
23
+
24
+ def default_container_type
25
+ :action
26
+ end
27
+ end
28
+ end
@@ -32,7 +32,7 @@ module KDoc
32
32
  end
33
33
 
34
34
  def default_data_type
35
- Hash
35
+ @default_data_type ||= Hash
36
36
  end
37
37
 
38
38
  def debug
@@ -7,6 +7,7 @@ module KDoc
7
7
  # how I want to implement this
8
8
  # Need to look at the configuration patterns, this is really a configuration
9
9
  class FakeOpinion
10
+ attr_accessor :default_action_type
10
11
  attr_accessor :default_model_type
11
12
  attr_accessor :default_csv_type
12
13
  attr_accessor :default_json_type
@@ -19,7 +20,9 @@ module KDoc
19
20
  attr_accessor :table_class
20
21
 
21
22
  def initialize
22
- @default_model_type = :entity
23
+ # @default_model_type = :entity
24
+ @default_action_type = :action
25
+ @default_model_type = :kdoc
23
26
  @default_csv_type = :csv
24
27
  @default_json_type = :json
25
28
  @default_yaml_type = :yaml
@@ -7,7 +7,7 @@ module KDoc
7
7
  module Guarded
8
8
  Guard = Struct.new(:type, :message)
9
9
 
10
- def guard(message)
10
+ def guard(message, log: false)
11
11
  errors << Guard.new(:guard, message)
12
12
  end
13
13
 
@@ -42,5 +42,9 @@ module KDoc
42
42
  log.error error.message if error.type == :guard
43
43
  end
44
44
  end
45
+
46
+ def clear_errors
47
+ errors.clear
48
+ end
45
49
  end
46
50
  end
@@ -89,17 +89,18 @@ module KDoc
89
89
 
90
90
  # rubocop:disable Metrics/AbcSize
91
91
  def debug_container
92
- log.kv 'tag' , tag , debug_pad_size
93
- log.kv 'project' , project , debug_pad_size unless project.nil? || project.empty?
94
- log.kv 'namespace', namespace , debug_pad_size unless namespace.nil? || namespace.empty?
95
- log.kv 'key' , key , debug_pad_size
96
- log.kv 'type' , type , debug_pad_size
92
+ log.kv 'tag' , tag , debug_pad_size
93
+ log.kv 'project' , project , debug_pad_size unless project.nil? || project.empty?
94
+ log.kv 'namespace' , namespace , debug_pad_size unless namespace.nil? || namespace.empty?
95
+ log.kv 'key' , key , debug_pad_size
96
+ log.kv 'type' , type , debug_pad_size
97
+ log.kv 'class type' , self.class.name , debug_pad_size
97
98
  # log.kv 'error' , error , debug_kv_pad_size
98
99
  end
99
100
  # rubocop:enable Metrics/AbcSize
100
101
 
101
102
  def debug_pad_size
102
- @debug_pad_size ||= @tag_options.delete(:debug_pad_size) || 15
103
+ @debug_pad_size ||= @tag_options.delete(:debug_pad_size) || 20
103
104
  end
104
105
 
105
106
  private
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.23'
4
+ VERSION = '0.0.24'
5
5
  end
data/lib/k_doc.rb CHANGED
@@ -17,6 +17,7 @@ require 'k_doc/mixins/block_processor'
17
17
  require 'k_doc/mixins/composable_components'
18
18
  require 'k_doc/container'
19
19
  # require 'k_doc/data'
20
+ require 'k_doc/action'
20
21
  require 'k_doc/csv_doc'
21
22
  require 'k_doc/json_doc'
22
23
  require 'k_doc/yaml_doc'
@@ -52,6 +53,12 @@ module KDoc
52
53
  model(key, **{ type: :app_settings }.merge(**options), &block)
53
54
  end
54
55
 
56
+ def action(key = nil, **options, &block)
57
+ doc = KDoc::Action.new(key, **options, &block)
58
+ doc.execute_block
59
+ doc
60
+ end
61
+
55
62
  def csv(key = nil, **options, &block)
56
63
  doc = KDoc::CsvDoc.new(key, **options, &block)
57
64
  doc.execute_block
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.23
4
+ version: 0.0.24
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-12-07 00:00:00.000000000 Z
11
+ date: 2021-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -119,6 +119,7 @@ files:
119
119
  - hooks/update-version
120
120
  - k_doc.gemspec
121
121
  - lib/k_doc.rb
122
+ - lib/k_doc/action.rb
122
123
  - lib/k_doc/container.rb
123
124
  - lib/k_doc/csv_doc.rb
124
125
  - lib/k_doc/decorators/settings_decorator.rb
@@ -156,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
157
  - !ruby/object:Gem::Version
157
158
  version: '0'
158
159
  requirements: []
159
- rubygems_version: 3.2.7
160
+ rubygems_version: 3.2.33
160
161
  signing_key:
161
162
  specification_version: 4
162
163
  summary: KDoc provides a document in the form a DSL that contains flexible key/value