diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..9978ef0 --- /dev/null +++ b/.envrc @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# Used by https://direnv.net + +# Automatically reload when this file changes +watch_file devshell.nix + +# Load `nix develop` +use flake + +# Extend the environment with per-user overrides +source_env_if_exists .envrc.local diff --git a/.gitignore b/.gitignore index ee9a5d8..259f14d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ /.bundle/ /.yardoc -/Gemfile.lock /_yardoc/ /coverage/ /doc/ @@ -17,4 +16,4 @@ todo.md # direnv -.envrc +.direnv \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..79c2b0d --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,281 @@ +PATH + remote: . + specs: + fusuma (3.7.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (8.0.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + ast (2.4.2) + async (2.21.1) + console (~> 1.29) + fiber-annotation + io-event (~> 1.6, >= 1.6.5) + async-http (0.86.0) + async (>= 2.10.2) + async-pool (~> 0.9) + io-endpoint (~> 0.14) + io-stream (~> 0.6) + metrics (~> 0.12) + protocol-http (~> 0.43) + protocol-http1 (>= 0.28.1) + protocol-http2 (~> 0.22) + traces (~> 0.10) + async-http-faraday (0.19.0) + async-http (~> 0.42) + faraday + async-pool (0.10.2) + async (>= 1.25) + traces + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.9) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + bump (0.10.0) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + console (1.29.2) + fiber-annotation + fiber-local (~> 1.1) + json + date (3.4.1) + debug (1.10.0) + irb (~> 1.10) + reline (>= 0.3.8) + debug_inspector (1.2.0) + debugger-ruby_core_source (1.3.8) + diff-lcs (1.5.1) + docile (1.4.1) + drb (2.2.1) + dry-configurable (1.2.0) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-core (1.0.2) + concurrent-ruby (~> 1.0) + logger + zeitwerk (~> 2.6) + dry-inflector (1.1.0) + dry-initializer (3.2.0) + dry-logic (1.5.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-schema (1.13.4) + concurrent-ruby (~> 1.0) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.0, < 2) + dry-initializer (~> 3.0) + dry-logic (>= 1.4, < 2) + dry-types (>= 1.7, < 2) + zeitwerk (~> 2.6) + dry-types (1.7.2) + bigdecimal (~> 3.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + faraday (2.12.2) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-http-cache (2.5.1) + faraday (>= 0.8) + faraday-net_http (3.4.0) + net-http (>= 0.5.0) + fiber-annotation (0.2.0) + fiber-local (1.1.0) + fiber-storage + fiber-storage (1.0.0) + github_changelog_generator (1.16.4) + activesupport + async (>= 1.25.0) + async-http-faraday + faraday-http-cache + multi_json + octokit (~> 4.6) + rainbow (>= 2.2.1) + rake (>= 10.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + io-console (0.8.0) + io-endpoint (0.14.0) + io-event (1.7.5) + io-stream (0.6.1) + irb (1.14.3) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.9.1) + language_server-protocol (3.17.0.3) + lint_roller (1.1.0) + logger (1.6.4) + metrics (0.12.1) + minitest (5.25.4) + multi_json (1.15.0) + net-http (0.6.0) + uri + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + parallel (1.26.3) + parser (3.3.6.0) + ast (~> 2.4.1) + racc + proc_to_ast (0.2.0) + parser + rouge + unparser + protocol-hpack (1.5.1) + protocol-http (0.47.1) + protocol-http1 (0.28.1) + protocol-http (~> 0.22) + protocol-http2 (0.22.0) + protocol-hpack (~> 1.4) + protocol-http (~> 0.18) + psych (5.2.2) + date + stringio + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rblineprof (0.3.7) + debugger-ruby_core_source (~> 1.3) + rblineprof-report (0.0.4) + term-ansicolor (~> 1.3) + rdoc (6.10.0) + psych (>= 4.0.0) + reek (6.3.0) + dry-schema (~> 1.13.0) + parser (~> 3.3.0) + rainbow (>= 2.0, < 4.0) + rexml (~> 3.1) + regexp_parser (2.10.0) + reline (0.6.0) + io-console (~> 0.5) + rexml (3.4.0) + rouge (4.5.1) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.2) + rspec-support (~> 3.13.0) + rspec-debug (0.2.0) + debug (>= 1.3.3) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-parameterized (1.0.2) + rspec-parameterized-core (< 2) + rspec-parameterized-table_syntax (< 2) + rspec-parameterized-core (1.0.1) + parser + proc_to_ast (>= 0.2.0) + rspec (>= 2.13, < 4) + unparser + rspec-parameterized-table_syntax (1.0.1) + binding_of_caller + rspec-parameterized-core (< 2) + rspec-support (3.13.2) + rubocop (1.69.2) + json (~> 2.3) + language_server-protocol (>= 3.17.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.36.2, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.37.0) + parser (>= 3.3.1.0) + rubocop-performance (1.23.0) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + ruby-progressbar (1.13.0) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + securerandom (0.4.1) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + standard (1.43.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.69.1) + standard-custom (~> 1.0.0) + standard-performance (~> 1.6) + standard-custom (1.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.50) + standard-performance (1.6.0) + lint_roller (~> 1.1) + rubocop-performance (~> 1.23.0) + stringio (3.1.2) + sync (0.5.0) + term-ansicolor (1.11.2) + tins (~> 1.0) + tins (1.37.1) + bigdecimal + sync + traces (0.14.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (3.1.3) + unicode-emoji (~> 4.0, >= 4.0.4) + unicode-emoji (4.0.4) + unparser (0.6.15) + diff-lcs (~> 1.3) + parser (>= 3.3.0) + uri (1.0.2) + yard (0.9.37) + zeitwerk (2.7.1) + +PLATFORMS + ruby + x86_64-linux + +DEPENDENCIES + bump + bundler + debug + fusuma! + github_changelog_generator (~> 1.16) + rake (~> 13.0) + rblineprof + rblineprof-report + reek + rspec (~> 3.0) + rspec-debug + rspec-parameterized + rubocop + simplecov + standard + yard + +BUNDLED WITH + 2.5.11 diff --git a/devshell.nix b/devshell.nix new file mode 100644 index 0000000..fb25235 --- /dev/null +++ b/devshell.nix @@ -0,0 +1,18 @@ +{ pkgs }: +pkgs.mkShell { + # Add build dependencies + packages = [ + pkgs.ruby + pkgs.libyaml + pkgs.libinput + pkgs.bundix + ]; + + # Add environment variables + env = { }; + + # Load custom bash code + shellHook = '' + + ''; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2781dce --- /dev/null +++ b/flake.lock @@ -0,0 +1,64 @@ +{ + "nodes": { + "blueprint": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1724053269, + "narHash": "sha256-DinmPyxmUSLjBUYMe3eK0GKykwe33vWbVTmp7++P4Ng=", + "owner": "numtide", + "repo": "blueprint", + "rev": "766302be9063650ca6578e5ba09cc4260b0da29c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "blueprint", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1725103162, + "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "blueprint": "blueprint", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..27ce2ee --- /dev/null +++ b/flake.nix @@ -0,0 +1,13 @@ +{ + description = "my flake"; + + # Add all your dependencies here + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; + blueprint.url = "github:numtide/blueprint"; + blueprint.inputs.nixpkgs.follows = "nixpkgs"; + }; + + # Load the blueprint + outputs = inputs: inputs.blueprint { inherit inputs; }; +} diff --git a/fusuma-3.7.0.gem b/fusuma-3.7.0.gem new file mode 100644 index 0000000..40872c6 Binary files /dev/null and b/fusuma-3.7.0.gem differ diff --git a/gemset.nix b/gemset.nix new file mode 100644 index 0000000..c4f7171 --- /dev/null +++ b/gemset.nix @@ -0,0 +1,1105 @@ +{ + activesupport = { + dependencies = ["base64" "benchmark" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "logger" "minitest" "securerandom" "tzinfo" "uri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0drfj44a16r86clrrqz3vqmg93qri6bqghjm21ac6jn2853cfnzx"; + type = "gem"; + }; + version = "8.0.1"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6"; + type = "gem"; + }; + version = "2.8.7"; + }; + ast = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + type = "gem"; + }; + version = "2.4.2"; + }; + async = { + dependencies = ["console" "fiber-annotation" "io-event"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17aq671gzxsv1irmqjcj7p7vm4jpmy74hw2x1f3r7i71xnfgcq2x"; + type = "gem"; + }; + version = "2.21.1"; + }; + async-http = { + dependencies = ["async" "async-pool" "io-endpoint" "io-stream" "metrics" "protocol-http" "protocol-http1" "protocol-http2" "traces"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c2dfbpfyhjd12dypd5sv8sfdr3j75abvc9lnyp0q5jqzprz76sd"; + type = "gem"; + }; + version = "0.86.0"; + }; + async-http-faraday = { + dependencies = ["async-http" "faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z38634v7k9r8vdhfcrcaflh09b3117w6m5ij82cjabd6hdv745w"; + type = "gem"; + }; + version = "0.19.0"; + }; + async-pool = { + dependencies = ["async" "traces"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b1miyfdj2rm7f5br0ibrm27zqp984nhnqc600xg48xdqr7b5rr6"; + type = "gem"; + }; + version = "0.10.2"; + }; + base64 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g"; + type = "gem"; + }; + version = "0.2.0"; + }; + benchmark = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg"; + type = "gem"; + }; + version = "0.4.0"; + }; + bigdecimal = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g"; + type = "gem"; + }; + version = "3.1.9"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16mjj15ks5ws53v2y31hxcmf46d0qjdvdaadpk7xsij2zymh4a9b"; + type = "gem"; + }; + version = "1.0.1"; + }; + bump = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x89bxsbbcvwvdkjvi7q8c6f2ssnckhi3cg7alzqdliij3vrr4h7"; + type = "gem"; + }; + version = "0.10.0"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0chwfdq2a6kbj6xz9l6zrdfnyghnh32si82la1dnpa5h75ir5anl"; + type = "gem"; + }; + version = "1.3.4"; + }; + connection_pool = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g"; + type = "gem"; + }; + version = "2.4.1"; + }; + console = { + dependencies = ["fiber-annotation" "fiber-local" "json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkwwz5ry6hbn328fb3myr86zsc6lg0f7w1dlbfmjw043ddbgndg"; + type = "gem"; + }; + version = "1.29.2"; + }; + date = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz"; + type = "gem"; + }; + version = "3.4.1"; + }; + debug = { + dependencies = ["irb" "reline"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1977s95s9ns6mpbhg68pg6ggnpxxf8wly4244ihrx5vm92kqrqhi"; + type = "gem"; + }; + version = "1.10.0"; + }; + debug_inspector = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv"; + type = "gem"; + }; + version = "1.2.0"; + }; + debugger-ruby_core_source = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd"; + type = "gem"; + }; + version = "1.3.8"; + }; + diff-lcs = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7"; + type = "gem"; + }; + version = "1.5.1"; + }; + docile = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07pj4z3h8wk4fgdn6s62vw1lwvhj0ac0x10vfbdkr9xzk7krn5cn"; + type = "gem"; + }; + version = "1.4.1"; + }; + drb = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79"; + type = "gem"; + }; + version = "2.2.1"; + }; + dry-configurable = { + dependencies = ["dry-core" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yp4psw39zj7iydrk8fjlb29rlv3fhq2fap6dn83z1cnbcpnwfrx"; + type = "gem"; + }; + version = "1.2.0"; + }; + dry-core = { + dependencies = ["concurrent-ruby" "logger" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fr7vnlcl40hfc5wm4q82fmdxrridf9f7sbqmd1d0q4162k5vmaq"; + type = "gem"; + }; + version = "1.0.2"; + }; + dry-inflector = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14k7q3jvzphkbkd4i1s3ika6kz4p9pcqy78z0yimahwvnsqvj3rl"; + type = "gem"; + }; + version = "1.1.0"; + }; + dry-initializer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qy4cv0j0ahabprdbp02nc3r1606jd5dp90lzqg0mp0jz6c9gm9p"; + type = "gem"; + }; + version = "3.2.0"; + }; + dry-logic = { + dependencies = ["concurrent-ruby" "dry-core" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05nldkc154r0qzlhss7n5klfiyyz05x2fkq08y13s34py6023vcr"; + type = "gem"; + }; + version = "1.5.0"; + }; + dry-schema = { + dependencies = ["concurrent-ruby" "dry-configurable" "dry-core" "dry-initializer" "dry-logic" "dry-types" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ahx9fam9lq31pl9iszw5k18xvyfaqfdk9mlgqs2shdyw16n9sya"; + type = "gem"; + }; + version = "1.13.4"; + }; + dry-types = { + dependencies = ["bigdecimal" "concurrent-ruby" "dry-core" "dry-inflector" "dry-logic" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sn4n13jj8x27n07yv2s7zp0c5cdlwsbh21laqm5f7ikhp10y67z"; + type = "gem"; + }; + version = "1.7.2"; + }; + faraday = { + dependencies = ["faraday-net_http" "json" "logger"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mls9g490k63rdmjc9shqshqzznfn1y21wawkxrwp2vvbk13jwqm"; + type = "gem"; + }; + version = "2.12.2"; + }; + faraday-http-cache = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10wld3vk3i8zsr3pa9zyjiyi2zlyyln872812f08bbg1hnd15z6b"; + type = "gem"; + }; + version = "2.5.1"; + }; + faraday-net_http = { + dependencies = ["net-http"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1"; + type = "gem"; + }; + version = "3.4.0"; + }; + fiber-annotation = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00vcmynyvhny8n4p799rrhcx0m033hivy0s1gn30ix8rs7qsvgvs"; + type = "gem"; + }; + version = "0.2.0"; + }; + fiber-local = { + dependencies = ["fiber-storage"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01lz929qf3xa90vra1ai1kh059kf2c8xarfy6xbv1f8g457zk1f8"; + type = "gem"; + }; + version = "1.1.0"; + }; + fiber-storage = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zxblmxwdpj3587wji5325y53gjdcmzxzm6126dyg58b3qzk42mq"; + type = "gem"; + }; + version = "1.0.0"; + }; + fusuma = { + groups = ["default"]; + platforms = []; + source = { + path = ./.; + type = "path"; + }; + version = "3.7.0"; + }; + github_changelog_generator = { + dependencies = ["activesupport" "async" "async-http-faraday" "faraday-http-cache" "multi_json" "octokit" "rainbow" "rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04d6z2ysq3gzvpw91lq8mxmdlqcxkmvp8rw9zrzkmksh3pjdzli1"; + type = "gem"; + }; + version = "1.16.4"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k31wcgnvcvd14snz0pfqj976zv6drfsnq6x8acz10fiyms9l8nw"; + type = "gem"; + }; + version = "1.14.6"; + }; + io-console = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18pgvl7lfjpichdfh1g50rpz0zpaqrpr52ybn9liv1v9pjn9ysnd"; + type = "gem"; + }; + version = "0.8.0"; + }; + io-endpoint = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0damgyz4pxw64isv7lwvsxa4vcbybnr8wh3g5147z8hsxwsm4xai"; + type = "gem"; + }; + version = "0.14.0"; + }; + io-event = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s2ja3x17ffakc5iq56js0bp0wrqdvyhcbz5a9m3nnzks06wkywr"; + type = "gem"; + }; + version = "1.7.5"; + }; + io-stream = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vz9sad4kmgby53hn8jh31a462m9mkln7lxhk972dz9d870z0825"; + type = "gem"; + }; + version = "0.6.1"; + }; + irb = { + dependencies = ["rdoc" "reline"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lh71mn0mszffwvxgiwlp1zyr38kw8d9iqsvbk7fk2j3y7rg2my4"; + type = "gem"; + }; + version = "1.14.3"; + }; + json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "048danb0x10mpch6mf88mky35zjn6wk4hpbqq68ssbq58i3fzgfj"; + type = "gem"; + }; + version = "2.9.1"; + }; + language_server-protocol = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + type = "gem"; + }; + version = "3.17.0.3"; + }; + lint_roller = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c"; + type = "gem"; + }; + version = "1.1.0"; + }; + logger = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rrf3y8j3fjjmn74d2i3l85pjm7yhvl8xgz7684hac92j8fbj9xn"; + type = "gem"; + }; + version = "1.6.4"; + }; + metrics = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1762zjanzjzr7jwig2arpj4h09ylhspipp9blx4pb9cjvgm8xv22"; + type = "gem"; + }; + version = "0.12.1"; + }; + minitest = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0izrg03wn2yj3gd76ck7ifbm9h2kgy8kpg4fk06ckpy4bbicmwlw"; + type = "gem"; + }; + version = "5.25.4"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; + type = "gem"; + }; + version = "1.15.0"; + }; + net-http = { + dependencies = ["uri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; + type = "gem"; + }; + version = "0.6.0"; + }; + octokit = { + dependencies = ["faraday" "sawyer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15lvy06h276jryxg19258b2yqaykf0567sp0n16yipywhbp94860"; + type = "gem"; + }; + version = "4.25.1"; + }; + parallel = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq"; + type = "gem"; + }; + version = "1.26.3"; + }; + parser = { + dependencies = ["ast" "racc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fxw738al3qxa4s4ghqkxb908sav03i3h7xflawwmxzhqiyfdm15"; + type = "gem"; + }; + version = "3.3.6.0"; + }; + proc_to_ast = { + dependencies = ["parser" "rouge" "unparser"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ghbd3b6vlhfb85ld7kbcf7id436c4ls3y4jhwfw4y1qki0ldd2b"; + type = "gem"; + }; + version = "0.2.0"; + }; + protocol-hpack = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14ddqg5mcs9ysd1hdzkm5pwil0660vrxcxsn576s3387p0wa5v3g"; + type = "gem"; + }; + version = "1.5.1"; + }; + protocol-http = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05rzzf5minb77ahj2cjkkqbsh7a686b678xvn16d2kxn22rq9w5a"; + type = "gem"; + }; + version = "0.47.1"; + }; + protocol-http1 = { + dependencies = ["protocol-http"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ijjp4jn7wbwcvms1gra4pdp4zm1cngy22pgb81ch68wy95p85jc"; + type = "gem"; + }; + version = "0.28.1"; + }; + protocol-http2 = { + dependencies = ["protocol-hpack" "protocol-http"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04q5m5sbrqm92dsdhlris0p93pjd007hg7kf4dmfrr79r9rr8fla"; + type = "gem"; + }; + version = "0.22.0"; + }; + psych = { + dependencies = ["date" "stringio"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1aq6k7zw1pi022q4ilpfn78l1gka17kn9krqdh45is6khmy4gad4"; + type = "gem"; + }; + version = "5.2.2"; + }; + public_suffix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vqcw3iwby3yc6avs1vb3gfd0vcp2v7q310665dvxfswmcf4xm31"; + type = "gem"; + }; + version = "6.0.1"; + }; + racc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa"; + type = "gem"; + }; + version = "1.8.1"; + }; + rainbow = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; + type = "gem"; + }; + version = "3.1.1"; + }; + rake = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; + type = "gem"; + }; + version = "13.2.1"; + }; + rblineprof = { + dependencies = ["debugger-ruby_core_source"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mbnj1jd1sd557199x6m1czbbj472vhycq681g2h96kca1ay22k"; + type = "gem"; + }; + version = "0.3.7"; + }; + rblineprof-report = { + dependencies = ["term-ansicolor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s1pi3cild0x2vc2mmm5zbvm4rmz56wkrqr1aflrl7kx8ymkl0zj"; + type = "gem"; + }; + version = "0.0.4"; + }; + rdoc = { + dependencies = ["psych"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1niyzaiwz155nhardgxiin44j1wnrsp73pwwl8xxzj9si0hm0rnv"; + type = "gem"; + }; + version = "6.10.0"; + }; + reek = { + dependencies = ["dry-schema" "parser" "rainbow" "rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rrab0pk82s3gs1b7832pb4vrj8qmnvdv9rh83qf2f2hsxdc80a5"; + type = "gem"; + }; + version = "6.3.0"; + }; + regexp_parser = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qccah61pjvzyyg6mrp27w27dlv6vxlbznzipxjcswl7x3fhsvyb"; + type = "gem"; + }; + version = "2.10.0"; + }; + reline = { + dependencies = ["io-console"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lirwlw59apc8m1wjk85y2xidiv0fkxjn6f7p84yqmmyvish6qjp"; + type = "gem"; + }; + version = "0.6.0"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ch4k2y80r4glr579kxliqnxld2qa91ydq8fiqam38bzpbps3gpg"; + type = "gem"; + }; + version = "3.4.0"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pchwrkr0994v7mh054lcp0na3bk3mj2sk0dc33bn6bhxrnirj1a"; + type = "gem"; + }; + version = "4.5.1"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l"; + type = "gem"; + }; + version = "3.13.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl"; + type = "gem"; + }; + version = "3.13.2"; + }; + rspec-debug = { + dependencies = ["debug"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02q47x50qbjf1vbjvaza4smvfsscskr1ms8qpx41csnykv47cc0m"; + type = "gem"; + }; + version = "0.2.0"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf"; + type = "gem"; + }; + version = "3.13.3"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3"; + type = "gem"; + }; + version = "3.13.2"; + }; + rspec-parameterized = { + dependencies = ["rspec-parameterized-core" "rspec-parameterized-table_syntax"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hplygik9p5d92lhb9412lzap8msrmry2qrrq5d1f90r170dwmml"; + type = "gem"; + }; + version = "1.0.2"; + }; + rspec-parameterized-core = { + dependencies = ["parser" "proc_to_ast" "rspec" "unparser"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1aqs8s44z4s5fizj0ajfwjklx9vwd44cs6rxz1cqpx9kqhwrk09i"; + type = "gem"; + }; + version = "1.0.1"; + }; + rspec-parameterized-table_syntax = { + dependencies = ["binding_of_caller" "rspec-parameterized-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1z7jh0jhg5ysbs56aq0bqhwkpjbsxzr8chxpz36v64873zrdispz"; + type = "gem"; + }; + version = "1.0.1"; + }; + rspec-support = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf"; + type = "gem"; + }; + version = "3.13.2"; + }; + rubocop = { + dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f2bj93f60757xyk7h3v0s7xz8d22lc9zlw88l2zd6rp1brv0bvn"; + type = "gem"; + }; + version = "1.69.2"; + }; + rubocop-ast = { + dependencies = ["parser"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10604xc4bcji3ca43anlc89xwxb4wkzk69cia95x04zima4aq4wm"; + type = "gem"; + }; + version = "1.37.0"; + }; + rubocop-performance = { + dependencies = ["rubocop" "rubocop-ast"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wcilipyh890k0vwx8mgkj5qpjy2xvvgk89l9ars1wf53g5pibil"; + type = "gem"; + }; + version = "1.23.0"; + }; + ruby-progressbar = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40"; + type = "gem"; + }; + version = "1.13.0"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps"; + type = "gem"; + }; + version = "0.9.2"; + }; + securerandom = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc"; + type = "gem"; + }; + version = "0.4.1"; + }; + simplecov = { + dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"; + type = "gem"; + }; + version = "0.22.0"; + }; + simplecov-html = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx"; + type = "gem"; + }; + version = "0.13.1"; + }; + simplecov_json_formatter = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j"; + type = "gem"; + }; + version = "0.1.4"; + }; + standard = { + dependencies = ["language_server-protocol" "lint_roller" "rubocop" "standard-custom" "standard-performance"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15qwp65cd2kddnryppxmyb8srr8dwi4w62w5mri82fiq0svqmnmj"; + type = "gem"; + }; + version = "1.43.0"; + }; + standard-custom = { + dependencies = ["lint_roller" "rubocop"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0av55ai0nv23z5mhrwj1clmxpgyngk7vk6rh58d4y1ws2y2dqjj2"; + type = "gem"; + }; + version = "1.0.2"; + }; + standard-performance = { + dependencies = ["lint_roller" "rubocop-performance"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x298w3wmq8cavbsg903wc3arxp3xh2x8263brvy128436m732rd"; + type = "gem"; + }; + version = "1.6.0"; + }; + stringio = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cd1kdrf62p2ya3ia4rz49d5012bqinvqjmcgkakknswz0l1hkr0"; + type = "gem"; + }; + version = "3.1.2"; + }; + sync = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6"; + type = "gem"; + }; + version = "0.5.0"; + }; + term-ansicolor = { + dependencies = ["tins"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10shkrl9sl1qhrzbmch2cn67w1yy63d0f2948m80b5nl44zwc02b"; + type = "gem"; + }; + version = "1.11.2"; + }; + tins = { + dependencies = ["bigdecimal" "sync"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hiq5bm8a0xas41ddc2xxxvf96rfib9j5s01bn1nmr1ilssjms9s"; + type = "gem"; + }; + version = "1.37.1"; + }; + traces = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zxbxbgf33fxniycgqvgscad4jvil9pywwdg7q8bx5ym40lbdg0k"; + type = "gem"; + }; + version = "0.14.1"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd"; + type = "gem"; + }; + version = "2.0.6"; + }; + unicode-display_width = { + dependencies = ["unicode-emoji"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hn9jm6crk17gnh4j5klhgxxxwbdmld9k3rdb39sah99vkyv1fyv"; + type = "gem"; + }; + version = "3.1.3"; + }; + unicode-emoji = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c"; + type = "gem"; + }; + version = "4.0.4"; + }; + unparser = { + dependencies = ["diff-lcs" "parser"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rxdgilcs3mcwc29zjy3fhkldn19nhxff0nr14pi0zxdlr5rk7hm"; + type = "gem"; + }; + version = "0.6.15"; + }; + uri = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09qyg6a29cfgd46qid8qvx4sjbv596v19ym73xvhanbyxd6500xk"; + type = "gem"; + }; + version = "1.0.2"; + }; + yard = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6"; + type = "gem"; + }; + version = "0.9.37"; + }; + zeitwerk = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mi7b90hvc6nqv37q27df4i2m27yy56yfy2ki5073474a1h9hi89"; + type = "gem"; + }; + version = "2.7.1"; + }; +} diff --git a/packages/fusuma/default.nix b/packages/fusuma/default.nix new file mode 100644 index 0000000..9439ba1 --- /dev/null +++ b/packages/fusuma/default.nix @@ -0,0 +1,35 @@ +{ pkgs }: with pkgs; +let + # be sure that gemset.nix reflects Gemfile.lock + src = ../..; + gems = bundlerEnv { + inherit ruby; + name = "fusuma"; + gemdir = src; + }; +in stdenv.mkDerivation { + name = "fusuma"; + meta = { + mainProgram = "fusuma"; + }; + inherit src; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ gems ruby ]; + installPhase = '' + mkdir -p $out/{bin,share/fusuma} + cp -r * $out/share/fusuma + bin=$out/bin/fusuma + cat > $bin <