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 +4 -4
- data/CHANGELOG.md +15 -0
- data/CLAUDE.md +152 -0
- data/README.md +52 -3
- data/lib/appydave/tools/version.rb +1 -1
- data/package.json +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5600c6b83ba9bf32a0954deaf91167a157826b2de2232c21fe51736a2f2e8b29
|
4
|
+
data.tar.gz: 389ac6da8c18a561ff276ebb49d3ef063b9c1965b190333a813e5f620e846b3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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.
|
data/package.json
CHANGED
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.
|
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-
|
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
|