k_builder 0.0.71 → 0.0.73

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: 608a406238f03125011e9fcf3e09eda00ec82f973ae2a2cafe99119e712b0693
4
- data.tar.gz: 563cc5eb0c7e5aa0cadbbba6b9ad2008339ac4e758bb842b6b17a059e7d46bbd
3
+ metadata.gz: 71d70294c1dc49e1fc67dd77f71414019a3814f44057831273bc79d815146f05
4
+ data.tar.gz: 5d18531c4d7f4ddb2c1cafb8297bf7d2e0c3f708526464d2d700ea7750eb048f
5
5
  SHA512:
6
- metadata.gz: f10c8c559770b885062ac07fa321bfffec918cf09765c1febf287221e3252edbc21e7837d6a9547b57571cc47a5f4cdd487a2c68944e7a1b02d43a7e7d30e109
7
- data.tar.gz: 76d9c0bbcdb2d6163f4258e138c724489cab7b313c9bd0ce5ba7792ef47a6049f345b5118c5e6d397c460c3f21f8250dd625a884bab835ebf611655721d496fb
6
+ metadata.gz: 7f5059460b2ab02d3708de1019a7ca2a9b4974c13e7f6da9b0c1d0aa720cdbdaabd29e3d9cb1451ce3b3db11211bd3fc9fd76edf4d284f12e48d0287ee328289
7
+ data.tar.gz: b02df37b1b11213b71e364d2c881de6df3e09ce355ada72807d30d6a37cca4a3fa263c8539e05cd582a64e3456c10b0ef74fed0a64de711c20bcf4c217fe546d
data/a.txt ADDED
File without changes
data/hooks/update-version CHANGED
@@ -30,4 +30,4 @@ end
30
30
  output.push('')
31
31
 
32
32
  printf "%-25<label>s : %<version>s\n", label: 'GEM VERSION', version: version
33
- File.open('lib/k_builder/version.rb', 'w+') { |f| f.write(output.join("\n")) }
33
+ File.write('lib/k_builder/version.rb', output.join("\n"))
data/k_builder.gemspec CHANGED
@@ -38,11 +38,11 @@ Gem::Specification.new do |spec|
38
38
  spec.require_paths = ['lib']
39
39
  # spec.extensions = ['ext/k_builder/extconf.rb']
40
40
  spec.add_dependency 'handlebars-helpers', '~> 0'
41
+ spec.add_dependency 'k_config', '~> 0'
41
42
  spec.add_dependency 'k_log', '~> 0'
42
43
  spec.add_dependency 'k_type', '~> 0'
43
44
  spec.add_dependency 'k_util', '~> 0'
44
45
  spec.add_dependency 'rubocop', '~> 1.8'
45
46
 
46
- # spec.add_dependency "anyway_config" , ">= 2.0.0"
47
- # spec.add_dependency "config" , ">= 3.0.0"
47
+ spec.metadata['rubygems_mfa_required'] = 'true'
48
48
  end
@@ -54,7 +54,7 @@ module KBuilder
54
54
 
55
55
  # assigns a builder hash and defines builder methods
56
56
  def initialize(configuration = nil)
57
- configuration = KBuilder.configuration if configuration.nil?
57
+ configuration = KConfig.configuration if configuration.nil?
58
58
 
59
59
  @configuration = configuration
60
60
 
@@ -130,7 +130,7 @@ module KBuilder
130
130
  }
131
131
  end
132
132
 
133
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
133
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
134
134
  def add_file(file, **opts)
135
135
  # move to command
136
136
  full_file = target_file(file, **opts) # opts.key?(:folder_key) || opts.key?(:folder) ? target_file(file, folder: opts[:folder], folder_key: opts[:folder_key]) : target_file(file)
@@ -157,7 +157,7 @@ module KBuilder
157
157
 
158
158
  self
159
159
  end
160
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
160
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
161
161
 
162
162
  def play_actions(actions)
163
163
  actions.reject { |action| action[:played] }.each do |action|
@@ -171,6 +171,7 @@ module KBuilder
171
171
  end
172
172
 
173
173
  # certain actions (e.g. set_current_folder) will run independently to play
174
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
174
175
  def run_action(action)
175
176
  case action[:action]
176
177
  when :add_file
@@ -191,6 +192,7 @@ module KBuilder
191
192
  log.error "Unknown action: #{action[:action]}"
192
193
  end
193
194
  end
195
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
194
196
 
195
197
  alias touch add_file # it is expected that you would not supply any options, just a file name
196
198
 
@@ -541,7 +543,6 @@ module KBuilder
541
543
  # FROM k_dsl
542
544
  # system "/usr/local/bin/zsh #{output_file}" if execution_context == :system
543
545
  # fork { exec("/usr/local/bin/zsh #{output_file}") } if execution_context == :fork
544
-
545
546
  end
546
547
  alias rc run_command
547
548
 
@@ -562,13 +563,13 @@ module KBuilder
562
563
 
563
564
  Dir.chdir(tf) do
564
565
  output, status = Open3.capture2(script) # , **opts)
565
-
566
+
566
567
  unless status.success?
567
- log.error("Script failed")
568
+ log.error('Script failed')
568
569
  puts script
569
570
  return nil
570
571
  end
571
-
572
+
572
573
  return output
573
574
  end
574
575
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Attach configuration to the KBuilder module
4
+ module KBuilder
5
+ module ConfigurationExtension
6
+ # Target folders provide a set of named folders that can be written to
7
+ def target_folders=(value)
8
+ @target_folders = value
9
+ end
10
+
11
+ def target_folders
12
+ @target_folders ||= KType::NamedFolders.new
13
+ end
14
+
15
+ # Template folders provides layered folders that templates can exist within
16
+ def template_folders=(value)
17
+ @template_folders = value
18
+ end
19
+
20
+ def template_folders
21
+ @template_folders ||= KType::LayeredFolders.new
22
+ end
23
+
24
+ # Custom debug method for k_builder
25
+ #
26
+ # usage:
27
+ # config.debug(:k_builder_debug)
28
+ def k_builder_debug
29
+ target_folders.debug(title: 'target_folders')
30
+
31
+ template_folders.debug(title: 'template folders (search order)')
32
+ ''
33
+ end
34
+
35
+ # Custom initialize_copy method for k_builder. This is called during clone
36
+ def k_builder_initialize_copy(orig)
37
+ @target_folders = orig.target_folders.clone
38
+ @template_folders = orig.template_folders.clone
39
+ end
40
+ end
41
+ end
42
+
43
+ puts 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
44
+ KConfig::Configuration.register(:k_builder, KBuilder::ConfigurationExtension)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KBuilder
4
- VERSION = '0.0.71'
4
+ VERSION = '0.0.73'
5
5
  end
data/lib/k_builder.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rubocop'
4
- require "open3"
4
+ require 'open3'
5
5
 
6
+ require 'k_config'
6
7
  require 'k_log'
7
8
  require 'k_util'
8
9
  require 'k_type'
9
10
  require 'k_builder/version'
10
11
  require 'k_builder/base_builder'
11
- require 'k_builder/base_configuration'
12
- require 'k_builder/configuration'
12
+ require 'k_builder/configuration_extension'
13
13
  require 'k_builder/file_segments'
14
14
 
15
15
  # should commands be in their own gem?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.71
4
+ version: 0.0.73
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-01-26 00:00:00.000000000 Z
11
+ date: 2022-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: handlebars-helpers
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: k_config
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: k_log
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +117,7 @@ files:
103
117
  - Sample.drawio
104
118
  - Sample.xml
105
119
  - USAGE.md
120
+ - a.txt
106
121
  - bin/console
107
122
  - bin/k
108
123
  - bin/kgitsync
@@ -113,11 +128,10 @@ files:
113
128
  - k_builder.gemspec
114
129
  - lib/k_builder.rb
115
130
  - lib/k_builder/base_builder.rb
116
- - lib/k_builder/base_configuration.rb
117
131
  - lib/k_builder/commands/base_command.rb
118
132
  - lib/k_builder/commands/code_syntax_highlighter_command.rb
119
133
  - lib/k_builder/commands/rubo_cop_command.rb
120
- - lib/k_builder/configuration.rb
134
+ - lib/k_builder/configuration_extension.rb
121
135
  - lib/k_builder/file_segments.rb
122
136
  - lib/k_builder/version.rb
123
137
  - usage/_out1.png
@@ -134,6 +148,7 @@ metadata:
134
148
  homepage_uri: http://appydave.com
135
149
  source_code_uri: https://github.com/klueless-io/k_builder
136
150
  changelog_uri: https://github.com/klueless-io/k_builder/commits/master
151
+ rubygems_mfa_required: 'true'
137
152
  post_install_message:
