k_manager 0.0.13 → 0.0.22
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/.rubocop.yml +1 -0
- data/Gemfile +18 -0
- data/Rakefile +2 -0
- data/docs/flow.drawio +16 -0
- data/exe/k_manager +20 -0
- data/k_manager.gemspec +6 -0
- data/lib/k_manager/area.rb +47 -0
- data/lib/k_manager/document_factory.rb +74 -0
- data/lib/k_manager/manager.rb +58 -0
- data/lib/k_manager/overview/dashboard.rb +187 -0
- data/lib/k_manager/overview/dump_json.rb +35 -0
- data/lib/k_manager/overview/models.rb +76 -0
- data/lib/k_manager/overview/queries.rb +53 -0
- data/lib/k_manager/resources/base_resource.rb +189 -52
- data/lib/k_manager/resources/file_resource.rb +80 -58
- data/lib/k_manager/resources/{ruby_file_resource.rb → file_resources/ruby_file_resource.rb} +0 -0
- data/lib/k_manager/resources/{unknown_file_resource.rb → file_resources/unknown_file_resource.rb} +0 -0
- data/lib/k_manager/resources/mem_resource.rb +17 -0
- data/lib/k_manager/resources/resource_document_factory.rb +119 -0
- data/lib/k_manager/resources/resource_factory.rb +28 -0
- data/lib/k_manager/resources/resource_manager.rb +216 -0
- data/lib/k_manager/resources/resource_set.rb +90 -0
- data/lib/k_manager/resources/web_resource.rb +113 -0
- data/lib/k_manager/version.rb +1 -1
- data/lib/k_manager/watcher.rb +75 -0
- data/lib/k_manager/{x_project.rb → x_resource_documents/x_project.rb} +0 -0
- data/lib/k_manager/{x_project_manager.rb → x_resource_documents/x_project_manager.rb} +0 -0
- data/lib/k_manager/{x_register.rb → x_resource_documents/x_register.rb} +0 -0
- data/lib/k_manager.rb +93 -20
- data/tasks/watch.rake +113 -0
- metadata +70 -24
- data/Assessment1.md +0 -127
- data/Assessment2.md +0 -88
- data/lib/k_manager/create_document.rb +0 -31
- data/lib/k_manager/documents/basic_document.rb +0 -21
- data/lib/k_manager/documents/builder_document.rb +0 -18
- data/lib/k_manager/documents/document_taggable.rb +0 -94
- data/lib/k_manager/documents/model_document.rb +0 -19
- data/lib/k_manager/project.rb +0 -50
- data/lib/k_manager/resources/csv_file_resource.rb +0 -27
- data/lib/k_manager/resources/factories/document_factory.rb +0 -52
- data/lib/k_manager/resources/json_file_resource.rb +0 -22
- data/lib/k_manager/resources/yaml_file_resource.rb +0 -21
data/lib/k_manager/project.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KManager
|
4
|
-
require 'handlebars/helpers/string_formatting/dasherize'
|
5
|
-
|
6
|
-
# A project represents all the DSL and Data resources that are available, it keeps a track of
|
7
|
-
# the in memory state of the resources, are they loaded into memory or not.
|
8
|
-
class Project
|
9
|
-
# Project name
|
10
|
-
attr_reader :name
|
11
|
-
|
12
|
-
# Project namespace, aka namespace root
|
13
|
-
attr_reader :namespace
|
14
|
-
|
15
|
-
# Configuration for this project
|
16
|
-
attr_reader :config
|
17
|
-
|
18
|
-
# List of resources attached to this project
|
19
|
-
attr_reader :resources
|
20
|
-
|
21
|
-
def initialize(name, config = nil, **opts)
|
22
|
-
raise KType::Error, 'Provide a project name' unless name.is_a?(String) || name.is_a?(Symbol)
|
23
|
-
|
24
|
-
@name = name
|
25
|
-
@config = config || KManager::Configuration::ProjectConfig.new
|
26
|
-
@resources = []
|
27
|
-
|
28
|
-
initialize_opts(opts)
|
29
|
-
end
|
30
|
-
|
31
|
-
def add_resource(resource)
|
32
|
-
# Need to check if this and resource.attach_project need to delegate to each other
|
33
|
-
# Need to check that resources can't be added twice
|
34
|
-
# Tests are required
|
35
|
-
@resources << resource
|
36
|
-
end
|
37
|
-
|
38
|
-
# Infer key is the project name stored in dash-case
|
39
|
-
def infer_key
|
40
|
-
Handlebars::Helpers::StringFormatting::Dasherize.new.parse(name.to_s.gsub('_', '-'))
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def initialize_opts(opts)
|
46
|
-
# project name is often a good default for the namespace
|
47
|
-
@namespace = opts[:namespace] || name
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'csv'
|
4
|
-
|
5
|
-
module KManager
|
6
|
-
module Resources
|
7
|
-
# Represents a CSV file resource.
|
8
|
-
class CsvFileResource < KManager::Resources::FileResource
|
9
|
-
def initialize(**opts)
|
10
|
-
super(**opts)
|
11
|
-
@type = :csv
|
12
|
-
end
|
13
|
-
|
14
|
-
def load_document
|
15
|
-
data = []
|
16
|
-
CSV.parse(content, headers: true, header_converters: :symbol).each do |row|
|
17
|
-
data << row.to_h
|
18
|
-
end
|
19
|
-
document.data = data
|
20
|
-
end
|
21
|
-
|
22
|
-
# def debug
|
23
|
-
# tp self.document.data, self.document.data.first.to_h.keys
|
24
|
-
# end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# # frozen_string_literal: true
|
3
|
-
# require 'csv'
|
4
|
-
|
5
|
-
# module KDsl
|
6
|
-
# module Resources
|
7
|
-
# module Factories
|
8
|
-
# # Base factory for creationg resource_documents
|
9
|
-
# # Tightly coupled to the resource using polymorphic composition
|
10
|
-
# # Something WRONG, should this be a module include instead of a Forwardable Class?
|
11
|
-
# class DocumentFactory
|
12
|
-
# extend Forwardable
|
13
|
-
|
14
|
-
# attr_reader :resource
|
15
|
-
|
16
|
-
# def_delegator :resource, :project
|
17
|
-
# def_delegator :resource, :content
|
18
|
-
# def_delegator :resource, :documents
|
19
|
-
# def_delegator :resource, :new_document
|
20
|
-
# def_delegator :resource, :add_document
|
21
|
-
# def_delegator :resource, :infer_document_key
|
22
|
-
# def_delegator :resource, :infer_document_type
|
23
|
-
# def_delegator :resource, :infer_document_namespace
|
24
|
-
|
25
|
-
# def initialize(resource, resource_type)
|
26
|
-
# @resource = resource
|
27
|
-
# resource.resource_type = resource_type
|
28
|
-
# end
|
29
|
-
|
30
|
-
# def self.instance(resource, source, file)
|
31
|
-
# if source === KDsl::Resources::Resource::SOURCE_FILE
|
32
|
-
# extension = File.extname(file).downcase
|
33
|
-
|
34
|
-
# case extension
|
35
|
-
# when '.rb'
|
36
|
-
# return KDsl::Resources::Factories::RubyDocumentFactory.new(resource)
|
37
|
-
# when '.csv'
|
38
|
-
# return KDsl::Resources::Factories::CsvDocumentFactory.new(resource)
|
39
|
-
# when '.json'
|
40
|
-
# return KDsl::Resources::Factories::JsonDocumentFactory.new(resource)
|
41
|
-
# when '.yaml'
|
42
|
-
# return KDsl::Resources::Factories::YamlDocumentFactory.new(resource)
|
43
|
-
# end
|
44
|
-
# end
|
45
|
-
|
46
|
-
# return KDsl::Resources::Factories::UnknownDocumentFactory.new(resource)
|
47
|
-
# end
|
48
|
-
|
49
|
-
# end
|
50
|
-
# end
|
51
|
-
# end
|
52
|
-
# end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KManager
|
4
|
-
module Resources
|
5
|
-
# Represents a JSON file resource.
|
6
|
-
class JsonFileResource < KManager::Resources::FileResource
|
7
|
-
def initialize(**opts)
|
8
|
-
super(**opts)
|
9
|
-
@type = :json
|
10
|
-
end
|
11
|
-
|
12
|
-
def load_document
|
13
|
-
data = JSON.parse(content)
|
14
|
-
document.data = data
|
15
|
-
end
|
16
|
-
|
17
|
-
# def debug
|
18
|
-
# L.ostruct(KDsl::Util.data.to_struct(self.document.data))
|
19
|
-
# end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module KManager
|
4
|
-
module Resources
|
5
|
-
# Represents a YAML file resource.
|
6
|
-
class YamlFileResource < KManager::Resources::FileResource
|
7
|
-
def initialize(**opts)
|
8
|
-
super(**opts)
|
9
|
-
@type = :yaml
|
10
|
-
end
|
11
|
-
|
12
|
-
def load_document
|
13
|
-
data = YAML.safe_load(content)
|
14
|
-
document.data = data
|
15
|
-
end
|
16
|
-
# def debug
|
17
|
-
# L.ostruct(KDsl::Util.data.to_struct(self.document.data))
|
18
|
-
# end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|