k_manager 0.0.28 → 0.0.30

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: 10d0353e9cdde7cbec88c6b6a7dd47135da7fa026bf90ec9b6e5017c75ac2a0b
4
- data.tar.gz: a77c72d2aa9888f29f3b3b835919828cbf6480e349cecb723e6862d81478f540
3
+ metadata.gz: e37f7eaec478502778d24559e32635bf448788a5f89598961b3b5dc1d2109168
4
+ data.tar.gz: f51fe8850fdab828076e197902b88037aa99527e8c9f5faab4ab11ff4eec7c33
5
5
  SHA512:
6
- metadata.gz: eda368dd81ee863ad42831c6527f27b56a60d78d2e2417d377d8425fc6bcf823efe3998a61c5c358ff0329ba2251530b16e94e51acf44c2d463e0dc24874d921
7
- data.tar.gz: 6aa66dabe51fcecf3d76dd65f202e5b21b7023133ca1892d1d743ed7059f0b7d3e2a00a354ea3b6d780ec59a77131d50b784aaf786e0937f20a8f71a419d24ea
6
+ metadata.gz: 64d7a94731b67333f2d271c6b0fe9b04841b3d0a4fdaa7fa014a04af5fd3bb38ff888ded7b96ea74bef3f8239f5759f4edc5ffa9c5e02ddfaca4dba197d88f63
7
+ data.tar.gz: a7ce44a02dde86c04c40481ac56dc73adf3340e538f183b51dbd61e02cb122674d3decd58451acffda39351ae9d3d657230a4489bf1fd6b67297ca6afb4a686b
data/exe/k_manager CHANGED
@@ -3,7 +3,6 @@
3
3
  # frozen_string_literal: true
4
4
 
5
5
  require 'pry'
6
- puts 'dddddddddddddddddddddd'
7
6
 
8
7
  lib_path = File.expand_path(File.join(File.dirname(__FILE__), '../lib'))
9
8
  gem_path = File.expand_path(File.join(File.dirname(__FILE__), '../Gemfile'))
@@ -28,6 +28,19 @@ module KManager
28
28
  default: nil,
29
29
  desc: 'Log level, use debug for more info'
30
30
 
31
+ option :description,
32
+ default: nil,
33
+ aliases: ['-d'],
34
+ desc: 'Application description'
35
+
36
+ option :user_story,
37
+ default: nil,
38
+ desc: 'Main user story'
39
+
40
+ option :repo_organization,
41
+ default: nil,
42
+ desc: 'Repository organization'
43
+
31
44
  example [
32
45
  ' # Project in current directory - will create a .builders folder and boot file at ./builders/boot.rb',
33
46
  '-b ../config/boot.rb # Project in current directory - will create a .builders folder and boot file at ./config/boot.rb',
@@ -36,32 +49,34 @@ module KManager
36
49
  ]
37
50
 
38
51
  # rubocop:disable Metrics/ParameterLists
39
- def call(project_folder:, builder_folder:, log_level:, force:, template:, **)
52
+ def call(project_folder:, builder_folder:, log_level:, force:, template:, **opts)
40
53
  project_folder = absolute_path(project_folder, Dir.pwd)
41
54
  name = File.basename(project_folder)
42
55
  builder_folder = absolute_path(builder_folder, project_folder)
43
56
  template_root_folder = File.expand_path('~/dev/kgems/k_templates/definitions/starter')
44
57
 
45
- log_params(name, project_folder, builder_folder, force, log_level, template_root_folder, template) if log_level == 'debug'
58
+ log_params(name, project_folder, builder_folder, force, log_level, template_root_folder, template, **opts) if log_level == 'debug'
46
59
 
47
- create_project(name, project_folder, builder_folder, template_root_folder, template) if can_create?(force, builder_folder)
60
+ create_project(name, project_folder, builder_folder, template_root_folder, template, **opts) if can_create?(force, builder_folder)
48
61
  end
49
62
  # rubocop:enable Metrics/ParameterLists
50
63
 
51
64
  private
52
65
 
53
- def create_project(name, project_folder, builder_folder, template_root_folder, template)
66
+ # rubocop:disable Metrics/ParameterLists
67
+ def create_project(name, project_folder, builder_folder, template_root_folder, template, **opts)
54
68
  FileUtils.mkdir_p(project_folder)
