appydave-tools 0.14.0 → 0.14.1

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: 27653d19d02fd654b0419cd8663e5df8ba23dcb828f1e72cf78af006be9fe1eb
4
- data.tar.gz: 5737213d8a550640adf592bc735550525c890a9000a5b599e5e1c243276dedfc
3
+ metadata.gz: 5600c6b83ba9bf32a0954deaf91167a157826b2de2232c21fe51736a2f2e8b29
4
+ data.tar.gz: 389ac6da8c18a561ff276ebb49d3ef063b9c1965b190333a813e5f620e846b3d
5
5
  SHA512:
6
- metadata.gz: 36bd14b54f904889546d1f9abcc7c302029d65b8249a34c7b1e631c19c4ce197302387642050e759bb2b3154b840ef1019d7e78d5e6752f29584ed5a20ae1111
7
- data.tar.gz: 897a920af74cb16d47121eac164384bcf790316200effc5b8151ab96deafc03ea2e84d77f89b59600911504ba574cc2471e98375b167313b3231a8d3cc963dae
6
+ metadata.gz: ee9e4ea0e3e8c03c87ad0bcc7cf2af971c11c4f8966fedfa57c1813ac8154546156d70f353c22f607f3d6f8c863932a645503f50d3be67184dff418f7e5f7573
7
+ data.tar.gz: '08ab2c3240d21b647b2a76d037069e0e79655c3e982da82a48240a2748cb2d7a6cd5f3e76fbfd2db003262437179d657b7073863f1f3b4b14acbc6734865b775'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # [0.14.0](https://github.com/appydave/appydave-tools/compare/v0.13.0...v0.14.0) (2025-04-27)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * 'cops' ([51bc6f2](https://github.com/appydave/appydave-tools/commit/51bc6f2e7bd08a3aff165e6d488f3f99c4ab7f45))
7
+ * ci ([11e934b](https://github.com/appydave/appydave-tools/commit/11e934b2f4f6be2457dea65c46b37ae350480b91))
8
+ * cops ([94817c6](https://github.com/appydave/appydave-tools/commit/94817c6ecc930dcb79a59fa7d6d977ba2aa197b9))
9
+ * update gem file ([9b0d21d](https://github.com/appydave/appydave-tools/commit/9b0d21d278a3c2bd6669122f33e55f084c76997b))
10
+
11
+
12
+ ### Features
13
+
14
+ * update gem file ([b15dbcb](https://github.com/appydave/appydave-tools/commit/b15dbcbb13e0025f82ab54d8a87104d0d0fa4e14))
15
+
1
16
  # [0.13.0](https://github.com/appydave/appydave-tools/compare/v0.12.0...v0.13.0) (2024-12-03)
2
17
 
3
18
 
data/CLAUDE.md ADDED
@@ -0,0 +1,152 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Common Commands
6
+
7
+ ### Development Setup
8
+ ```bash
9
+ bin/setup # Install dependencies and setup development environment
10
+ bin/console # Interactive Ruby console for experimentation
11
+ ```
12
+
13
+ ### CLI Tools Usage
14
+
15
+ #### GPT Context Gatherer
16
+ Collect and organize project files for AI context:
17
+
18
+ ```bash
19
+ # Basic usage - gather files with debug output and file output
20
+ gpt_context -i '**/*.rb' -e 'spec/**/*' -d -o context.txt
21
+
22
+ # Multiple formats and patterns
23
+ gpt_context -i 'lib/**/*.rb' -i 'bin/**/*.rb' -f tree,content -d
24
+
25
+ # Advanced web project filtering
26
+ gpt_context -i 'apps/**/*.ts' -i 'apps/**/*.tsx' -e '**/node_modules/**/*' -e '**/_generated/**/*' -d -f tree -o typescript.txt
27
+
28
+ # Tree view only for project structure
29
+ gpt_context -i '**/*' -e '**/node_modules/**/*' -e '.git/**/*' -f tree -d
30
+
31
+ # Line-limited content gathering
32
+ gpt_context -i '**/*.rb' -l 20 -f content -d
33
+
34
+ # Multiple output targets
35
+ gpt_context -i 'docs/**/*' -f tree,content -o clipboard -o docs-context.txt
36
+ ```
37
+
38
+ #### Other CLI Tools
39
+ ```bash
40
+ # YouTube video management
41
+ bin/youtube_manager.rb get [options]
42
+ bin/youtube_manager.rb update [options]
43
+
44
+ # Subtitle processing
45
+ bin/subtitle_manager.rb clean [options]
46
+ bin/subtitle_manager.rb join [options]
47
+
48
+ # AI prompt tools
49
+ bin/prompt_tools.rb completion [options]
50
+
51
+ # YouTube automation workflows
52
+ bin/youtube_automation.rb [workflow-command]
53
+ ```
54
+
55
+ ### Testing & Quality
56
+ ```bash
57
+ rake spec # Run all RSpec tests
58
+ rake # Default task: compile, spec (clobber compile spec)
59
+ guard # Watch files and auto-run tests + rubocop on changes
60
+ bundle exec rspec -f doc # Run tests with detailed documentation format
61
+ ```
62
+
63
+ ### Linting & Style
64
+ ```bash
65
+ rubocop # Run RubyGem style checks
66
+ bundle exec rubocop --format clang # Run with clang format (as used in Guard)
67
+ ```
68
+
69
+ ### Build & Release
70
+ ```bash
71
+ rake build # Build the gem
72
+ rake publish # Build and publish gem to RubyGems.org
73
+ rake clean # Remove built *.gem files
74
+ gem build # Build gemspec into .gem file
75
+ ```
76
+
77
+ ## Architecture Overview
78
+
79
+ This is a Ruby gem called `appydave-tools` that provides YouTube automation and content creation tools.
80
+
81
+ ### Core Structure
82
+ - **CLI Tools**: Multiple executable scripts in `bin/` for different functionalities
83
+ - **Modular Design**: Organized into focused modules under `lib/appydave/tools/`
84
+ - **Configuration System**: Flexible config management with channel and project settings
85
+ - **Type System**: Custom type classes for data validation and transformation
86
+
87
+ ### Key Components
88
+
89
+ #### CLI Actions (`lib/appydave/tools/cli_actions/`)
90
+ - Base action pattern for command-line operations
91
+ - YouTube video management (get, update)
92
+ - AI prompt completion workflows
93
+
94
+ #### Configuration (`lib/appydave/tools/configuration/`)
95
+ - Multi-channel YouTube setup support
96
+ - Project folder management (content, video, published, abandoned)
97
+ - OpenAI integration configuration
98
+ - Channel-specific settings (code, name, youtube_handle)
99
+
100
+ #### GPT Context (`lib/appydave/tools/gpt_context/`)
101
+ - File collection for AI context gathering
102
+ - Content filtering and organization
103
+ - Output handling for various formats
104
+
105
+ #### YouTube Management (`lib/appydave/tools/youtube_manager/`)
106
+ - YouTube API authorization and authentication
107
+ - Video metadata retrieval and updates
108
+ - Caption/subtitle management
109
+ - Detailed reporting capabilities
110
+
111
+ #### Subtitle Management (`lib/appydave/tools/subtitle_manager/`)
112
+ - SRT file cleaning and normalization
113
+ - Multi-part subtitle joining
114
+ - Timeline synchronization
115
+
116
+ ### Type System (`lib/appydave/tools/types/`)
117
+ - `BaseModel`: Foundation for data models with validation
118
+ - `ArrayType` & `HashType`: Collection type wrappers
119
+ - `IndifferentAccessHash`: Symbol/string key flexibility
120
+
121
+ ## Development Conventions
122
+
123
+ ### Ruby Style
124
+ - All Ruby files must start with `# frozen_string_literal: true`
125
+ - Follow existing code patterns and naming conventions
126
+ - Use the Guard setup for continuous testing during development
127
+
128
+ ### Testing
129
+ - RSpec for all testing
130
+ - No `require` statements needed in spec files (handled by spec_helper)
131
+ - VCR for HTTP request mocking (YouTube API calls)
132
+ - SimpleCov for coverage reporting
133
+
134
+ ### File Organization
135
+ - CLI executables in `bin/`
136
+ - Core library code in `lib/appydave/tools/`
137
+ - Tests mirror lib structure in `spec/`
138
+ - Configuration examples and docs in respective `_doc.md` files
139
+
140
+ ## Key Dependencies
141
+ - `google-api-client`: YouTube API integration
142
+ - `ruby-openai`: OpenAI GPT integration
143
+ - `activemodel`: Data validation and modeling
144
+ - `clipboard`: System clipboard operations
145
+ - `dotenv`: Environment variable management
146
+
147
+ ## Configuration Files
148
+ The gem uses JSON configuration for:
149
+ - Channel definitions (code, name, youtube_handle)
150
+ - Project folder paths (content, video, published, abandoned)
151
+ - OpenAI API settings
152
+ - YouTube automation workflows
data/README.md CHANGED
@@ -33,7 +33,52 @@ See all [stories](./STORIES.md)
33
33
 
34
34
  ## Usage
35
35
 
36
- - [GPT Context Gatherer](./docs/usage/gpt-context.md)
36
+ ### CLI Tools
37
+
38
+ This gem provides several command-line tools for content creation and YouTube automation:
39
+
40
+ #### GPT Context Gatherer
41
+ Collect and organize project files for AI context analysis:
42
+
43
+ ```bash
44
+ # Basic usage - gather all Ruby files, exclude specs
45
+ gpt_context -i '**/*.rb' -e 'spec/**/*' -d -o context.txt
46
+
47
+ # Multiple patterns with tree and content output
48
+ gpt_context -i 'lib/**/*.rb' -i 'bin/**/*.rb' -f tree,content -d
49
+
50
+ # Advanced filtering for web projects
51
+ gpt_context -i 'apps/**/*.ts' -i 'apps/**/*.tsx' -e '**/node_modules/**/*' -e '**/_generated/**/*' -d -f tree -o typescript-files.txt
52
+
53
+ # Documentation and config files
54
+ gpt_context -i 'docs/**/*' -i '**/*.json' -i '**/*.config.*' -e '**/node_modules/**/*' -d -f tree
55
+ ```
56
+
57
+ See detailed usage guide: [GPT Context Gatherer](./docs/usage/gpt-context.md)
58
+
59
+ #### YouTube Manager
60
+ ```bash
61
+ # Get video details
62
+ bin/youtube_manager.rb get [options]
63
+
64
+ # Update video metadata
65
+ bin/youtube_manager.rb update [options]
66
+ ```
67
+
68
+ #### Subtitle Manager
69
+ ```bash
70
+ # Clean subtitle files
71
+ bin/subtitle_manager.rb clean [options]
72
+
73
+ # Join multiple subtitle parts
74
+ bin/subtitle_manager.rb join [options]
75
+ ```
76
+
77
+ #### Prompt Tools
78
+ ```bash
79
+ # Run AI prompt completion
80
+ bin/prompt_tools.rb completion [options]
81
+ ```
37
82
 
38
83
 
39
84
  ## Development
@@ -51,8 +96,12 @@ You can also run `bin/console` for an interactive prompt that will allow you to
51
96
  ```bash
52
97
  bin/console
53
98
 
54
- Aaa::Bbb::Program.execute()
55
- # => ""
99
+ Appydave::Tools::VERSION
100
+ # => "0.14.0"
101
+
102
+ # Access configuration
103
+ config = Appydave::Tools::Configuration::Config.new
104
+ # => #<Appydave::Tools::Configuration::Config:...>
56
105
  ```
57
106
 
58
107
  `appydave-tools` is setup with Guard, run `guard`, this will watch development file changes and run tests automatically, if successful, it will then run rubocop for style quality.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.14.0'
5
+ VERSION = '0.14.1'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appydave-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-04-27 00:00:00.000000000 Z
11
+ date: 2025-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -165,6 +165,7 @@ files:
165
165
  - ".rspec"
166
166
  - ".rubocop.yml"
167
167
  - CHANGELOG.md
168
+ - CLAUDE.md
168
169
  - CODE_OF_CONDUCT.md
169
170
  - Gemfile
170
171
  - Guardfile