From eb328e0ef7287b5904b46bb424724aa75d9ca096 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Tue, 4 Aug 2026 02:40:32 -0700 Subject: [PATCH 01/17] jekyll --- .github/workflows/publish-site.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish-site.yml b/.github/workflows/publish-site.yml index 265fcf96..a511916f 100644 --- a/.github/workflows/publish-site.yml +++ b/.github/workflows/publish-site.yml @@ -11,6 +11,9 @@ jobs: runs-on: ubuntu-latest environment: gh-pages steps: + - name: Install Dependencies + run: sudo apt install libidn-dev + - uses: actions/checkout@v3 - id: gem-cache From a794befb627080762228b2b60a50ca18ba91e562 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Tue, 4 Aug 2026 03:21:34 -0700 Subject: [PATCH 02/17] jekyll --- .github/workflows/publish-npm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 43f901ba..6bbc76a3 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -45,4 +45,4 @@ jobs: - name: Publish to NPM Registry run: yarn publish _packages/node/ env: - NODE_AUTH_TOKEN: ${{secrets.npm_token}} + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 2203a80e1363d6c701f95abeac73d30cb2874def Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Tue, 4 Aug 2026 03:42:40 -0700 Subject: [PATCH 03/17] jekyll --- .github/workflows/publish-npm.yml | 5 ++--- .github/workflows/publish-pypi.yml | 10 ++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 6bbc76a3..18cc677d 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -31,9 +31,8 @@ jobs: - uses: actions/setup-node@v3 with: - node-version: 20 - cache: yarn - cache-dependency-path: _packages/node/bun.lock + node-version: 24 + cache: bun registry-url: https://registry.npmjs.org/ - name: Download Node Package Artifacts diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index fe421837..635db984 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -55,10 +55,8 @@ jobs: name: package-python path: ./_packages/python/dist/ - - name: Publish package - uses: pypa/gh-action-pypi-publish@v1.5.0 + - name: Publish to PyPI + # Note: No "password" or "api-token" secret is referenced here + uses: pypa/gh-action-pypi-publish@release/v1 with: - packages_dir: ./_packages/python/dist/ - print_hash: true - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} + packages-dir: ./_packages/python/dist/ \ No newline at end of file From 86b1b0f11c93c1dd36e7fe13df20e912d8ba2f8d Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 18:10:20 -0700 Subject: [PATCH 04/17] ruby DSL based definition of schema --- .idea/apple-knowledge.iml | 44 +++++++- .idea/jsonSchemas.xml | 25 +++++ .idea/runConfigurations/AppleData_Specs.xml | 36 +++++++ .idea/webResources.xml | 14 +++ Gemfile | 1 + Gemfile.lock | 34 ++++-- _data/fdr.yaml | 20 ++-- _data/pki.yaml | 27 +++-- _packages/ruby/1 | 0 _packages/ruby/Gemfile | 6 +- _packages/ruby/Gemfile.lock | 67 +++++++++++- _packages/ruby/apple-data.gemspec | 6 ++ _packages/ruby/bin/console | 15 +++ _packages/ruby/lib/apple-data.rb | 3 - _packages/ruby/lib/apple_data.rb | 24 +++-- _packages/ruby/lib/apple_data/data_file.rb | 31 ++++-- .../apple_data/dsl/collection_definition.rb | 59 ++++++++++ .../apple_data/dsl/data_file_definition.rb | 35 ++++++ .../ruby/lib/apple_data/models/img4/object.rb | 10 ++ .../lib/apple_data/models/img4/property.rb | 10 ++ .../ruby/lib/apple_data/models/img4/tag.rb | 11 ++ .../ruby/lib/apple_data/models/metadata.rb | 11 ++ _packages/ruby/lib/apple_data/schema_base.rb | 6 ++ .../schemas/factory_data_restore.rb | 13 +++ _packages/ruby/lib/apple_data/schemas/img4.rb | 14 +++ .../lib/apple_data/schemas/local_policy.rb | 3 + _packages/ruby/lib/apple_data/schemas/pki.rb | 26 +++++ _packages/ruby/lib/apple_data/version.rb | 3 +- _packages/ruby/ruby.iml | 23 +++- .../ruby/spec/apple_data/data/fdr_spec.rb | 32 ++++++ .../ruby/spec/apple_data/data/img4_spec.rb | 47 ++++++++ .../ruby/spec/apple_data/data_file_spec.rb | 22 ++++ _packages/ruby/spec/spec_helper.rb | 102 ++++++++++++++++++ 33 files changed, 729 insertions(+), 51 deletions(-) create mode 100644 .idea/jsonSchemas.xml create mode 100644 .idea/runConfigurations/AppleData_Specs.xml create mode 100644 .idea/webResources.xml delete mode 100644 _packages/ruby/1 create mode 100755 _packages/ruby/bin/console delete mode 100644 _packages/ruby/lib/apple-data.rb create mode 100644 _packages/ruby/lib/apple_data/dsl/collection_definition.rb create mode 100644 _packages/ruby/lib/apple_data/dsl/data_file_definition.rb create mode 100644 _packages/ruby/lib/apple_data/models/img4/object.rb create mode 100644 _packages/ruby/lib/apple_data/models/img4/property.rb create mode 100644 _packages/ruby/lib/apple_data/models/img4/tag.rb create mode 100644 _packages/ruby/lib/apple_data/models/metadata.rb create mode 100644 _packages/ruby/lib/apple_data/schema_base.rb create mode 100644 _packages/ruby/lib/apple_data/schemas/factory_data_restore.rb create mode 100644 _packages/ruby/lib/apple_data/schemas/img4.rb create mode 100644 _packages/ruby/lib/apple_data/schemas/local_policy.rb create mode 100644 _packages/ruby/lib/apple_data/schemas/pki.rb create mode 100644 _packages/ruby/spec/apple_data/data/fdr_spec.rb create mode 100644 _packages/ruby/spec/apple_data/data/img4_spec.rb create mode 100644 _packages/ruby/spec/apple_data/data_file_spec.rb create mode 100644 _packages/ruby/spec/spec_helper.rb diff --git a/.idea/apple-knowledge.iml b/.idea/apple-knowledge.iml index b0574111..b32ee8b8 100644 --- a/.idea/apple-knowledge.iml +++ b/.idea/apple-knowledge.iml @@ -24,6 +24,40 @@ diff --git a/.rubocop.yml b/.rubocop.yml index 4b7c87df..2be0b958 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -15,7 +15,7 @@ plugins: AllCops: NewCops: enable SuggestExtensions: false - TargetRubyVersion: 3.2 + TargetRubyVersion: 3.3 Exclude: - 'vendor/**/*' - '_packages/ruby/vendor/**/*' diff --git a/Rakefile b/Rakefile index 1043327f..47619c00 100755 --- a/Rakefile +++ b/Rakefile @@ -21,7 +21,7 @@ desc 'do all precommit tasks' task precommit: %i[sort] desc 'default build task' -task default: ['rubocop:auto_correct', :precommit] +task default: ['rubocop:autocorrect', :precommit] desc 'Perform all automated updates' task :update do diff --git a/_packages/ruby/.rubocop.yml b/_packages/ruby/.rubocop.yml index 52d4b9a1..5291f555 100644 --- a/_packages/ruby/.rubocop.yml +++ b/_packages/ruby/.rubocop.yml @@ -3,7 +3,7 @@ plugins: - rubocop-rspec AllCops: - TargetRubyVersion: 3.2 + TargetRubyVersion: 3.3 NewCops: enable Metrics/ClassLength: diff --git a/_packages/ruby/Rakefile b/_packages/ruby/Rakefile index 1ec302e1..09c9bce0 100644 --- a/_packages/ruby/Rakefile +++ b/_packages/ruby/Rakefile @@ -14,7 +14,7 @@ OUTPUT_PATH = Pathutil.new OUTPUT_ROOT desc 'set the version patch to the git main height' task version: :environment do - repo_height = `git rev-list --count main` + repo_height = `git rev-list --count HEAD` repo_height = '0' if repo_height.empty? version_file = %(# frozen_string_literal: true diff --git a/_packages/ruby/apple-data.gemspec b/_packages/ruby/apple-data.gemspec index 92a06391..ff6292e7 100644 --- a/_packages/ruby/apple-data.gemspec +++ b/_packages/ruby/apple-data.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |s| s.email = 'rickmark@outlook.com' s.files = Dir['share/**/*.yaml'] + Dir['lib/**/*'] s.homepage = 'https://docs.hackdiffe.rent' - s.required_ruby_version = '>= 3.2' + s.required_ruby_version = '>= 3.3' s.metadata = { 'source_code_uri' => 'https://github.com/hack-different/apple-knowledge', 'rubygems_mfa_required' => 'true' } From 71161a71d268267e234b35406aa4619cee632913 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 19:20:18 -0700 Subject: [PATCH 10/17] version bumping --- .idea/apple-knowledge.iml | 2 +- .idea/runConfigurations/AppleData_Specs.xml | 2 +- .rubocop.yml | 8 +- Rakefile | 5 +- _packages/ruby/.rubocop.yml | 16 -- _packages/ruby/Gemfile | 17 -- _packages/ruby/Gemfile.lock | 173 ------------------ _packages/ruby/Rakefile | 5 - _packages/ruby/ruby.iml | 41 +---- .../apple_data/data_file_spec.rb | 0 .../schemas/factory_data_restore_spec.rb | 0 .../apple_data/schemas/img4_spec.rb | 0 {_packages/ruby/spec => spec}/spec_helper.rb | 4 +- 13 files changed, 22 insertions(+), 251 deletions(-) delete mode 100644 _packages/ruby/.rubocop.yml delete mode 100644 _packages/ruby/Gemfile delete mode 100644 _packages/ruby/Gemfile.lock rename {_packages/ruby/spec => spec}/apple_data/data_file_spec.rb (100%) rename {_packages/ruby/spec => spec}/apple_data/schemas/factory_data_restore_spec.rb (100%) rename {_packages/ruby/spec => spec}/apple_data/schemas/img4_spec.rb (100%) rename {_packages/ruby/spec => spec}/spec_helper.rb (97%) diff --git a/.idea/apple-knowledge.iml b/.idea/apple-knowledge.iml index b32ee8b8..75328247 100644 --- a/.idea/apple-knowledge.iml +++ b/.idea/apple-knowledge.iml @@ -42,7 +42,7 @@ - + diff --git a/.idea/runConfigurations/AppleData_Specs.xml b/.idea/runConfigurations/AppleData_Specs.xml index 684778f5..dd1ea645 100644 --- a/.idea/runConfigurations/AppleData_Specs.xml +++ b/.idea/runConfigurations/AppleData_Specs.xml @@ -17,7 +17,7 @@ - + diff --git a/.rubocop.yml b/.rubocop.yml index 2be0b958..bbc3b8e4 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -41,4 +41,10 @@ Naming/FileName: Metrics/AbcSize: CountRepeatedAttributes: false - Max: 25 \ No newline at end of file + Max: 25 + +Metrics/ClassLength: + Max: 150 + +RSpec/ExampleLength: + Max: 15 \ No newline at end of file diff --git a/Rakefile b/Rakefile index 47619c00..bf8b5d13 100755 --- a/Rakefile +++ b/Rakefile @@ -3,6 +3,7 @@ require 'bundler/setup' require 'rubocop/rake_task' +require 'rspec/core/rake_task' BASE_PATH = File.dirname(__FILE__) @@ -20,8 +21,10 @@ RuboCop::RakeTask.new desc 'do all precommit tasks' task precommit: %i[sort] +RSpec::Core::RakeTask.new(:spec) + desc 'default build task' -task default: ['rubocop:autocorrect', :precommit] +task default: ['rubocop:autocorrect', :spec, :precommit] desc 'Perform all automated updates' task :update do diff --git a/_packages/ruby/.rubocop.yml b/_packages/ruby/.rubocop.yml deleted file mode 100644 index 5291f555..00000000 --- a/_packages/ruby/.rubocop.yml +++ /dev/null @@ -1,16 +0,0 @@ -plugins: - - rubocop-rake - - rubocop-rspec - -AllCops: - TargetRubyVersion: 3.3 - NewCops: enable - -Metrics/ClassLength: - Max: 150 - -Metrics/MethodLength: - Max: 20 - -RSpec/ExampleLength: - Max: 10 \ No newline at end of file diff --git a/_packages/ruby/Gemfile b/_packages/ruby/Gemfile deleted file mode 100644 index 52757265..00000000 --- a/_packages/ruby/Gemfile +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -source 'https://rubygems.org' - -gemspec - -group :development, :test do - gem 'pry' - gem 'rake' - gem 'rbs' - gem 'rbs-inline' - gem 'rspec' - gem 'rubocop', require: false - gem 'rubocop-rake' - gem 'rubocop-rspec' - gem 'steep' -end diff --git a/_packages/ruby/Gemfile.lock b/_packages/ruby/Gemfile.lock deleted file mode 100644 index d0175d60..00000000 --- a/_packages/ruby/Gemfile.lock +++ /dev/null @@ -1,173 +0,0 @@ -PATH - remote: . - specs: - apple-data (1.0.648) - activesupport - jsonpath - pathutil - shale - zeitwerk - -GEM - remote: https://rubygems.org/ - specs: - activesupport (8.1.3.1) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - json - logger (>= 1.4.2) - minitest (>= 5.1) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) - uri (>= 0.13.1) - ast (2.4.3) - base64 (0.3.0) - bigdecimal (4.1.2) - coderay (1.1.3) - concurrent-ruby (1.3.8) - connection_pool (3.0.2) - csv (3.3.6) - diff-lcs (1.6.2) - drb (2.2.3) - ffi (1.17.4-arm64-darwin) - ffi (1.17.4-x86_64-darwin) - ffi (1.17.4-x86_64-linux-gnu) - fileutils (1.8.0) - forwardable-extended (2.6.0) - i18n (1.15.2) - concurrent-ruby (~> 1.0) - io-console (0.8.2) - json (2.21.2) - jsonpath (1.1.5) - multi_json - language_server-protocol (3.17.0.6) - lint_roller (1.1.0) - listen (3.10.0) - logger - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.7.0) - method_source (1.1.0) - minitest (6.0.6) - drb (~> 2.0) - prism (~> 1.5) - multi_json (1.21.1) - parallel (2.1.0) - parser (3.3.12.0) - ast (~> 2.4.1) - racc - pathutil (0.16.2) - forwardable-extended (~> 2.6) - prism (1.9.0) - pry (0.16.0) - coderay (~> 1.1) - method_source (~> 1.0) - reline (>= 0.6.0) - racc (1.8.1) - rainbow (3.1.1) - rake (13.4.2) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rbs (4.1.2) - logger - prism (>= 1.6.0) - tsort - rbs-inline (0.14.0) - prism (>= 0.29) - rbs (~> 4.0) - regexp_parser (2.12.0) - reline (0.6.3) - io-console (~> 0.5) - rspec (3.13.2) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-core (3.13.6) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.8) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.7) - rubocop (1.89.0) - json (~> 2.3) - language_server-protocol (~> 3.17.0.2) - lint_roller (~> 1.1.0) - parallel (>= 1.10) - parser (>= 3.3.0.2) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.49.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.50.0) - parser (>= 3.3.7.2) - prism (~> 1.7) - rubocop-rake (0.7.1) - lint_roller (~> 1.1) - rubocop (>= 1.72.1) - rubocop-rspec (3.10.2) - lint_roller (~> 1.1) - regexp_parser (>= 2.0) - rubocop (~> 1.86, >= 1.86.2) - ruby-progressbar (1.13.0) - securerandom (0.4.1) - shale (1.2.2) - bigdecimal - steep (2.0.0) - concurrent-ruby (>= 1.1.10) - csv (>= 3.0.9) - fileutils (>= 1.1.0) - json (>= 2.1.0) - language_server-protocol (>= 3.17.0.4, < 4.0) - listen (~> 3.0) - logger (>= 1.3.0) - parser (>= 3.2) - prism (>= 0.25.0) - rainbow (>= 2.2.2, < 4.0) - rbs (~> 4.0) - securerandom (>= 0.1) - strscan (>= 1.0.0) - terminal-table (>= 2, < 5) - uri (>= 0.12.0) - strscan (3.1.8) - terminal-table (4.0.0) - unicode-display_width (>= 1.1.1, < 4) - tsort (0.2.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (3.2.0) - unicode-emoji (~> 4.1) - unicode-emoji (4.2.0) - uri (1.1.1) - zeitwerk (2.8.3) - -PLATFORMS - arm64-darwin-22 - arm64-darwin-23 - arm64-darwin-25 - x86_64-darwin-21 - x86_64-darwin-22 - x86_64-linux - -DEPENDENCIES - apple-data! - pry - rake - rbs - rbs-inline - rspec - rubocop - rubocop-rake - rubocop-rspec - steep - -BUNDLED WITH - 2.3.7 diff --git a/_packages/ruby/Rakefile b/_packages/ruby/Rakefile index 09c9bce0..2c1e35a7 100644 --- a/_packages/ruby/Rakefile +++ b/_packages/ruby/Rakefile @@ -27,11 +27,6 @@ end File.write(File.join(RUBY_PACKAGE_ROOT, 'lib/apple_data/version.rb'), version_file) end -desc 'prepare the enviornment' -task :environment do - require_relative 'lib/apple_data' -end - desc 'copy data files' task files: :environment do Dir[DATA_FILES_GLOB].each do |path| diff --git a/_packages/ruby/ruby.iml b/_packages/ruby/ruby.iml index c132eeee..f6ad95aa 100644 --- a/_packages/ruby/ruby.iml +++ b/_packages/ruby/ruby.iml @@ -12,68 +12,41 @@ - + + - - + - - - - - - - - + - - - - - - - - - + - + - - - - - - - + - - - - - - diff --git a/_packages/ruby/spec/apple_data/data_file_spec.rb b/spec/apple_data/data_file_spec.rb similarity index 100% rename from _packages/ruby/spec/apple_data/data_file_spec.rb rename to spec/apple_data/data_file_spec.rb diff --git a/_packages/ruby/spec/apple_data/schemas/factory_data_restore_spec.rb b/spec/apple_data/schemas/factory_data_restore_spec.rb similarity index 100% rename from _packages/ruby/spec/apple_data/schemas/factory_data_restore_spec.rb rename to spec/apple_data/schemas/factory_data_restore_spec.rb diff --git a/_packages/ruby/spec/apple_data/schemas/img4_spec.rb b/spec/apple_data/schemas/img4_spec.rb similarity index 100% rename from _packages/ruby/spec/apple_data/schemas/img4_spec.rb rename to spec/apple_data/schemas/img4_spec.rb diff --git a/_packages/ruby/spec/spec_helper.rb b/spec/spec_helper.rb similarity index 97% rename from _packages/ruby/spec/spec_helper.rb rename to spec/spec_helper.rb index 5571cf8e..2adad403 100644 --- a/_packages/ruby/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,7 +2,7 @@ require 'bundler/setup' -require_relative '../lib/apple_data' +require_relative '../_packages/ruby/lib/apple_data' # This file was generated by the `rspec --init` command. Conventionally, all # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. @@ -15,7 +15,7 @@ # will add to the boot time of your test suite on EVERY test run, even for an # individual file that may not need all of that loaded. Instead, consider making # a separate helper file that requires the additional dependencies and performs -# the additional setup, and require it from the spec files that actually need +# the additional setup and requires it from the spec files that actually need # it. # # See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration From e572e15d0bc976a5b9bd90b05b464235e5b64e63 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 19:36:12 -0700 Subject: [PATCH 11/17] use data from root --- spec/spec_helper.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2adad403..9c052476 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,6 +4,8 @@ require_relative '../_packages/ruby/lib/apple_data' +AppleData.data_location = File.join(File.dirname(__FILE__), '..', '_data') + # This file was generated by the `rspec --init` command. Conventionally, all # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. # The generated `.rspec` file contains `--require spec_helper` which will cause From 1b446313474798508d7fea834ab3cadff9783aad Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 19:36:12 -0700 Subject: [PATCH 12/17] use data from root --- _packages/ruby/Gemfile | 18 +++ _packages/ruby/Gemfile.lock | 220 ++++++++++++++++++++++++++++++++++++ _packages/ruby/ruby.iml | 37 ++++-- 3 files changed, 266 insertions(+), 9 deletions(-) create mode 100644 _packages/ruby/Gemfile create mode 100644 _packages/ruby/Gemfile.lock diff --git a/_packages/ruby/Gemfile b/_packages/ruby/Gemfile new file mode 100644 index 00000000..b3706e49 --- /dev/null +++ b/_packages/ruby/Gemfile @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' + +gem 'pathutil' +gem 'activesupport' +gem 'jsonpath' +gem 'pathutil' +gem 'shale' +gem 'zeitwerk' + +group :development, :test do + gem 'rake' + gem 'rbs' + gem 'rspec' + gem 'rubocop', require: false + gem 'steep' +end \ No newline at end of file diff --git a/_packages/ruby/Gemfile.lock b/_packages/ruby/Gemfile.lock new file mode 100644 index 00000000..e25bdbed --- /dev/null +++ b/_packages/ruby/Gemfile.lock @@ -0,0 +1,220 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (8.1.3.1) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + ast (2.4.3) + base64 (0.3.0) + bigdecimal (4.1.2) + concurrent-ruby (1.3.8) + connection_pool (3.0.2) + csv (3.3.6) + diff-lcs (1.6.2) + drb (2.2.3) + ffi (1.17.4) + ffi (1.17.4-aarch64-linux-gnu) + ffi (1.17.4-aarch64-linux-musl) + ffi (1.17.4-arm-linux-gnu) + ffi (1.17.4-arm-linux-musl) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86-linux-gnu) + ffi (1.17.4-x86-linux-musl) + ffi (1.17.4-x86_64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + ffi (1.17.4-x86_64-linux-musl) + fileutils (1.8.0) + forwardable-extended (2.6.0) + i18n (1.15.2) + concurrent-ruby (~> 1.0) + json (2.21.2) + jsonpath (1.1.5) + multi_json + language_server-protocol (3.17.0.6) + lint_roller (1.1.0) + listen (3.10.0) + logger + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + multi_json (1.21.1) + parallel (2.1.0) + parser (3.3.12.0) + ast (~> 2.4.1) + racc + pathutil (0.16.2) + forwardable-extended (~> 2.6) + prism (1.9.0) + racc (1.8.1) + rainbow (3.1.1) + rake (13.4.2) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rbs (4.1.2) + logger + prism (>= 1.6.0) + tsort + regexp_parser (2.12.0) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) + rubocop (1.89.0) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + parallel (>= 1.10) + parser (>= 3.3.0.2) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.50.0) + parser (>= 3.3.7.2) + prism (~> 1.7) + ruby-progressbar (1.13.0) + securerandom (0.4.1) + shale (1.2.2) + bigdecimal + steep (2.0.0) + concurrent-ruby (>= 1.1.10) + csv (>= 3.0.9) + fileutils (>= 1.1.0) + json (>= 2.1.0) + language_server-protocol (>= 3.17.0.4, < 4.0) + listen (~> 3.0) + logger (>= 1.3.0) + parser (>= 3.2) + prism (>= 0.25.0) + rainbow (>= 2.2.2, < 4.0) + rbs (~> 4.0) + securerandom (>= 0.1) + strscan (>= 1.0.0) + terminal-table (>= 2, < 5) + uri (>= 0.12.0) + strscan (3.1.8) + terminal-table (4.0.0) + unicode-display_width (>= 1.1.1, < 4) + tsort (0.2.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + uri (1.1.1) + zeitwerk (2.8.3) + +PLATFORMS + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + activesupport + jsonpath + pathutil + rake + rbs + rspec + rubocop + shale + steep + zeitwerk + +CHECKSUMS + activesupport (8.1.3.1) sha256=85458765f25ea48b9019c46b6bb3fa5683197bf4280d9f06710a6e8d7a831376 + ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + bundler (4.0.16) sha256=d6ca5dd440c24f9abce9844cf44cc8e18c6a553de65a47efb4544137af92c47d + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 + connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a + csv (3.3.6) sha256=aba61e7e507a66f03d45cb1f3c4b6359861c3504038b422962875dce099e4456 + diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 + drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373 + ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf + ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df + ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39 + ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564 + ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95 + ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b + ffi (1.17.4-x86-linux-gnu) sha256=38e150df5f4ca555e25beca4090823ae09657bceded154e3c52f8631c1ed72cf + ffi (1.17.4-x86-linux-musl) sha256=fbeec0fc7c795bcf86f623bb18d31ea1820f7bd580e1703a3d3740d527437809 + ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496 + ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d + ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e + fileutils (1.8.0) sha256=8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02 + forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 + i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5 + json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a + jsonpath (1.1.5) sha256=29f70467193a2dc93ab864ec3d3326d54267961acc623f487340eb9c34931dbe + language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0 + lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 + listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 + multi_json (1.21.1) sha256=e6126a31808e3b4d19f483c775ceac34df190dffa62adfb63a165ee14ba68080 + parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356 + parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828 + pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 + prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f + rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a + rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe + rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e + rbs (4.1.2) sha256=050eb1d8b508f1233bed929c0f2c7052302f7adf295230d9cb314e9024078f48 + regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb + rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rubocop (1.89.0) sha256=4dee8e3ee9c45e474834efd9e8d6fd031e8331c8dacdff0de4ad65ae0a6faae7 + rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db + ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 + shale (1.2.2) sha256=e298bd0658e2651c76a1a4ffc7db8d43592288181d28d78ce5748c8525094cca + steep (2.0.0) sha256=6eb0ecc09637bbb54f0a5f2cf63daea6d3208ccace64b4f1107d976333605c30 + strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e + terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6 + zeitwerk (2.8.3) sha256=2c85125a8467ce069e20123d1e709a08955c9d29c118c25b46b7b7fafdbb92e5 + +BUNDLED WITH + 4.0.16 diff --git a/_packages/ruby/ruby.iml b/_packages/ruby/ruby.iml index f6ad95aa..aa6703ce 100644 --- a/_packages/ruby/ruby.iml +++ b/_packages/ruby/ruby.iml @@ -16,37 +16,56 @@ - + - + + + - + + + - - + + - - - + + + + + + + + + + - + + + + + + + + + From 79a3d2147ec8a46ba0c128eff0173bab964fc587 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 20:03:59 -0700 Subject: [PATCH 13/17] clean rubocop --- _packages/ruby/Gemfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_packages/ruby/Gemfile b/_packages/ruby/Gemfile index b3706e49..2db17606 100644 --- a/_packages/ruby/Gemfile +++ b/_packages/ruby/Gemfile @@ -2,10 +2,10 @@ source 'https://rubygems.org' -gem 'pathutil' gem 'activesupport' gem 'jsonpath' gem 'pathutil' +gem 'pathutil' gem 'shale' gem 'zeitwerk' @@ -15,4 +15,4 @@ group :development, :test do gem 'rspec' gem 'rubocop', require: false gem 'steep' -end \ No newline at end of file +end From 25f4ef313833f01f556f76306f9faa5c9fff5804 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 20:04:37 -0700 Subject: [PATCH 14/17] clean rubocop --- _packages/ruby/Gemfile | 1 - 1 file changed, 1 deletion(-) diff --git a/_packages/ruby/Gemfile b/_packages/ruby/Gemfile index 2db17606..c89bbdb3 100644 --- a/_packages/ruby/Gemfile +++ b/_packages/ruby/Gemfile @@ -5,7 +5,6 @@ source 'https://rubygems.org' gem 'activesupport' gem 'jsonpath' gem 'pathutil' -gem 'pathutil' gem 'shale' gem 'zeitwerk' From b904da90290235a405cee4c45f682ea3f96f9e86 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 20:12:02 -0700 Subject: [PATCH 15/17] rubocop sucks sometimes --- _packages/ruby/Rakefile | 4 ++-- _packages/ruby/lib/apple_data/version.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_packages/ruby/Rakefile b/_packages/ruby/Rakefile index 2c1e35a7..4e494d69 100644 --- a/_packages/ruby/Rakefile +++ b/_packages/ruby/Rakefile @@ -13,7 +13,7 @@ DATA_PATH = Pathutil.new DATA_ROOT OUTPUT_PATH = Pathutil.new OUTPUT_ROOT desc 'set the version patch to the git main height' -task version: :environment do +task :version do repo_height = `git rev-list --count HEAD` repo_height = '0' if repo_height.empty? @@ -28,7 +28,7 @@ end end desc 'copy data files' -task files: :environment do +task :files do Dir[DATA_FILES_GLOB].each do |path| file_path = Pathutil.new path diff --git a/_packages/ruby/lib/apple_data/version.rb b/_packages/ruby/lib/apple_data/version.rb index 6244ed28..261cb628 100644 --- a/_packages/ruby/lib/apple_data/version.rb +++ b/_packages/ruby/lib/apple_data/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module AppleData - VERSION = '1.0.648' + VERSION = '1.0.665' end From b0c38a3249f0b0824c7c635063bee203c55ebd95 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 20:19:07 -0700 Subject: [PATCH 16/17] rubocop sucks sometimes --- _packages/ruby/Gemfile.lock | 1 + _packages/ruby/apple-data.gemspec | 3 +-- _packages/ruby/lib/apple_data/models/img4/tag.rb | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/_packages/ruby/Gemfile.lock b/_packages/ruby/Gemfile.lock index e25bdbed..550ea5f9 100644 --- a/_packages/ruby/Gemfile.lock +++ b/_packages/ruby/Gemfile.lock @@ -137,6 +137,7 @@ PLATFORMS x86-linux-gnu x86-linux-musl x86_64-darwin + x86_64-linux x86_64-linux-gnu x86_64-linux-musl diff --git a/_packages/ruby/apple-data.gemspec b/_packages/ruby/apple-data.gemspec index ff6292e7..82580062 100644 --- a/_packages/ruby/apple-data.gemspec +++ b/_packages/ruby/apple-data.gemspec @@ -23,8 +23,7 @@ Gem::Specification.new do |s| s.files = Dir['share/**/*.yaml'] + Dir['lib/**/*'] s.homepage = 'https://docs.hackdiffe.rent' s.required_ruby_version = '>= 3.3' - s.metadata = { 'source_code_uri' => 'https://github.com/hack-different/apple-knowledge', - 'rubygems_mfa_required' => 'true' } + s.metadata = { 'source_code_uri' => 'https://github.com/hack-different/apple-knowledge' } s.add_dependency 'activesupport' s.add_dependency 'jsonpath' diff --git a/_packages/ruby/lib/apple_data/models/img4/tag.rb b/_packages/ruby/lib/apple_data/models/img4/tag.rb index 2019fd4f..d31f3caa 100644 --- a/_packages/ruby/lib/apple_data/models/img4/tag.rb +++ b/_packages/ruby/lib/apple_data/models/img4/tag.rb @@ -13,6 +13,14 @@ class Tag < Shale::Mapper attribute :alias, :string, collection: true attribute :example, :string attribute :type, :string + + def to_s + name || title || description || key + end + + def to_sym + to_s.to_sym + end end end end From e6bae5abeda87898815bee26e1befc450aac55b3 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 5 Aug 2026 20:21:27 -0700 Subject: [PATCH 17/17] rubocop sucks sometimes --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b25ae242..0cc85fb9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: _packages/ruby specs: - apple-data (1.0.648) + apple-data (1.0.665) activesupport jsonpath pathutil @@ -599,7 +599,7 @@ CHECKSUMS actionview (8.1.3.1) sha256=2da68b8414c47b43bfbed1ce69c5afe1c04f78c267aacb5660a4cab5ca12cfb6 activesupport (8.1.3.1) sha256=85458765f25ea48b9019c46b6bb3fa5683197bf4280d9f06710a6e8d7a831376 addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af - apple-data (1.0.648) + apple-data (1.0.665) ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 awesome_print (1.9.2) sha256=e99b32b704acff16d768b3468680793ced40bfdc4537eb07e06a4be11133786e base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b