55
69
  FileUtils.mkdir_p(builder_folder)
56
70
 
57
71
  # handle_main_start_command
58
72
 
59
- setup_builder_from_template(name, builder_folder, template_root_folder, 'default') unless setup_builder_from_template(name, builder_folder, template_root_folder, template)
73
+ setup_builder_from_template(name, builder_folder, template_root_folder, 'default', **opts) unless setup_builder_from_template(name, builder_folder, template_root_folder, template, **opts)
60
74
 
61
75
  log.info 'Project created'
62
76
  end
77
+ # rubocop:enable Metrics/ParameterLists
63
78
 
64
- def setup_builder_from_template(name, builder_folder, template_root_folder, template = nil)
79
+ def setup_builder_from_template(name, builder_folder, template_root_folder, template, **opts)
65
80
  return false unless template
66
81
 
67
82
  # /Users/davidcruwys/dev/kgems/k_templates/definitions/starter/ruby_gem/.starter.json
@@ -75,7 +90,7 @@ module KManager
75
90
  return false if starter_config['files'].nil? || starter_config['files'].empty?
76
91
 
77
92
  starter_config['files']&.each do |relative_file|
78
- builder.add_file(relative_file, template_file: relative_file, name: name)
93
+ builder.add_file(relative_file, template_file: relative_file, **{ name: name }.merge(opts))
79
94
  end
80
95
  end
81
96
 
@@ -112,8 +127,8 @@ module KManager
112
127
  false
113
128
  end
114
129
 
115
- # rubocop:disable Metrics/ParameterLists
116
- def log_params(name, project_folder, builder_folder, force, log_level, template_root_folder, template)
130
+ # rubocop:disable Metrics/ParameterLists, Metrics/AbcSize
131
+ def log_params(name, project_folder, builder_folder, force, log_level, template_root_folder, template, **opts)
117
132
  log.section_heading('Create new project')
118
133
  log.kv 'name' , name
119
134
  log.kv 'project_folder' , project_folder
@@ -122,8 +137,12 @@ module KManager
122
137
  log.kv 'log_level' , log_level
123
138
  log.kv 'template_root_folder' , template_root_folder
124
139
  log.kv 'template' , template
140
+
141
+ opts.each do |key, value|
142
+ log.kv key, value
143
+ end
125
144
  end
126
- # rubocop:enable Metrics/ParameterLists
145
+ # rubocop:enable Metrics/ParameterLists, Metrics/AbcSize
127
146
  end
128
147
  end
129
148
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KManager
4
+ # Allow existing documents from KDoc and other sources to be imported using the resource manager
5
+ module DocumentImport
6
+ class BuildTag
7
+ include KDoc::Taggable
8
+
9
+ def initialize(key:, type: :container, namespace: nil)
10
+ opts = {
11
+ key: key,
12
+ type: type,
13
+ namespace: namespace
14
+ }
15
+
16
+ initialize_tag(opts)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KManager
4
+ # Alow existing documents from KDoc and other sources to be imported using the resource manager
5
+ module DocumentImport
6
+ module Extension
7
+ include KLog::Logging
8
+
9
+ def import(tag)
10
+ # KManager.find_document(tag)
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ KDoc::Action.include(KManager::DocumentImport::Extension)
17
+ KDoc::Model.include(KManager::DocumentImport::Extension)
18
+ KDoc::CsvDoc.include(KManager::DocumentImport::Extension)
19
+ KDoc::JsonDoc.include(KManager::DocumentImport::Extension)
20
+ KDoc::YamlDoc.include(KManager::DocumentImport::Extension)
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KManager
4
+ # Allow existing documents from KDoc and other sources to be imported using the resource manager
5
+ module DocumentImport
6
+ # Find a document by tag for importing
7
+ class Importer
8
+ def import(tag, area: nil)
9
+ KManager.find_document(tag, area: area)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -5,6 +5,8 @@ module KManager
5
5
  #
6
6
  # TODO: Write Tests
7
7
  class Manager
8
+ include KLog::Logging
9
+
8
10
  attr_accessor :active_uri
9
11
 
10
12
  # NOTE: rename current_resource to active_resource, focused_resource?
