appydave-tools 0.86.1 → 0.86.2

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: 37d050366ecd949fa4cc351ac5de8cde5f862f41c1ac069fa564593012978b33
4
- data.tar.gz: d2d64869d49ebcfc79db5a08f5e13a09bb83311fe3cd1203cf33810e61c645d0
3
+ metadata.gz: 3be4f6a81f4b071dd4b4577f7dde963c256a1509fdb5fcd782cfb993c31a47b5
4
+ data.tar.gz: 39453b87b52000cc4e0f807eb4429b69ea46475c680d79ca8def692993a7199e
5
5
  SHA512:
6
- metadata.gz: c64d1feb8e386fa7d2d7df5a432202fa84d3ea62e02324a4337074e541d3468d08055d361df6ce0bba2f8688b646b225fcd3a0479b5ff1f393715638d9553743
7
- data.tar.gz: 7e5550b06f463b43a9d3598bc65eb9e39389efc659664f14cc8a7bf222ac13e034375b24a14e3d2c8f089a40d605fad8b93237b4be77fa63fc071d4d3aec27ff
6
+ metadata.gz: 223e8bdd5930609768a807acc9527f186b5630ed98cf1dd4f1e017cc64cbb14deee3227da00e95b12e5040f7e8b239dba23378de0b3142159859aa03f8db2497
7
+ data.tar.gz: a513af58e2ceab2e672c136a2e31909090b6dca2e54128ab763b59a605b6779fa3895919cc62647c3e2311832d2a2ed57fa7bb535a5636fe3342cd9d40493cf9
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.86.1](https://github.com/appydave/appydave-tools/compare/v0.86.0...v0.86.1) (2026-06-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * ci: bump pnpm/action-setup to v6 and actions/cache to v5 (Node 24) ([25a7df3](https://github.com/appydave/appydave-tools/commit/25a7df315db36eb9f7930c1ee3a678a1127e00ef))
7
+
1
8
  # [0.86.0](https://github.com/appydave/appydave-tools/compare/v0.85.0...v0.86.0) (2026-06-09)
2
9
 
3
10
 
@@ -420,10 +420,10 @@ module Appydave
420
420
 
421
421
  # Get shortcut, key, and name with fallbacks
422
422
  shortcut = brand_info.shortcut&.strip
423
- shortcut = nil if shortcut&.empty?
423
+ shortcut = nil if shortcut.to_s.empty?
424
424
  key = brand_info.key
425
425
  name = brand_info.name&.strip
426
- name = nil if name&.empty?
426
+ name = nil if name.to_s.empty?
427
427
 
428
428
  # Get git status
429
429
  git_status = calculate_git_status(brand_path)
@@ -15,12 +15,18 @@ module Appydave
15
15
  # tags: ['ruby', 'cli'],
16
16
  # description: 'AppyDave CLI tools'
17
17
  # )
18
+ #
19
+ # @note `git_remote` is TRI-STATE and #to_h preserves all three cases:
20
+ # a URL string (has a remote), an explicit nil (a git repo with no
21
+ # remote backup), and the key being absent entirely (not a git repo).
22
+ # Do not collapse nil into absent — they mean different things.
18
23
  class Location
19
24
  VALID_KEY_PATTERN = /\A[a-z0-9][a-z0-9-]*[a-z0-9]\z|\A[a-z0-9]\z/.freeze
20
25
  VALID_PATH_PATTERN = %r{\A[~/]}.freeze
21
26
  VALID_TAG_PATTERN = /\A[a-z0-9][a-z0-9-]*[a-z0-9]\z|\A[a-z0-9]\z/.freeze
22
27
 
23
- attr_reader :key, :path, :jump, :brand, :client, :type, :tags, :description
28
+ attr_reader :key, :path, :jump, :brand, :client, :type, :status, :tags,
29
+ :description, :git_remote, :context, :notes
24
30
 
25
31
  def initialize(attrs = {})
26
32
  attrs = normalize_attrs(attrs)
@@ -31,8 +37,22 @@ module Appydave
31
37
  @brand = attrs[:brand]
32
38
  @client = attrs[:client]
33
39
  @type = attrs[:type]
40
+ @status = attrs[:status]
34
41
  @tags = Array(attrs[:tags])
35
42
  @description = attrs[:description]
43
+ @git_remote = attrs[:git_remote]
44
+ @context = attrs[:context]
45
+ @notes = attrs[:notes]
46
+
47
+ # git_remote distinguishes "explicit nil" from "not supplied"
48
+ @git_remote_given = attrs.key?(:git_remote)
49
+ end
50
+
51
+ # Was git_remote supplied at all (even as nil)?
52
+ #
53
+ # @return [Boolean]
54
+ def git_remote_given?
55
+ @git_remote_given
36
56
  end
37
57
 
38
58
  # Validate the location
@@ -57,18 +77,30 @@ module Appydave
57
77
 
58
78
  # Convert to hash for JSON serialization
59
79
  #
80
+ # Key order matches the on-disk locations.json convention so round-tripping
81
+ # an entry produces a minimal diff.
82
+ #
60
83
  # @return [Hash]
61
84
  def to_h
62
- {
85
+ hash = {
63
86
  key: key,
64
87
  path: path,
65
88
  jump: jump,
66
89
  brand: brand,
67
90
  client: client,
68
91
  type: type,
92
+ status: status,
69
93
  tags: tags,
70
94
  description: description
71
95
  }.compact
96
+
97
+ # Preserve the tri-state: an explicit nil means "git repo, no remote"
98
+ # and must survive; an absent key means "not a git repo".
99
+ hash[:git_remote] = git_remote if git_remote_given?
100
+
101
+ hash[:context] = context if context
102
+ hash[:notes] = notes if notes
103
+ hash
72
104
  end
73
105
 
74
106
  # Get all searchable text for this location
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.86.1'
5
+ VERSION = '0.86.2'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.86.1",
3
+ "version": "0.86.2",
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.86.1
4
+ version: 0.86.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-06-09 00:00:00.000000000 Z
11
+ date: 2026-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel