appydave-tools 0.3.4 → 0.3.6

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: c5e47cee4b8a3f0c9d7d1714bceeb4a02780cfe441348466ecd822e4e454d0fe
4
- data.tar.gz: 3f035ac5b9e34e819a79c17f3c19a9646ec246017493a63ba20a1096ae86c95f
3
+ metadata.gz: adb0c7689faee4bc0c113a06a96f5c1f3e8537bfa7aff27486ce993edad0a87a
4
+ data.tar.gz: 834961331dacd537494daddd88347f0688499c9f5399b147c0ae1176aa683360
5
5
  SHA512:
6
- metadata.gz: 59aa944562e5a3c28c47e053a49df7d9ea6236268736263dca2d29022ed4d3a70d1a3fe9668b080183dfce38fe520efac252aa2c0fe11f40aa7491a325f88570
7
- data.tar.gz: 55aa8b91b2992fec8968f214baefc896ab816e56a77ff0f724b99d0f3ac10d8eb8446e220beecbac5398b3b23cf46bad14b8fe3dc785af25573cbbbf077e0f87
6
+ metadata.gz: 16676ca28b4c46c6b1bec9aef3ed9c103e426fa582d748bf6d6e4234e002bdfef9dc98e487d5b96a883df4b1e986ebfc7d9d20388a587207c092ec32a778d2e7
7
+ data.tar.gz: d8360470ac1f0015d40c7d6acb9cb7afaf10231f0486015dab83c4f4e88e30fa792419e135b96302c749e38bc999bbfb7884be27d63b56975e1a99e245ff405c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [0.3.5](https://github.com/klueless-io/appydave-tools/compare/v0.3.4...v0.3.5) (2024-05-19)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add support for configurable ([82852f8](https://github.com/klueless-io/appydave-tools/commit/82852f805809b133278de70be24314e83a1d4b05))
7
+
8
+ ## [0.3.4](https://github.com/klueless-io/appydave-tools/compare/v0.3.3...v0.3.4) (2024-05-19)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Add debug capability to ConfigBase and update configurations ([d33c943](https://github.com/klueless-io/appydave-tools/commit/d33c9431a50fa44b2f4db7ccbaf2522105710aa7))
14
+ * resolve cop ([d56f670](https://github.com/klueless-io/appydave-tools/commit/d56f670ec69ea74438947dd1bb7296e7fa28f0f1))
15
+
1
16
  ## [0.3.3](https://github.com/klueless-io/appydave-tools/compare/v0.3.2...v0.3.3) (2024-05-18)
2
17
 
3
18
 
data/images.log ADDED
File without changes
@@ -10,9 +10,16 @@ module Appydave
10
10
 
11
11
  attr_accessor :config_path
12
12
  attr_reader :configurations
13
+ attr_reader :default_block
13
14
 
14
15
  def configure
15
- yield self
16
+ if block_given?
17
+ yield self
18
+ elsif default_block
19
+ default_block.call(self)
20
+ else
21
+ raise Appydave::Tools::Error, 'No configuration block provided'
22
+ end
16
23
  ensure_config_directory
17
24
  end
18
25
 
@@ -21,12 +28,10 @@ module Appydave
21
28
  @configurations[key] = klass.new
22
29
  end
23
30
 
24
- def method_missing(method_name, *args, &block)
25
- if @configurations.key?(method_name)
26
- @configurations[method_name]
27
- else
28
- super
29
- end
31
+ def method_missing(method_name, *_args)
32
+ raise Appydave::Tools::Error, "Configuration not available: #{method_name}" unless @configurations.key?(method_name)
33
+
34
+ @configurations[method_name]
30
35
  end
31
36
 
32
37
  def respond_to_missing?(method_name, include_private = false)
@@ -37,6 +42,10 @@ module Appydave
37
42
  configurations.each_value(&:save)
38
43
  end
39
44
 
45
+ def set_default(&block)
46
+ @default_block = block
47
+ end
48
+
40
49
  def load
41
50
  configurations.each_value(&:load)
42
51
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appydave
4
+ module Tools
5
+ module Configuration
6
+ # Configurable module for handling dynamic configurations in tools and components
7
+ module Configurable
8
+ def config
9
+ Appydave::Tools::Configuration::Config
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -21,6 +21,8 @@ module Appydave
21
21
  result = case format
22
22
  when 'tree'
23
23
  build_tree
24
+ when 'both'
25
+ "#{build_tree}\n\n#{build_content}"
24
26
  else
25
27
  build_content
26
28
  end
@@ -1,6 +1,7 @@
1
1
  # Naming Manager
2
2
 
3
3
  [ChatGPT conversation](https://chatgpt.com/g/g-4dMsIRK3E-ruby-script-assistant/c/cab5e2f7-a607-402f-80b7-9ca262bab8ee)
4
+ [Project Naming Convention](https://chatgpt.com/c/f1cc4bdd-a5ba-494c-bced-461a7f8ce41c)
4
5
 
5
6
  ## Channel Names
6
7
 
@@ -6,6 +6,8 @@ module Appydave
6
6
  module NameManager
7
7
  # Parses and generates project names for Appydave video projects
8
8
  class ProjectName
9
+ include Appydave::Tools::Configuration::Configurable
10
+
9
11
  attr_reader :sequence, :channel_code, :project_name
10
12
 
11
13
  def initialize(file_name)
@@ -29,10 +31,20 @@ module Appydave
29
31
  def parse_file_name(file_name)
30
32
  file_name = File.basename(file_name, File.extname(file_name))
31
33
  parts = file_name.split('-')
34
+ length = parts.length
35
+
36
+ @sequence = part(parts, 0)
37
+ code = part(parts, 1)
38
+ if config.channels.code?(code)
39
+ @channel_code = code
40
+ @project_name = parts[2..length].join('-')
41
+ else
42
+ @project_name = parts[1..length].join('-')
43
+ end
44
+ end
32
45
 
33
- @sequence = parts[0]
34
- @project_name = parts[-1]
35
- @channel_code = parts.length == 3 ? parts[1] : nil
46
+ def part(parts, index)
47
+ parts[index] if parts.length > index
36
48
  end
37
49
  end
38
50
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.3.4'
5
+ VERSION = '0.3.6'
6
6
  end
7
7
  end
@@ -10,6 +10,7 @@ require 'k_log'
10
10
  require 'appydave/tools/version'
11
11
  require 'appydave/tools/gpt_context/file_collector'
12
12
 
13
+ require 'appydave/tools/configuration/configurable'
13
14
  require 'appydave/tools/configuration/config_base'
14
15
  require 'appydave/tools/configuration/config'
15
16
  require 'appydave/tools/configuration/settings_config'
@@ -17,6 +18,13 @@ require 'appydave/tools/configuration/channel_projects_config'
17
18
  require 'appydave/tools/configuration/channels_config'
18
19
  require 'appydave/tools/name_manager/project_name'
19
20
 
21
+ Appydave::Tools::Configuration::Config.set_default do |config|
22
+ config.config_path = File.expand_path('~/.config/appydave')
23
+ config.register(:settings, Appydave::Tools::Configuration::SettingsConfig)
24
+ config.register(:channels, Appydave::Tools::Configuration::ChannelsConfig)
25
+ config.register(:channel_projects, Appydave::Tools::Configuration::ChannelProjectsConfig)
26
+ end
27
+
20
28
  module Appydave
21
29
  module Tools
22
30
  # raise Appydave::Tools::Error, 'Sample message'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appydave-tools",
9
- "version": "0.3.4",
9
+ "version": "0.3.6",
10
10
  "devDependencies": {
11
11
  "@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
12
12
  "@semantic-release/changelog": "^6.0.3",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appydave-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -61,12 +61,14 @@ files:
61
61
  - bin/console
62
62
  - bin/gpt_context.rb
63
63
  - bin/setup
64
+ - images.log
64
65
  - lib/appydave/tools.rb
65
66
  - lib/appydave/tools/configuration/_doc.md
66
67
  - lib/appydave/tools/configuration/channel_projects_config.rb
67
68
  - lib/appydave/tools/configuration/channels_config.rb
68
69
  - lib/appydave/tools/configuration/config.rb
69
70
  - lib/appydave/tools/configuration/config_base.rb
71
+ - lib/appydave/tools/configuration/configurable.rb
70
72
  - lib/appydave/tools/configuration/settings_config copy.xrb
71
73
  - lib/appydave/tools/configuration/settings_config.rb
72
74
  - lib/appydave/tools/gpt_context/file_collector.rb