138
153
  rdoc_options: []
139
154
  require_paths:
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KBuilder
4
- # Base configuration object for all k_builder* GEM
5
- class BaseConfiguration
6
- class << self
7
- # Attach a child configuration with it's own settings to a parent configuration
8
- #
9
- # @param [Class] klass_child what class would you like as the child
10
- # @param [Class] klass_parent what class would you like to extend with a new child configuration
11
- # @param [Symbol] accessor_name what is the name of the accessor that you are adding
12
- def attach_config_to_parent(klass_child, klass_parent, accessor_name)
13
- # Create a memoized getter to an instance of the attaching class (:klass_child)
14
- #
15
- # def third_party
16
- # @third_party ||= KBuilder::ThirdPartyGem::Configuration.new
17
- # end
18
- klass_parent.send(:define_method, accessor_name) do
19
- return instance_variable_get("@#{accessor_name}") if instance_variable_defined?("@#{accessor_name}")
20
-
21
- instance_variable_set("@#{accessor_name}", klass_child.new)
22
- end
23
- end
24
- alias attach_to attach_config_to_parent
25
- end
26
-
27
- # move out into module
28
- def to_h
29
- hash = {}
30
- instance_variables.each do |var|
31
- value = instance_variable_get(var)
32
-
33
- value = KUtil.data.to_hash(value) if complex_type?(value)
34
-
35
- hash[var.to_s.delete('@')] = value
36
- end
37
- hash
38
- end
39
-
40
- # This code is being moved into k_util (data)
41
- # Any basic (aka primitive) type
42
- def basic_type?(value)
43
- value.is_a?(String) ||
44
- value.is_a?(Symbol) ||
45
- value.is_a?(FalseClass) ||
46
- value.is_a?(TrueClass) ||
47
- value.is_a?(Integer) ||
48
- value.is_a?(Float)
49
- end
50
-
51
- # Anything container that is not a regular class
52
- def complex_type?(value)
53
- value.is_a?(Array) ||
54
- value.is_a?(Hash) ||
55
- value.is_a?(Struct) ||
56
- value.is_a?(OpenStruct) ||
57
- value.respond_to?(:to_h)
58
- end
59
-
60
- def kv(name, value)
61
- puts "#{name.rjust(30)} : #{value}"
62
- end
63
- end
64
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Attach configuration to the KBuilder module
4
- module KBuilder
5
- # Configuration for webpack5/builder
6
- class << self
7
- attr_writer :configuration
8
-
9
- def configuration(name = :default)
10
- @configuration ||= Hash.new do |h, key|
11
- h[key] = KBuilder::Configuration.new
12
- end
13
- @configuration[name]
14
- end
15
-
16
- def reset(name = :default)
17
- @configuration ||= Hash.new do |h, key|
18
- h[key] = KBuilder::Configuration.new
19
- end
20
- @configuration[name] = KBuilder::Configuration.new
21
- end
22
-
23
- def configure(name = :default)
24
- yield(configuration(name))
25
- end
26
- end
27
-
28
- # Does this class need to move out into k_types?
29
- # It is being used with k_manager in a similar fashion
30
- #
31
- # Configuration class
32
- class Configuration < BaseConfiguration
33
- include KLog::Logging
34
-
35
- # Target folders provide a set named folders that can be written to
36
- attr_accessor :target_folders
37
-
38
- # Template folders provides layered folders that templates can exist within
39
- attr_accessor :template_folders
40
-
41
- def initialize
42
- super
43
- # @target_folder = Dir.getwd
44
- # @template_folder = File.join(Dir.getwd, '.templates')
45
- # @global_template_folder = nil
46
- @target_folders = KType::NamedFolders.new
47
- @template_folders = KType::LayeredFolders.new
48
- end
49
-
50
- def initialize_copy(orig)
51
- super(orig)
52
-
53
- @target_folders = orig.target_folders.clone
54
- @template_folders = orig.template_folders.clone
55
- end
56
-
57
- def debug(heading: 'kbuilder base configuration')
58
- log.section_heading 'kbuilder base configuration' if heading
59
-
60
- # TODO: Add name to configuration object
61
- # Don't have support for name on the configuration object yet
62
- # log.kv 'config name', name
63
-
64
- target_folders.debug(title: 'target_folders')
65
-
66
- # log.info ''
67
-
68
- template_folders.debug(title: 'template folders (search order)')
69
- ''
70
- end
71
- end
72
- end