@@ -65,6 +67,24 @@ module KManager
65
67
  @areas ||= []
66
68
  end
67
69
 
70
+ # List of resources for an area.
71
+ #
72
+ # if area is nil, then return resources for the area matching the current_resource
73
+ def area_resources(area: nil)
74
+ area = resolve_area(area)
75
+
76
+ log.error 'Could not resolve area' if area.nil?
77
+
78
+ area&.resources
79
+ end
80
+
81
+ # List of documents for an area.
82
+ #
83
+ # if area is nil, for the area matching the current_resource
84
+ def area_documents(area: nil)
85
+ area_resources(area: area)&.flat_map(&:documents)
86
+ end
87
+
68
88
  def add_area(name, namespace: nil)
69
89
  area = find_area(name)
70
90
 
@@ -76,16 +96,7 @@ module KManager
76
96
  end
77
97
 
78
98
  def find_document(tag, area: nil)
79
- area = resolve_area(area)
80
-
81
- log.error 'Could not resolve area' if area.nil?
82
-
83
- log.line
84
- log.error(tag)
85
- log.line
86
-
87
- documents = area.resources.flat_map(&:documents)
88
- documents.find { |d| d.tag == tag }
99
+ area_documents(area: area)&.find { |d| d.tag == tag }
89
100
  end
90
101
 
91
102
  def fire_actions(*actions)
@@ -101,14 +112,14 @@ module KManager
101
112
 
102
113
  def resolve_area(area)
103
114
  if area.nil?
104
- return KManager.current_resource.area if KManager.current_resource
115
+ return current_resource.area if current_resource
105
116
 
106
- return KManager.areas.first
117
+ return areas.first
107
118
  end
108
119
 
109
120
  return area if area.is_a?(Area)
110
121
 
111
- find_area(name)
122
+ find_area(area)
112
123
  end
113
124
 
114
125
  # Return a list of resources for a URI.
@@ -64,7 +64,9 @@ module KManager
64
64
  attribute :document_id , Types::Strict::Integer
65
65
  attribute :document_data , Types::Strict::Any.optional.default # Hash.optional.default(nil) | Types::Strict::Array.of(Types::Strict::Hash).optional.default(nil)
66
66
  attribute :document_key , Types::Strict::String | Types::Strict::Symbol
67
- attribute :document_namespace , Types::Strict::String | Types::Strict::Array.of(Types::Strict::String).optional.default(nil)
67
+ attribute :document_namespace , Types::Strict::String | Types::Strict::Symbol |
68
+ Types::Strict::Array.of(Types::Strict::String).optional.default(nil) |
69
+ Types::Strict::Array.of(Types::Strict::Symbol).optional.default(nil)
68
70
  attribute :document_tag , Types::Strict::String | Types::Strict::Symbol
69
71
  attribute :document_type , Types::Strict::String | Types::Strict::Symbol
70
72
  # TODO: Write code to populate this with the resource line number
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KManager
4
- VERSION = '0.0.28'
4
+ VERSION = '0.0.30'
5
5
  end
data/lib/k_manager.rb CHANGED
@@ -29,6 +29,9 @@ require 'k_manager/resources/mem_resource'
29
29
  require 'k_manager/resources/resource_document_factory'
30
30
  require 'k_manager/resources/resource_factory'
31
31
  require 'k_manager/resources/resource_manager'
32
+ require 'k_manager/document_import/build_tag'
33
+ require 'k_manager/document_import/importer'
34
+ require 'k_manager/document_import/extension'
32
35
  require 'k_manager/document_factory'
33
36
  require 'k_manager/manager'
34
37
  require 'k_manager/area'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.28
4
+ version: 0.0.30
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-07 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: dry-struct
@@ -191,6 +191,9 @@ files:
191
191
  - lib/k_manager/cli/version.rb
192
192
  - lib/k_manager/cli/watch.rb
193
193
  - lib/k_manager/document_factory.rb
194
+ - lib/k_manager/document_import/build_tag.rb
195
+ - lib/k_manager/document_import/extension.rb
196
+ - lib/k_manager/document_import/importer.rb
194
197
  - lib/k_manager/manager.rb
195
198
  - lib/k_manager/overview/dashboard.rb
196
199
  - lib/k_manager/overview/dump_json.rb