pdfh 3.3.1 → 4.0.0
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/.editorconfig +0 -15
- data/.gitignore +3 -0
- data/.rubocop.yml +5 -1
- data/.rubocop_todo.yml +5 -18
- data/.simplecov +32 -0
- data/AGENTS.md +174 -0
- data/CHANGELOG.md +74 -9
- data/Gemfile +0 -4
- data/Gemfile.lock +26 -37
- data/README.md +72 -37
- data/Rakefile +24 -6
- data/bin/console +3 -10
- data/bin/run +0 -1
- data/exe/pdfh +1 -1
- data/justfile +65 -0
- data/lib/pdfh/main.rb +25 -120
- data/lib/pdfh/models/document.rb +43 -128
- data/lib/pdfh/models/document_type.rb +35 -69
- data/lib/pdfh/models/run_options.rb +20 -0
- data/lib/pdfh/models/settings.rb +23 -83
- data/lib/pdfh/services/directory_scanner.rb +27 -0
- data/lib/pdfh/services/document_manager.rb +125 -0
- data/lib/pdfh/services/document_matcher.rb +57 -0
- data/lib/pdfh/services/opt_parser.rb +76 -0
- data/lib/pdfh/services/pdf_text_extractor.rb +45 -0
- data/lib/pdfh/services/settings_builder.rb +113 -0
- data/lib/pdfh/services/settings_validator.rb +150 -0
- data/lib/pdfh/utils/console.rb +5 -5
- data/lib/pdfh/utils/date_info.rb +55 -0
- data/lib/pdfh/utils/file_info.rb +47 -0
- data/lib/pdfh/utils/rename_validator.rb +4 -3
- data/lib/pdfh/version.rb +1 -1
- data/lib/pdfh.rb +25 -20
- data/mise.toml +20 -3
- data/pdfh.gemspec +3 -3
- metadata +18 -15
- data/lib/ext/string.rb +0 -9
- data/lib/pdfh/concerns/password_decodable.rb +0 -31
- data/lib/pdfh/models/document_period.rb +0 -37
- data/lib/pdfh/models/document_sub_type.rb +0 -6
- data/lib/pdfh/models/zip_types.rb +0 -17
- data/lib/pdfh/settings_template.rb +0 -21
- data/lib/pdfh/utils/opt_parser.rb +0 -78
- data/lib/pdfh/utils/options.rb +0 -38
- data/lib/pdfh/utils/pdf_file_handler.rb +0 -122
- data/lib/pdfh/utils/settings_builder.rb +0 -62
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3bfbea6779583e5ac915303ce31e9e7460003ba7703a7e90977abf12feb98fa5
|
|
4
|
+
data.tar.gz: a74428a0ba54acb17ee6195c2d6e84fd728a1e509009ed940099c34d56bbdabb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aa97de92e612928c87c6d23df517be4168b8805adea2cd9006953ec00dc738cd6f62d83919e845868244322bd2c0e187df8b0a6402ac078a5d037e8f4851b664
|
|
7
|
+
data.tar.gz: de145b9b13f5f78d3203519e811ad43d124a50a23408583215656a65f06679db2a700ddf2948e0521198c5a387ad464d8cce9caf01a771e5d90d169ab0162826
|
data/.editorconfig
CHANGED
|
@@ -12,20 +12,5 @@ max_line_length = 120
|
|
|
12
12
|
[*.py]
|
|
13
13
|
indent_size = 4
|
|
14
14
|
|
|
15
|
-
[*.rb]
|
|
16
|
-
indent_size = 2
|
|
17
|
-
|
|
18
15
|
[*.md]
|
|
19
16
|
trim_trailing_whitespace = false
|
|
20
|
-
|
|
21
|
-
[*.yml]
|
|
22
|
-
indent_size = 2
|
|
23
|
-
|
|
24
|
-
[*.yaml]
|
|
25
|
-
indent_size = 2
|
|
26
|
-
|
|
27
|
-
[*.json]
|
|
28
|
-
indent_size = 2
|
|
29
|
-
|
|
30
|
-
[*.{js,jsx,ts,tsx}]
|
|
31
|
-
indent_size = 2
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -7,7 +7,7 @@ plugins:
|
|
|
7
7
|
|
|
8
8
|
AllCops:
|
|
9
9
|
NewCops: enable
|
|
10
|
-
TargetRubyVersion: 3.
|
|
10
|
+
TargetRubyVersion: 3.2
|
|
11
11
|
Exclude:
|
|
12
12
|
- doc/**/*
|
|
13
13
|
- pkg/**/*
|
|
@@ -30,3 +30,7 @@ Style/StringLiteralsInInterpolation:
|
|
|
30
30
|
|
|
31
31
|
Layout/HashAlignment:
|
|
32
32
|
EnforcedHashRocketStyle: table
|
|
33
|
+
|
|
34
|
+
Metrics/BlockLength:
|
|
35
|
+
Exclude:
|
|
36
|
+
- spec/**/*
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2026-03-21 12:40:43 UTC using RuboCop version 1.85.1.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
@@ -9,28 +9,15 @@
|
|
|
9
9
|
# Offense count: 10
|
|
10
10
|
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
|
|
11
11
|
Metrics/AbcSize:
|
|
12
|
-
Max:
|
|
12
|
+
Max: 57
|
|
13
13
|
|
|
14
|
-
# Offense count:
|
|
14
|
+
# Offense count: 1
|
|
15
15
|
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
|
16
16
|
# AllowedMethods: refine
|
|
17
17
|
Metrics/BlockLength:
|
|
18
|
-
Max:
|
|
18
|
+
Max: 26
|
|
19
19
|
|
|
20
20
|
# Offense count: 6
|
|
21
21
|
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
|
22
22
|
Metrics/MethodLength:
|
|
23
|
-
Max:
|
|
24
|
-
|
|
25
|
-
# Offense count: 1
|
|
26
|
-
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
|
27
|
-
# AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
|
|
28
|
-
Naming/MethodParameterName:
|
|
29
|
-
Exclude:
|
|
30
|
-
- 'lib/pdfh/utils/console.rb'
|
|
31
|
-
|
|
32
|
-
# Offense count: 3
|
|
33
|
-
# This cop supports safe autocorrection (--autocorrect).
|
|
34
|
-
Style/RedundantStringEscape:
|
|
35
|
-
Exclude:
|
|
36
|
-
- 'lib/pdfh/settings_template.rb'
|
|
23
|
+
Max: 26
|
data/.simplecov
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "English"
|
|
4
|
+
|
|
5
|
+
SimpleCov.start do
|
|
6
|
+
# Basic configuration
|
|
7
|
+
enable_coverage :branch
|
|
8
|
+
minimum_coverage line: 75, branch: 40
|
|
9
|
+
|
|
10
|
+
# Filters to exclude files that don't need coverage
|
|
11
|
+
add_filter "/spec/"
|
|
12
|
+
add_filter "/bin/"
|
|
13
|
+
add_filter "/exe/"
|
|
14
|
+
add_filter "/vendor/"
|
|
15
|
+
|
|
16
|
+
# HTML formatter only - no console noise
|
|
17
|
+
formatter SimpleCov::Formatter::HTMLFormatter
|
|
18
|
+
|
|
19
|
+
# Groups to organize the report
|
|
20
|
+
add_group "Models", "lib/pdfh/models"
|
|
21
|
+
add_group "Services", "lib/pdfh/services"
|
|
22
|
+
add_group "Utils", "lib/pdfh/utils"
|
|
23
|
+
|
|
24
|
+
# Track files
|
|
25
|
+
track_files "lib/**/*.rb"
|
|
26
|
+
|
|
27
|
+
# Show clearer messages on failure
|
|
28
|
+
at_exit do
|
|
29
|
+
# Only run if there is no other error
|
|
30
|
+
SimpleCov.result.format! if $ERROR_INFO.nil? || ($ERROR_INFO.is_a?(SystemExit) && $ERROR_INFO.success?)
|
|
31
|
+
end
|
|
32
|
+
end
|
data/AGENTS.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
Guide for agentic coding assistants working in this repository.
|
|
4
|
+
|
|
5
|
+
## Quick Facts
|
|
6
|
+
|
|
7
|
+
- Project: `pdfh` (Ruby gem + CLI)
|
|
8
|
+
- Runtime Ruby: 4.0 via `mise` (`mise.toml`); gemspec minimum `>= 3.2.0`
|
|
9
|
+
- Linting: RuboCop (TargetRubyVersion 3.2); plugins: `rubocop-performance`, `rubocop-factory_bot`, `rubocop-rake`
|
|
10
|
+
- Tests: RSpec with `expect` syntax and no monkey patching
|
|
11
|
+
- Key runtime deps: `colorize ~> 1.1` (logging colors)
|
|
12
|
+
|
|
13
|
+
## Build, Lint, Test
|
|
14
|
+
|
|
15
|
+
Run from repo root. Prefer `mise` tasks when available.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Tests
|
|
19
|
+
bundle exec rspec
|
|
20
|
+
mise run test
|
|
21
|
+
|
|
22
|
+
# Single test file or example
|
|
23
|
+
bundle exec rspec spec/pdfh/models/document_spec.rb
|
|
24
|
+
bundle exec rspec spec/pdfh/models/document_spec.rb:42
|
|
25
|
+
|
|
26
|
+
# Lint
|
|
27
|
+
bundle exec rubocop
|
|
28
|
+
mise run lint
|
|
29
|
+
|
|
30
|
+
# Auto-fix linting issues
|
|
31
|
+
bundle exec rubocop -a
|
|
32
|
+
|
|
33
|
+
# Build gem
|
|
34
|
+
rake build
|
|
35
|
+
|
|
36
|
+
# Interactive console
|
|
37
|
+
bin/console
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Useful `mise` tasks (`mise.toml`):
|
|
41
|
+
|
|
42
|
+
- `mise run lint`
|
|
43
|
+
- `mise run test` (runs `bundle exec rspec --order random --format documentation`)
|
|
44
|
+
- `mise run check` (runs lint + test)
|
|
45
|
+
- `mise run bump[major|minor|tiny]`
|
|
46
|
+
- `mise run pre` (runs `pre-commit run --all-files`)
|
|
47
|
+
- `mise run update` (runs `bundle update`)
|
|
48
|
+
- `mise run release` (builds gem + pushes to RubyGems)
|
|
49
|
+
|
|
50
|
+
## Repository Layout
|
|
51
|
+
|
|
52
|
+
- `exe/pdfh` CLI entrypoint
|
|
53
|
+
- `lib/pdfh` gem code
|
|
54
|
+
- `lib/pdfh/services` service objects
|
|
55
|
+
- `lib/pdfh/models` domain models
|
|
56
|
+
- `lib/pdfh/utils` shared utilities
|
|
57
|
+
- `spec/` RSpec tests, mirrors `lib/` structure
|
|
58
|
+
|
|
59
|
+
## Processing Flow (High Level)
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
exe/pdfh → Main.start → OptParser → SettingsBuilder → SettingsValidator
|
|
63
|
+
↓
|
|
64
|
+
DirectoryScanner.scan (finds *.pdf)
|
|
65
|
+
↓
|
|
66
|
+
PdfTextExtractor.call
|
|
67
|
+
↓
|
|
68
|
+
DocumentMatcher.match
|
|
69
|
+
↓
|
|
70
|
+
DocumentManager.call
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Key service objects in `lib/pdfh/services/`:
|
|
74
|
+
|
|
75
|
+
- `DirectoryScanner` — globs `*.pdf` from configured `lookup_dirs`
|
|
76
|
+
- `PdfTextExtractor` — shells out `pdftotext -enc UTF-8 -layout`
|
|
77
|
+
- `DocumentMatcher` — iterates `DocumentType`s; matches `re_id` then `re_date`
|
|
78
|
+
- `DocumentManager` — creates dest dir, copies/renames PDF, copies companion files
|
|
79
|
+
- `SettingsBuilder` — locates and parses `pdfh.yml`
|
|
80
|
+
- `SettingsValidator` — validates settings; raises `ArgumentError` on fatal errors, warns and skips on soft errors (e.g. missing lookup dirs)
|
|
81
|
+
- `OptParser` — parses `ARGV` into `RunOptions`
|
|
82
|
+
|
|
83
|
+
## Code Style and Conventions
|
|
84
|
+
|
|
85
|
+
General:
|
|
86
|
+
|
|
87
|
+
- Always include `# frozen_string_literal: true` at the top of Ruby files.
|
|
88
|
+
- Use double-quoted strings (RuboCop enforces this).
|
|
89
|
+
- Max line length is 120 characters (see `.rubocop.yml`).
|
|
90
|
+
- Prefer small, focused classes and service objects for side effects.
|
|
91
|
+
- Avoid global state except for `Pdfh.logger` (centralized logger).
|
|
92
|
+
|
|
93
|
+
Imports / requires:
|
|
94
|
+
|
|
95
|
+
- Use `require` for gem dependencies and `require_relative` for local files in tests.
|
|
96
|
+
- In specs, `spec/spec_helper.rb` loads SimpleCov and shared config; do not load it twice.
|
|
97
|
+
|
|
98
|
+
Formatting:
|
|
99
|
+
|
|
100
|
+
- RuboCop is authoritative; follow alignment and formatting it enforces.
|
|
101
|
+
- Hash alignment uses table style for hash rockets.
|
|
102
|
+
|
|
103
|
+
Types and documentation:
|
|
104
|
+
|
|
105
|
+
- All methods must have YARD documentation.
|
|
106
|
+
- `@return` is mandatory and must describe the return value.
|
|
107
|
+
- Add `@param` tags with types and names for each parameter.
|
|
108
|
+
- For complex methods, add a short explanatory comment block and an `@example`.
|
|
109
|
+
|
|
110
|
+
Naming:
|
|
111
|
+
|
|
112
|
+
- Use descriptive names; classes and modules are `CamelCase`, methods and variables are `snake_case`.
|
|
113
|
+
- Prefer explicit domain names (e.g., `DocumentManager`, `SettingsBuilder`).
|
|
114
|
+
- Keep abbreviations consistent with existing code (e.g., `pdf`, `dir`).
|
|
115
|
+
|
|
116
|
+
Error handling:
|
|
117
|
+
|
|
118
|
+
- Use `Pdfh.logger` for user-facing errors and verbose debug output.
|
|
119
|
+
- `Main.start` rescues `SettingsIOError` and `StandardError` and exits with status 1.
|
|
120
|
+
- Custom exceptions defined in `lib/pdfh.rb`: `SettingsIOError` (config not found), `ReDateError` (date regex no match).
|
|
121
|
+
- `SettingsValidator` raises `ArgumentError` for fatal config errors; warns and skips for recoverable ones (e.g. a lookup dir that doesn't exist).
|
|
122
|
+
- Favor raising domain-specific errors in services and handle them in entrypoints.
|
|
123
|
+
- Avoid rescuing broadly in inner layers unless re-raising with context.
|
|
124
|
+
|
|
125
|
+
Side effects and IO:
|
|
126
|
+
|
|
127
|
+
- File system changes are centralized in `DocumentManager`.
|
|
128
|
+
- Respect `dry_run` / `--dry` to avoid writing files.
|
|
129
|
+
- When copying/moving files, preserve metadata if possible (`FileUtils` with `preserve: true`).
|
|
130
|
+
|
|
131
|
+
Testing:
|
|
132
|
+
|
|
133
|
+
- RSpec uses `expect` syntax and disables monkey patching.
|
|
134
|
+
- Specs mirror the `lib/` structure; keep tests close to the corresponding module.
|
|
135
|
+
- Use FactoryBot factories in `spec/factories/` when needed.
|
|
136
|
+
|
|
137
|
+
## Configuration and Templates
|
|
138
|
+
|
|
139
|
+
- Configuration is loaded from `$PDFH_CONFIG_FILE`, then CWD, `~/.config/`, then `~/`.
|
|
140
|
+
- Document templates use `{placeholder}` tokens defined in `Document#rename_data`.
|
|
141
|
+
- Date regex supports named captures `(?<m>...)` / `(?<y>...)` / `(?<d>...)` or positional captures.
|
|
142
|
+
|
|
143
|
+
## Dependency Checks
|
|
144
|
+
|
|
145
|
+
- External tools: `pdftotext` (required) and `qpdf` (declared but not actively called in v4) must be available; checked via `DependencyValidator`.
|
|
146
|
+
|
|
147
|
+
## Pitfalls
|
|
148
|
+
|
|
149
|
+
- **v4 breaking change**: Config format changed in v4.0.0 — old configs are incompatible. `re_id` matches PDF *text content* (not filename). New placeholders: `{day}`, `{quarter}`, `{bimester}`, `{name}`.
|
|
150
|
+
- **Multi-match behavior**: PDFs matching more than one `DocumentType` are silently skipped (see `Main.start`).
|
|
151
|
+
- **`_unlocked` suffix**: `DocumentManager` strips `_unlocked` when locating companion files — legacy pattern from `qpdf` unlocking.
|
|
152
|
+
- **Config search path**: `$PDFH_CONFIG_FILE` → CWD → `~/.config/` → `~/`. Error message does not list paths checked.
|
|
153
|
+
- **Colorize in tests**: Logging output is colored via `colorize`; specs mock `Console` with shared context `"with silent console"` to suppress output.
|
|
154
|
+
|
|
155
|
+
## Suggested Workflow for Agents
|
|
156
|
+
|
|
157
|
+
- Read existing classes/services before adding new ones to match patterns.
|
|
158
|
+
- Prefer minimal changes; update specs alongside behavior changes.
|
|
159
|
+
- Run `mise run lint` and `mise run test` before finalizing changes.
|
|
160
|
+
- Keep changes localized; avoid touching unrelated files.
|
|
161
|
+
|
|
162
|
+
## Examples
|
|
163
|
+
|
|
164
|
+
Run a single spec:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
bundle exec rspec spec/pdfh/models/document_spec.rb:42
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Run lint + test:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
mise run check
|
|
174
|
+
```
|
data/CHANGELOG.md
CHANGED
|
@@ -1,40 +1,105 @@
|
|
|
1
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## v4.0.0 - 2026-03-21
|
|
4
|
+
|
|
5
|
+
### Breaking
|
|
6
|
+
|
|
7
|
+
- Old settings file is not compatible with this version; update to the new format described in README.
|
|
8
|
+
- Drop password/Base64 handling; require only `pdftotext` command.
|
|
9
|
+
- Remove subtypes and ZIP processing support.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- New name template placeholders: `{day}`, `{quarter}`, `{bimester}`, `{name}`.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Remove `{extra}` and `{type}` placeholders from name template.
|
|
18
|
+
- Refactor processing flow into services (scanner, extractor, matcher, manager).
|
|
19
|
+
- Drop document identification by file name; identify documents by content with `re_id`.
|
|
20
|
+
- Improve logging and error handling with a global logger.
|
|
21
|
+
- Update README usage and configuration docs.
|
|
22
|
+
|
|
23
|
+
## v3.3.1 - 2026-03-06
|
|
24
|
+
|
|
25
|
+
- Add document type required fields validation
|
|
26
|
+
- Upgrade to Ruby 4
|
|
27
|
+
- Upgrade gems and mise tasks
|
|
28
|
+
|
|
29
|
+
## v3.3.0 - 2025-05-06
|
|
30
|
+
|
|
31
|
+
- Add zip file pre-processing and zip_type model
|
|
32
|
+
- Decouple main and opt_parser from ARGV
|
|
33
|
+
- Add PasswordDecodable module and move dependency check to utils
|
|
34
|
+
- Add pre-commit config and update RuboCop config
|
|
35
|
+
- Update Ruby version and dependencies; improve coverage and docs
|
|
36
|
+
|
|
37
|
+
## v3.2.0 - 2025-04-01
|
|
38
|
+
|
|
39
|
+
- Change document_type to a class and add re_date support for sub types
|
|
40
|
+
- Add more config file locations
|
|
41
|
+
- Remove undocumented print_cmd field
|
|
42
|
+
- Add backtrace console output
|
|
43
|
+
- Migrate to mise and upgrade Ruby/dependencies
|
|
44
|
+
|
|
45
|
+
## v3.1.0 - 2024-05-03
|
|
46
|
+
|
|
47
|
+
- Handle store_path placeholders as name_template
|
|
48
|
+
|
|
49
|
+
## v3.0.3 - 2024-03-15
|
|
50
|
+
|
|
51
|
+
- Move document rename to its own object
|
|
52
|
+
- Add debug gem
|
|
53
|
+
- Fix minor documentation issues
|
|
54
|
+
|
|
55
|
+
## v3.0.2 - 2024-01-10
|
|
56
|
+
|
|
2
57
|
- Fix `undefined method` when an invalid option is provided
|
|
3
58
|
- Fix and add tests to get above 90% coverage
|
|
4
59
|
|
|
5
|
-
## v3.0.1
|
|
60
|
+
## v3.0.1 - 2024-01-09
|
|
61
|
+
|
|
6
62
|
- Refactor classes for better readability
|
|
7
63
|
- Upgrade to Ruby v3.3.0 and require at least Ruby 3.0.0
|
|
8
64
|
- Upgrade gem dependencies
|
|
9
65
|
|
|
10
|
-
## v3.0.0
|
|
66
|
+
## v3.0.0 - 2022-08-01
|
|
67
|
+
|
|
11
68
|
- Migrate to `asdf` from `rvm`
|
|
12
69
|
- Upgrade old gems
|
|
13
70
|
- Bump to v3 (as this is project's third iteration)
|
|
14
71
|
|
|
15
|
-
## v0.2.0
|
|
72
|
+
## v0.2.0 - 2021-05-14
|
|
73
|
+
|
|
16
74
|
- Major gem refactoring
|
|
17
75
|
- Change setting `base_path` to `destination_base_path`
|
|
18
76
|
- Add DocumentType listing option on executable file
|
|
19
77
|
- Add process individual documents providing type and files
|
|
78
|
+
|
|
20
79
|
```bash
|
|
21
80
|
pdfh -t document_type_id path/to_files.pdf
|
|
22
81
|
```
|
|
82
|
+
|
|
23
83
|
- Add `settings.yml` template in order to create a sample file
|
|
24
84
|
|
|
25
|
-
## v0.1.9
|
|
85
|
+
## v0.1.9 - 2021-03-02
|
|
86
|
+
|
|
26
87
|
- Add dependencies validation at run
|
|
27
88
|
|
|
28
|
-
## v0.1.5
|
|
89
|
+
## v0.1.5 - 2019-04-01
|
|
90
|
+
|
|
29
91
|
- Add `print_cmd` field in config file for information purposes
|
|
30
92
|
- Settings now validates an unexisting directory
|
|
31
93
|
- Refactor for easier maintenance
|
|
32
94
|
|
|
33
|
-
## v0.1.4
|
|
95
|
+
## v0.1.4 - 2019-01-28
|
|
96
|
+
|
|
34
97
|
- Add titleize format when writing new file
|
|
35
98
|
|
|
36
|
-
## v0.1.3
|
|
99
|
+
## v0.1.3 - 2019-01-18
|
|
100
|
+
|
|
37
101
|
- Fixed copy companion files, which was not copying the files.
|
|
38
102
|
|
|
39
|
-
## v0.1.2
|
|
103
|
+
## v0.1.2 - 2019-01-10
|
|
104
|
+
|
|
40
105
|
- Initial Release
|
data/Gemfile
CHANGED
|
@@ -9,15 +9,11 @@ gem "bundler", "~> 4.0"
|
|
|
9
9
|
gem "code-scanning-rubocop", "~> 0.5"
|
|
10
10
|
gem "debug", "~> 1.8"
|
|
11
11
|
gem "factory_bot", "~> 6.2"
|
|
12
|
-
gem "pry", "~> 0.14"
|
|
13
12
|
gem "rake", "~> 13.0"
|
|
14
13
|
gem "rspec", "~> 3.12"
|
|
15
|
-
gem "rspec_junit_formatter", "~> 0.4"
|
|
16
14
|
gem "rubocop", "~> 1.81"
|
|
17
15
|
gem "rubocop-factory_bot", "~> 2.27"
|
|
18
16
|
gem "rubocop-performance", "~> 1.18"
|
|
19
17
|
gem "rubocop-rake", "~> 0.5"
|
|
20
18
|
gem "rubocop-rspec", "~> 3.7"
|
|
21
19
|
gem "simplecov", "~> 0.22"
|
|
22
|
-
gem "simplecov-console", "~> 0.9"
|
|
23
|
-
gem "versionomy", "~> 0.5"
|
data/Gemfile.lock
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
pdfh (
|
|
4
|
+
pdfh (4.0.0)
|
|
5
5
|
colorize (~> 1.1.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activesupport (8.1.
|
|
10
|
+
activesupport (8.1.2)
|
|
11
11
|
base64
|
|
12
12
|
bigdecimal
|
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
@@ -20,14 +20,13 @@ GEM
|
|
|
20
20
|
securerandom (>= 0.3)
|
|
21
21
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
22
22
|
uri (>= 0.13.1)
|
|
23
|
-
|
|
23
|
+
addressable (2.8.9)
|
|
24
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
24
25
|
ast (2.4.3)
|
|
25
26
|
base64 (0.3.0)
|
|
26
27
|
bigdecimal (4.0.1)
|
|
27
|
-
blockenspiel (0.5.0)
|
|
28
28
|
code-scanning-rubocop (0.6.1)
|
|
29
29
|
rubocop (~> 1.0)
|
|
30
|
-
coderay (1.1.3)
|
|
31
30
|
colorize (1.1.0)
|
|
32
31
|
concurrent-ruby (1.3.6)
|
|
33
32
|
connection_pool (3.0.2)
|
|
@@ -38,42 +37,45 @@ GEM
|
|
|
38
37
|
diff-lcs (1.6.2)
|
|
39
38
|
docile (1.4.1)
|
|
40
39
|
drb (2.2.3)
|
|
41
|
-
erb (6.0.
|
|
40
|
+
erb (6.0.2)
|
|
42
41
|
factory_bot (6.5.6)
|
|
43
42
|
activesupport (>= 6.1.0)
|
|
44
43
|
i18n (1.14.8)
|
|
45
44
|
concurrent-ruby (~> 1.0)
|
|
46
45
|
io-console (0.8.2)
|
|
47
|
-
irb (1.
|
|
46
|
+
irb (1.17.0)
|
|
48
47
|
pp (>= 0.6.0)
|
|
48
|
+
prism (>= 1.3.0)
|
|
49
49
|
rdoc (>= 4.0.0)
|
|
50
50
|
reline (>= 0.4.2)
|
|
51
|
-
json (2.
|
|
51
|
+
json (2.19.2)
|
|
52
|
+
json-schema (6.2.0)
|
|
53
|
+
addressable (~> 2.8)
|
|
54
|
+
bigdecimal (>= 3.1, < 5)
|
|
52
55
|
language_server-protocol (3.17.0.5)
|
|
53
56
|
lint_roller (1.1.0)
|
|
54
57
|
logger (1.7.0)
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
mcp (0.9.0)
|
|
59
|
+
json-schema (>= 4.1)
|
|
60
|
+
minitest (6.0.2)
|
|
61
|
+
drb (~> 2.0)
|
|
57
62
|
prism (~> 1.5)
|
|
58
63
|
parallel (1.27.0)
|
|
59
|
-
parser (3.3.10.
|
|
64
|
+
parser (3.3.10.2)
|
|
60
65
|
ast (~> 2.4.1)
|
|
61
66
|
racc
|
|
62
67
|
pp (0.6.3)
|
|
63
68
|
prettyprint
|
|
64
69
|
prettyprint (0.2.0)
|
|
65
|
-
prism (1.
|
|
66
|
-
pry (0.16.0)
|
|
67
|
-
coderay (~> 1.1)
|
|
68
|
-
method_source (~> 1.0)
|
|
69
|
-
reline (>= 0.6.0)
|
|
70
|
+
prism (1.9.0)
|
|
70
71
|
psych (5.3.1)
|
|
71
72
|
date
|
|
72
73
|
stringio
|
|
74
|
+
public_suffix (7.0.5)
|
|
73
75
|
racc (1.8.1)
|
|
74
76
|
rainbow (3.1.1)
|
|
75
77
|
rake (13.3.1)
|
|
76
|
-
rdoc (7.0
|
|
78
|
+
rdoc (7.2.0)
|
|
77
79
|
erb
|
|
78
80
|
psych (>= 4.0.0)
|
|
79
81
|
tsort
|
|
@@ -89,24 +91,23 @@ GEM
|
|
|
89
91
|
rspec-expectations (3.13.5)
|
|
90
92
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
91
93
|
rspec-support (~> 3.13.0)
|
|
92
|
-
rspec-mocks (3.13.
|
|
94
|
+
rspec-mocks (3.13.8)
|
|
93
95
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
94
96
|
rspec-support (~> 3.13.0)
|
|
95
|
-
rspec-support (3.13.
|
|
96
|
-
|
|
97
|
-
rspec-core (>= 2, < 4, != 2.12.0)
|
|
98
|
-
rubocop (1.82.1)
|
|
97
|
+
rspec-support (3.13.7)
|
|
98
|
+
rubocop (1.85.1)
|
|
99
99
|
json (~> 2.3)
|
|
100
100
|
language_server-protocol (~> 3.17.0.2)
|
|
101
101
|
lint_roller (~> 1.1.0)
|
|
102
|
+
mcp (~> 0.6)
|
|
102
103
|
parallel (~> 1.10)
|
|
103
104
|
parser (>= 3.3.0.2)
|
|
104
105
|
rainbow (>= 2.2.2, < 4.0)
|
|
105
106
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
106
|
-
rubocop-ast (>= 1.
|
|
107
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
107
108
|
ruby-progressbar (~> 1.7)
|
|
108
109
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
109
|
-
rubocop-ast (1.49.
|
|
110
|
+
rubocop-ast (1.49.1)
|
|
110
111
|
parser (>= 3.3.7.2)
|
|
111
112
|
prism (~> 1.7)
|
|
112
113
|
rubocop-factory_bot (2.28.0)
|
|
@@ -128,15 +129,9 @@ GEM
|
|
|
128
129
|
docile (~> 1.1)
|
|
129
130
|
simplecov-html (~> 0.11)
|
|
130
131
|
simplecov_json_formatter (~> 0.1)
|
|
131
|
-
simplecov-console (0.9.4)
|
|
132
|
-
ansi
|
|
133
|
-
simplecov
|
|
134
|
-
terminal-table
|
|
135
132
|
simplecov-html (0.13.2)
|
|
136
133
|
simplecov_json_formatter (0.1.4)
|
|
137
134
|
stringio (3.2.0)
|
|
138
|
-
terminal-table (4.0.0)
|
|
139
|
-
unicode-display_width (>= 1.1.1, < 4)
|
|
140
135
|
tsort (0.2.0)
|
|
141
136
|
tzinfo (2.0.6)
|
|
142
137
|
concurrent-ruby (~> 1.0)
|
|
@@ -144,8 +139,6 @@ GEM
|
|
|
144
139
|
unicode-emoji (~> 4.1)
|
|
145
140
|
unicode-emoji (4.2.0)
|
|
146
141
|
uri (1.1.1)
|
|
147
|
-
versionomy (0.5.0)
|
|
148
|
-
blockenspiel (~> 0.5)
|
|
149
142
|
|
|
150
143
|
PLATFORMS
|
|
151
144
|
ruby
|
|
@@ -156,18 +149,14 @@ DEPENDENCIES
|
|
|
156
149
|
debug (~> 1.8)
|
|
157
150
|
factory_bot (~> 6.2)
|
|
158
151
|
pdfh!
|
|
159
|
-
pry (~> 0.14)
|
|
160
152
|
rake (~> 13.0)
|
|
161
153
|
rspec (~> 3.12)
|
|
162
|
-
rspec_junit_formatter (~> 0.4)
|
|
163
154
|
rubocop (~> 1.81)
|
|
164
155
|
rubocop-factory_bot (~> 2.27)
|
|
165
156
|
rubocop-performance (~> 1.18)
|
|
166
157
|
rubocop-rake (~> 0.5)
|
|
167
158
|
rubocop-rspec (~> 3.7)
|
|
168
159
|
simplecov (~> 0.22)
|
|
169
|
-
simplecov-console (~> 0.9)
|
|
170
|
-
versionomy (~> 0.5)
|
|
171
160
|
|
|
172
161
|
BUNDLED WITH
|
|
173
|
-
4.0.
|
|
162
|
+
4.0.8
|