scarpe 0.4.0 → 0.5.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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.cursor/rules/commit-style-preferences.mdc +72 -0
  3. data/.cursor/rules/component_context.mdc +82 -0
  4. data/.cursor/rules/debug-failed-tests.mdc +100 -0
  5. data/.cursor/rules/display_service_context.mdc +80 -0
  6. data/.cursor/rules/event_handling_context.mdc +100 -0
  7. data/.cursor/rules/git-pager-handling.mdc +64 -0
  8. data/.cursor/rules/lacci-context.mdc +52 -0
  9. data/.cursor/rules/scarpe_design_context.mdc +46 -0
  10. data/.cursor/rules/shoes_compatibility_context.mdc +75 -0
  11. data/.cursor/rules/timeout_context.mdc +78 -0
  12. data/.cursor/rules/update_lacci_and_wv.mdc +8 -0
  13. data/.cursor/rules/what_is_scarpe.mdc +22 -0
  14. data/.cursor/rules/writing-new-rules.mdc +73 -0
  15. data/CHANGELOG.md +10 -1
  16. data/CLAUDE.md +223 -0
  17. data/Gemfile +0 -1
  18. data/Gemfile.lock +78 -58
  19. data/README.md +4 -7
  20. data/Rakefile +17 -25
  21. data/docs/SCARPE_FEATURES.md +38 -0
  22. data/docs/_config.yml +13 -0
  23. data/docs/calzini_components_and_updates.md +78 -0
  24. data/docs/display_service_separation.md +39 -0
  25. data/docs/documentation.md +43 -0
  26. data/docs/event_loops.md +66 -0
  27. data/docs/image.png +0 -0
  28. data/docs/index.md +118 -0
  29. data/docs/lacci.md +121 -0
  30. data/docs/scarpe_shoes_incompatibilities.md +71 -0
  31. data/docs/shoes_and_display_events.md +55 -0
  32. data/docs/shoes_implementations.md +79 -0
  33. data/docs/static/manual.md +5 -0
  34. data/docs/static/scarpe-logo.png +0 -0
  35. data/docs/timeouts_and_handlers.md +66 -0
  36. data/docs/web_archaeology.md +76 -0
  37. data/examples/background_with_image.rb +14 -5
  38. data/examples/bloopsaphone/working/feepogram.rb +1 -1
  39. data/examples/bloopsaphone/working/le_dance_des_rubis.rb +135 -0
  40. data/examples/bloopsaphone/working/pixel_dreams_in_ruby.rb +131 -0
  41. data/examples/bloopsaphone/working/type_rebellion.rb +157 -0
  42. data/examples/border.rb +1 -1
  43. data/examples/internal_link_navigation.rb +19 -0
  44. data/examples/page_navigation_single_app.rb +42 -0
  45. data/examples/shoes_subclass_app.rb +25 -0
  46. data/examples/url_routing_example.rb +67 -0
  47. data/lacci/Gemfile +0 -2
  48. data/lacci/Gemfile.lock +4 -32
  49. data/lacci/lacci.gemspec +1 -1
  50. data/lacci/lib/lacci/version.rb +1 -1
  51. data/lacci/lib/scarpe/niente/app.rb +12 -1
  52. data/lacci/lib/scarpe/niente/shoes_spec.rb +4 -5
  53. data/lacci/lib/scarpe/niente.rb +1 -0
  54. data/lacci/lib/shoes/app.rb +166 -61
  55. data/lacci/lib/shoes/constants.rb +1 -0
  56. data/lacci/lib/shoes/drawable.rb +35 -19
  57. data/lacci/lib/shoes/drawables/arc.rb +2 -2
  58. data/lacci/lib/shoes/drawables/arrow.rb +2 -2
  59. data/lacci/lib/shoes/drawables/border.rb +1 -1
  60. data/lacci/lib/shoes/drawables/button.rb +1 -1
  61. data/lacci/lib/shoes/drawables/edit_line.rb +1 -1
  62. data/lacci/lib/shoes/drawables/flow.rb +1 -1
  63. data/lacci/lib/shoes/drawables/line.rb +2 -2
  64. data/lacci/lib/shoes/drawables/link.rb +11 -1
  65. data/lacci/lib/shoes/drawables/oval.rb +2 -2
  66. data/lacci/lib/shoes/drawables/rect.rb +2 -2
  67. data/lacci/lib/shoes/drawables/shape.rb +2 -2
  68. data/lacci/lib/shoes/drawables/slot.rb +5 -3
  69. data/lacci/lib/shoes/drawables/stack.rb +1 -1
  70. data/lacci/lib/shoes/drawables/star.rb +1 -1
  71. data/lacci/lib/shoes/drawables/widget.rb +1 -1
  72. data/lacci/lib/shoes.rb +94 -17
  73. data/lacci/test/test_margin_helper.rb +1 -1
  74. data/lacci/test/test_niente_test_infra.rb +14 -0
  75. data/lacci/test/test_shoes_errors.rb +15 -13
  76. data/lib/scarpe/assets.rb +2 -1
  77. data/lib/scarpe/shoes_spec.rb +2 -1
  78. data/lib/scarpe/version.rb +1 -1
  79. data/lib/scarpe/wv/edit_line.rb +2 -2
  80. data/lib/scarpe/wv.rb +8 -1
  81. data/scarpe-components/Gemfile +0 -2
  82. data/scarpe-components/Gemfile.lock +4 -34
  83. data/scarpe-components/lib/scarpe/components/calzini/misc.rb +10 -2
  84. data/scarpe-components/lib/scarpe/components/calzini/para.rb +6 -1
  85. data/scarpe-components/lib/scarpe/components/calzini/slots.rb +2 -0
  86. data/scarpe-components/lib/scarpe/components/port_helpers.rb +30 -0
  87. data/scarpe-components/lib/scarpe/components/version.rb +1 -1
  88. data/scarpe-components/scarpe-components.gemspec +1 -1
  89. data/scarpe-components/test/test_port_helpers.rb +12 -0
  90. metadata +60 -22
  91. data/.rubocop.yml +0 -94
@@ -0,0 +1,78 @@
1
+ ---
2
+ description: Share timeout and handler context when working with timing-related code
3
+ globs:
4
+ alwaysApply: false
5
+ ---
6
+ # Timeout and Handler Context
7
+
8
+ <rule>
9
+ name: timeout_context
10
+ description: Share relevant timeout and handler documentation when working with timing-related code
11
+ filters:
12
+ - type: file
13
+ pattern: **/*timeout*.rb
14
+ - type: file
15
+ pattern: **/*timeout*.md
16
+ - type: file
17
+ pattern: **/*handler*.rb
18
+ - type: file
19
+ pattern: **/*handler*.md
20
+ - type: file
21
+ pattern: **/*timer*.rb
22
+ - type: file
23
+ pattern: **/*timer*.md
24
+
25
+ actions:
26
+ - type: suggest
27
+ message: |
28
+ # Timeout and Handler Context
29
+
30
+ When working with Scarpe's timeout and handler system, consider:
31
+
32
+ 1. Timeout Implementation
33
+ - [timeouts_and_handlers.md](mdc:docs/timeouts_and_handlers.md) - Core timeout documentation
34
+ - [event_loops.md](mdc:docs/event_loops.md) - Event loop integration
35
+
36
+ 2. Key Concepts:
37
+ ```ruby
38
+ def after(milliseconds, &block)
39
+ register_timeout(Time.now + (milliseconds / 1000.0), block)
40
+ end
41
+ ```
42
+
43
+ 3. Cooperative Nature:
44
+ - Timeouts don't interrupt execution
45
+ - Processed when event loop is ready
46
+ - Timing is approximate, not exact
47
+
48
+ 4. Handler Registration:
49
+ - Handlers registered with specific events
50
+ - Multiple handlers per event possible
51
+ - Order of execution preserved
52
+
53
+ 5. Best Practices:
54
+ - Keep handlers non-blocking
55
+ - Use appropriate timing granularity
56
+ - Consider event loop implications
57
+ - Handle errors appropriately
58
+
59
+ 6. Additional Resources:
60
+ - Wiki: https://github.com/scarpe-team/scarpe/wiki/ScarpeDesign.md#timeouts-and-handlers
61
+ - Related sections:
62
+ * Event Loops
63
+ * Display Service Separation
64
+ * Shoes and Display Events
65
+
66
+ examples:
67
+ - description: "Working with timeouts"
68
+ input: |
69
+ When implementing timeouts:
70
+ 1. Consider cooperative nature
71
+ 2. Use appropriate timing
72
+ 3. Keep handlers non-blocking
73
+ 4. Handle errors properly
74
+
75
+ metadata:
76
+ priority: high
77
+ version: 1.0
78
+ </rule>
@@ -0,0 +1,8 @@
1
+ ---
2
+ description:
3
+ globs: lacci/**/*,lib/scarpe/wv/**/*,lib/scarpe/wv/*.rb
4
+ alwaysApply: false
5
+ ---
6
+ Ensure, that you recognize that a webview (WV) drawable and lacci drawable must BOTH be updated when adding new user DSL/features.
7
+
8
+ You also need to update calzini under scarpe-components
@@ -0,0 +1,22 @@
1
+ ---
2
+ description:
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ Scarpe is a modern attempt at an implementation of Why The Lucky Stiff's Shoes.rb.
7
+
8
+ It is not complete.
9
+
10
+ It is built on Webview.
11
+
12
+ Our primary goal is to as many shoes apps from `examples/legacy/not_checked` working as possible. So, you can check them for bits of DSL that aren't yet up to scratch. They used to work.
13
+
14
+ `docs/static/manual-en.txt` is our "bible". It is nearly a perfect representation of how Shoes _should_ work. It's what we want to do. With every fibre of your being I want you to help me get the not checked examples working and anything from this manual.
15
+
16
+ It is 3,500 lines long though.
17
+
18
+ To run an example to see if it's working (I'll have to check) run something like:
19
+
20
+ `SCARPE_BOOTSTRAP_THEME=sketchy bundle exec ./exe/scarpe examples/page_navigation_single_app.rb --debug
21
+ `
22
+
@@ -0,0 +1,73 @@
1
+ ---
2
+ description:
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ # Writing New Rules
7
+
8
+ <rule>
9
+ name: writing_new_rules
10
+ description: Guidelines for creating and formatting new rules in the rules directory
11
+ filters:
12
+ - type: event
13
+ pattern: "new_rule_creation"
14
+
15
+ actions:
16
+ - type: suggest
17
+ message: |
18
+ # Rule Creation Process
19
+
20
+ 1. Always create new rules with .mc extension first:
21
+ - Create file as `.cursor/rules/rule-name.mc`
22
+ - Only convert to .mdc after content is approved
23
+
24
+ 2. Required File Structure:
25
+ ```
26
+ ---
27
+ description: Brief description of the rule's purpose
28
+ globs: "pattern to match files this rule applies to"
29
+ ---
30
+ # Rule Title
31
+
32
+ <rule>
33
+ name: rule_name
34
+ description: Detailed description
35
+ filters:
36
+ - type: event
37
+ pattern: "relevant_event"
38
+
39
+ actions:
40
+ - type: suggest
41
+ message: |
42
+ # Action Title
43
+ Action content...
44
+
45
+ examples:
46
+ - description: "Example scenario"
47
+ input: |
48
+ Example input...
49
+
50
+ metadata:
51
+ priority: level
52
+ version: 1.0
53
+ </rule>
54
+ ```
55
+
56
+ 3. After approval, rename to .mdc:
57
+ ```bash
58
+ mv .cursor/rules/rule-name.mc .cursor/rules/rule-name.mdc
59
+ ```
60
+
61
+ examples:
62
+ - description: "Creating a new rule"
63
+ input: |
64
+ # First create with .mc extension
65
+ touch .cursor/rules/new-feature.mc
66
+
67
+ # After approval, rename to .mdc
68
+ mv .cursor/rules/new-feature.mc .cursor/rules/new-feature.mdc
69
+
70
+ metadata:
71
+ priority: high
72
+ version: 1.0
73
+ </rule>
data/CHANGELOG.md CHANGED
@@ -4,12 +4,21 @@ Here we write upgrading notes for brands. It's a team effort to make them as
4
4
  straightforward as possible.
5
5
 
6
6
  ### Enhancements
7
+ - Added CLAUDE.md for agentic coding assistance
8
+ - Removed bloops as a required dependency - sound is now opt-in (install bloops gem separately if needed)
9
+ - Added base64 gem dependency for Ruby 3.4+ compatibility
7
10
 
8
11
  ### Bugs Fixed
9
- - #-some-pr-number <description> @author-of-pr
12
+ - #569 link(click: "/path") now triggers internal navigation via visit(); paths like "/foo" also fall back to page(:foo) if no URL route matches
13
+ - Support for `class MyApp < Shoes` inheritance pattern with URL routing
14
+ - Fixed background() with remote URLs (now properly wrapped in CSS url())
10
15
 
11
16
  ### Incompatibilities
12
17
 
18
+ ## [0.4.0] - 2024-05-06 - Strangers
19
+
20
+ Core Scarpe has been relatively stable for awhile. A lot of this release is bugfixes and refactors.
21
+
13
22
  ## [0.3.1] - 2023-??-?? - Up
14
23
 
15
24
  Lots of bug fixes. We're also still implementing major Shoes3 features.
data/CLAUDE.md ADDED
@@ -0,0 +1,223 @@
1
+ # Scarpe - AI Assistant Context
2
+
3
+ > *In loving memory of Noah Gibbs, who believed in this project and whose thoughtful documentation lives on in every design decision.*
4
+
5
+ ## What is Scarpe?
6
+
7
+ **Scarpe** (Italian for "shoes") is a modern reimplementation of [Why The Lucky Stiff's Shoes](https://github.com/shoes/shoes-deprecated) - a beloved Ruby GUI toolkit that made desktop app creation accessible to absolute beginners.
8
+
9
+ ```ruby
10
+ # This is all it takes to create a window with a button
11
+ Shoes.app { button("Click me!") { alert("Good job.") } }
12
+ ```
13
+
14
+ Scarpe preserves _why's elegant DSL while building on modern technology (Webview). It is **not yet complete**, but actively maintained.
15
+
16
+ ## The Mission
17
+
18
+ Our primary goal is **backwards compatibility with classic Shoes apps**. We want old Shoes programs to just work.
19
+
20
+ ### The Bible
21
+
22
+ `docs/static/manual.md` (3,500+ lines) is our authoritative reference for how Shoes _should_ work. Every implementation decision should align with this manual.
23
+
24
+ ### The Proving Ground
25
+
26
+ `examples/legacy/not_checked/` contains Shoes apps that **used to work** in classic Shoes. Getting these examples running is our north star.
27
+
28
+ ## Architecture Overview
29
+
30
+ Scarpe has a layered architecture:
31
+
32
+ ### Lacci (The Compatibility Layer)
33
+ **Location:** `lacci/`
34
+
35
+ Lacci (Italian for "laces") translates Shoes commands into display-agnostic operations:
36
+ - Implements the Shoes4 drawing model (stacks, flows, slots)
37
+ - Handles margin calculations, fonts, layout
38
+ - Uses **Niente** (null display service) for testing
39
+
40
+ See: `docs/lacci.md`
41
+
42
+ ### Display Service (The Renderer)
43
+ **Location:** `lib/scarpe/`
44
+
45
+ The display service runs as a **separate process** from the main application:
46
+ - Clear separation between app logic and display logic
47
+ - Different display implementations can be swapped
48
+ - Communication via well-defined message protocol
49
+ - Supports local and relay-based services
50
+
51
+ See: `docs/display_service_separation.md`
52
+
53
+ ### Calzini (The Components)
54
+ Components follow a lifecycle pattern with state management and event handling.
55
+
56
+ See: `docs/calzini_components_and_updates.md`
57
+
58
+ ## Key Documentation
59
+
60
+ All in `docs/`:
61
+
62
+ | Document | Purpose |
63
+ |----------|---------|
64
+ | `static/manual.md` | **THE BIBLE** - How Shoes should work |
65
+ | `lacci.md` | Compatibility layer documentation |
66
+ | `display_service_separation.md` | Architecture decisions |
67
+ | `shoes_and_display_events.md` | Event handling details |
68
+ | `event_loops.md` | Event loop architecture |
69
+ | `timeouts_and_handlers.md` | Timing and callbacks |
70
+ | `calzini_components_and_updates.md` | Component system |
71
+ | `scarpe_shoes_incompatibilities.md` | Known differences from Shoes |
72
+ | `shoes_implementations.md` | History of Shoes implementations |
73
+ | `SCARPE_FEATURES.md` | New features beyond original Shoes |
74
+ | `yard/catscradle.md` | Fiber-based testing approach |
75
+
76
+ ## Running Scarpe
77
+
78
+ ```bash
79
+ # Install dependencies (Linux only - Mac works out of the box)
80
+ sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev # Ubuntu/Debian
81
+
82
+ # Install gems
83
+ bundle install
84
+
85
+ # Run an example
86
+ ./exe/scarpe examples/button.rb --dev --debug
87
+
88
+ # With a theme
89
+ SCARPE_BOOTSTRAP_THEME=sketchy bundle exec ./exe/scarpe examples/button.rb --debug
90
+
91
+ # Optional: For sound support (bloopsaphone examples)
92
+ # gem install bloops # requires portaudio: brew install portaudio (Mac)
93
+ ```
94
+
95
+ ## Testing
96
+
97
+ ```bash
98
+ # Run all tests
99
+ bundle exec rake ci_test
100
+
101
+ # Run component tests
102
+ bundle exec rake lacci_test # Lacci tests
103
+ bundle exec rake component_test # Scarpe-components tests
104
+ bundle exec rake test # Scarpe tests
105
+
106
+ # Check HTML output
107
+ bundle exec rake test:check_html_fixtures
108
+ ```
109
+
110
+ ### Testing Philosophy
111
+
112
+ - Test new features with **Niente** (null display) first
113
+ - Use **Fiber-based testing** for complex event interactions (see CatsCradle)
114
+ - Keep handlers non-blocking
115
+ - Maintain backward compatibility
116
+
117
+ ## Development Workflow
118
+
119
+ ### When Debugging Failed Tests
120
+
121
+ 1. Add strategic `puts` statements to understand the issue
122
+ 2. Run the test and analyze output
123
+ 3. Implement the fix
124
+ 4. Verify the fix
125
+ 5. **Remove all debugging statements before committing**
126
+
127
+ ### Commit Style
128
+
129
+ ```
130
+ Add request validation to UserWidget
131
+
132
+ Prevents invalid requests from reaching the database layer.
133
+ Adds type checking and parameter validation before processing.
134
+
135
+ Impact: Improved error handling and reduced DB load.
136
+ ```
137
+
138
+ - First line: Clear statement of WHAT (50 chars ideal)
139
+ - Empty line after header
140
+ - Body: WHY needed, HOW it works, technical implications
141
+
142
+ ## Code Patterns
143
+
144
+ ### Display Service Singleton
145
+ ```ruby
146
+ class DisplayService < Shoes::DisplayService
147
+ class << self
148
+ attr_accessor :instance
149
+ end
150
+
151
+ def initialize
152
+ if DisplayService.instance
153
+ raise Shoes::Errors::SingletonError, "This is meant to be a singleton!"
154
+ end
155
+ DisplayService.instance = self
156
+ end
157
+ end
158
+ ```
159
+
160
+ ### Event Dispatch
161
+ ```ruby
162
+ def dispatch_event(event_name, event_target, *args, **kwargs)
163
+ handlers = [
164
+ same_name_handlers[:any],
165
+ same_name_handlers[event_target],
166
+ any_name_handlers[:any],
167
+ any_name_handlers[event_target],
168
+ ].compact.inject([], &:+)
169
+ handlers.each { |h| h[:handler].call(*args, **kwargs) }
170
+ end
171
+ ```
172
+
173
+ ## Core Values
174
+
175
+ From the README:
176
+ - **Resiliency** - Tested and trustworthy
177
+ - **User Experience** - Beautiful, easy DSL
178
+ - **Whimsy** - We're here to have fun! Chunky Bacon. 🥓
179
+ - **Empathy** - Help one another
180
+
181
+ ## Adding New Features
182
+
183
+ New features beyond original Shoes require approval and must:
184
+ 1. Not conflict with backwards compatibility
185
+ 2. Be documented in `docs/SCARPE_FEATURES.md`
186
+ 3. Follow existing patterns
187
+
188
+ Example: Page navigation (`page(:home)`, `visit(:another_page)`)
189
+
190
+ ## Project Structure
191
+
192
+ ```
193
+ scarpe/
194
+ ├── lacci/ # Shoes4 compatibility layer
195
+ ├── lib/scarpe/ # Display service implementations
196
+ ├── scarpe-components/ # Shared components
197
+ ├── examples/ # Example apps
198
+ │ └── legacy/not_checked/ # Apps to fix!
199
+ ├── docs/ # Design documentation
200
+ │ └── static/manual.md # THE BIBLE
201
+ ├── test/ # Test suite
202
+ └── exe/scarpe # Main executable
203
+ ```
204
+
205
+ ## Environment Variables
206
+
207
+ | Variable | Purpose |
208
+ |----------|---------|
209
+ | `SCARPE_DISPLAY_SERVICE` | Choose display service (wv_local, wv_relay, etc.) |
210
+ | `SCARPE_TEST_CONTROL` | Path to test control script |
211
+ | `SCARPE_LOG_CONFIG` | YAML file for component log levels |
212
+ | `SCARPE_BOOTSTRAP_THEME` | UI theme (e.g., "sketchy") |
213
+
214
+ ## Links
215
+
216
+ - [GitHub Repository](https://github.com/scarpe-team/scarpe)
217
+ - [Wiki](https://github.com/scarpe-team/scarpe/wiki)
218
+ - [Discord](https://discord.gg/Ca5EHSsGYp)
219
+ - [Nobody Knows Shoes - _why's Manual](https://github.com/whymirror/why-archive/raw/master/shoes/nobody-knows-shoes.pdf)
220
+
221
+ ---
222
+
223
+ *Scarpe Diem: Seize the Shoes*
data/Gemfile CHANGED
@@ -8,7 +8,6 @@ gemspec
8
8
  gem "lacci", path: "lacci"
9
9
  gem "scarpe-components", path: "scarpe-components"
10
10
 
11
- gem "bloops", "~> 0.5" #path: "../bloopsaphone" #git: "https://github.com/scarpe-team/bloopsaphone"
12
11
  gem "rake", "~> 13.0"
13
12
 
14
13
  group :test do
data/Gemfile.lock CHANGED
@@ -1,101 +1,122 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scarpe (0.3.0)
5
- bloops (~> 0.5)
6
- fastimage
7
- lacci
4
+ scarpe (0.4.0)
5
+ base64
6
+ fastimage (~> 2.2.7)
7
+ lacci (~> 0.4.0)
8
8
  logging (~> 2.3.1)
9
- nokogiri
10
- scarpe-components
11
- sqlite3
12
- webrick
9
+ nokogiri (~> 1.15.2)
10
+ scarpe-components (~> 0.4.0)
11
+ sqlite3 (~> 1.6.3)
12
+ webrick (~> 1.7.0)
13
13
  webview_ruby (~> 0.1.1)
14
14
 
15
15
  PATH
16
16
  remote: lacci
17
17
  specs:
18
- lacci (0.3.0)
19
- scarpe-components
18
+ lacci (0.4.0)
19
+ scarpe-components (~> 0.4.0)
20
20
 
21
21
  PATH
22
22
  remote: scarpe-components
23
23
  specs:
24
- scarpe-components (0.3.0)
24
+ scarpe-components (0.4.0)
25
25
 
26
26
  GEM
27
27
  remote: https://rubygems.org/
28
28
  specs:
29
29
  ansi (1.5.0)
30
- ast (2.4.2)
31
- bloops (0.5)
32
- builder (3.2.4)
33
- debug (1.8.0)
34
- irb (>= 1.5.0)
35
- reline (>= 0.3.1)
36
- diff-lcs (1.5.0)
30
+ ast (2.4.3)
31
+ base64 (0.3.0)
32
+ builder (3.3.0)
33
+ date (3.5.1)
34
+ debug (1.11.1)
35
+ irb (~> 1.10)
36
+ reline (>= 0.3.8)
37
+ diff-lcs (1.6.2)
38
+ erb (6.0.1)
37
39
  fastimage (2.2.7)
38
- ffi (1.15.5)
39
- ffi-compiler (1.0.1)
40
- ffi (>= 1.0.0)
40
+ ffi (1.17.2-arm64-darwin)
41
+ ffi (1.17.2-x86_64-darwin)
42
+ ffi (1.17.2-x86_64-linux-gnu)
43
+ ffi-compiler (1.3.2)
44
+ ffi (>= 1.15.5)
41
45
  rake
42
- htmlbeautifier (1.4.2)
43
- io-console (0.6.0)
44
- irb (1.6.4)
45
- reline (>= 0.3.0)
46
- json (2.6.3)
46
+ htmlbeautifier (1.4.3)
47
+ io-console (0.8.2)
48
+ irb (1.16.0)
49
+ pp (>= 0.6.0)
50
+ rdoc (>= 4.0.0)
51
+ reline (>= 0.4.2)
52
+ json (2.18.0)
53
+ language_server-protocol (3.17.0.5)
54
+ lint_roller (1.1.0)
47
55
  little-plugger (1.1.4)
48
56
  logging (2.3.1)
49
57
  little-plugger (~> 1.1)
50
58
  multi_json (~> 1.14)
51
- minitest (5.18.0)
52
- minitest-reporters (1.6.0)
59
+ mini_portile2 (2.8.9)
60
+ minitest (5.27.0)
61
+ minitest-reporters (1.7.1)
53
62
  ansi
54
63
  builder
55
64
  minitest (>= 5.0)
56
65
  ruby-progressbar
57
- multi_json (1.15.0)
58
- nokogiri (1.15.2-arm64-darwin)
59
- racc (~> 1.4)
60
- nokogiri (1.15.2-x86_64-darwin)
66
+ multi_json (1.18.0)
67
+ nokogiri (1.15.7)
68
+ mini_portile2 (~> 2.8.2)
61
69
  racc (~> 1.4)
62
- nokogiri (1.15.2-x86_64-linux)
63
- racc (~> 1.4)
64
- parallel (1.22.1)
65
- parser (3.2.1.0)
70
+ parallel (1.27.0)
71
+ parser (3.3.10.0)
66
72
  ast (~> 2.4.1)
67
- racc (1.7.1)
73
+ racc
74
+ pp (0.6.3)
75
+ prettyprint
76
+ prettyprint (0.2.0)
77
+ prism (1.7.0)
78
+ psych (5.3.1)
79
+ date
80
+ stringio
81
+ racc (1.8.1)
68
82
  rainbow (3.1.1)
69
- rake (13.0.6)
70
- redcarpet (3.6.0)
71
- regexp_parser (2.7.0)
72
- reline (0.3.4)
83
+ rake (13.3.1)
84
+ rdoc (7.0.2)
85
+ erb
86
+ psych (>= 4.0.0)
87
+ tsort
88
+ redcarpet (3.6.1)
89
+ regexp_parser (2.11.3)
90
+ reline (0.6.3)
73
91
  io-console (~> 0.5)
74
- rexml (3.2.5)
75
- rubocop (1.46.0)
92
+ rubocop (1.82.0)
76
93
  json (~> 2.3)
94
+ language_server-protocol (~> 3.17.0.2)
95
+ lint_roller (~> 1.1.0)
77
96
  parallel (~> 1.10)
78
- parser (>= 3.2.0.0)
97
+ parser (>= 3.3.0.2)
79
98
  rainbow (>= 2.2.2, < 4.0)
80
- regexp_parser (>= 1.8, < 3.0)
81
- rexml (>= 3.2.5, < 4.0)
82
- rubocop-ast (>= 1.26.0, < 2.0)
99
+ regexp_parser (>= 2.9.3, < 3.0)
100
+ rubocop-ast (>= 1.48.0, < 2.0)
83
101
  ruby-progressbar (~> 1.7)
84
- unicode-display_width (>= 2.4.0, < 3.0)
85
- rubocop-ast (1.26.0)
86
- parser (>= 3.2.1.0)
87
- ruby-progressbar (1.11.0)
88
- sqlite3 (1.6.3-arm64-darwin)
89
- sqlite3 (1.6.3-x86_64-darwin)
90
- sqlite3 (1.6.3-x86_64-linux)
91
- unicode-display_width (2.4.2)
102
+ unicode-display_width (>= 2.4.0, < 4.0)
103
+ rubocop-ast (1.48.0)
104
+ parser (>= 3.3.7.2)
105
+ prism (~> 1.4)
106
+ ruby-progressbar (1.13.0)
107
+ sqlite3 (1.6.9)
108
+ mini_portile2 (~> 2.8.0)
109
+ stringio (3.2.0)
110
+ tsort (0.2.0)
111
+ unicode-display_width (3.2.0)
112
+ unicode-emoji (~> 4.1)
113
+ unicode-emoji (4.2.0)
92
114
  webrick (1.7.0)
93
115
  webview_ruby (0.1.2)
94
116
  ffi
95
117
  ffi-compiler
96
118
  rake
97
- yard (0.9.28)
98
- webrick (~> 1.7.0)
119
+ yard (0.9.38)
99
120
 
100
121
  PLATFORMS
101
122
  arm64-darwin-21
@@ -108,7 +129,6 @@ PLATFORMS
108
129
  x86_64-linux
109
130
 
110
131
  DEPENDENCIES
111
- bloops (~> 0.5)
112
132
  debug
113
133
  diff-lcs
114
134
  htmlbeautifier
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![Ruby Style Guide](https://img.shields.io/badge/code_style-shopify-brightgreen.svg)](https://github.com/Shopify/ruby-style-guide)
6
6
  [![Discord](https://img.shields.io/discord/1072538177321058377?label=discord)](https://discord.gg/Ca5EHSsGYp)
7
7
 
8
- <img src="https://user-images.githubusercontent.com/7865030/217309905-7f25e3cf-1850-481d-811b-dfddea2df54a.png" width="200" height="200">
8
+ <img src="docs/static/scarpe-logo.png">
9
9
 
10
10
  "Scarpe" means shoes in Italian. "Scarpe" also means [Shoes](https://github.com/shoes/shoes-deprecated) in modern Ruby and Webview!
11
11
 
@@ -64,14 +64,11 @@ Scarpe requires [Ruby 3.2](https://www.ruby-lang.org/en/downloads/) or higher! Y
64
64
  This repo is where most of the action is happening right now, and to have the full Scarpe experience _today_ this is probably what you want to do.
65
65
 
66
66
  ```
67
- # dependencies - Mac version
68
- brew install portaudio pkg-config # for sound!
69
- # dependencies - Mac M1 version
70
- brew install portaudio && bundle config build.bloops --with-portaudio-dir=$(brew --prefix portaudio)
71
67
  # dependencies - Ubuntu Linux version
72
- sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev portaudio19-dev
68
+ sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev
73
69
 
74
- for any other Linux or Windows please see the webview docs for your [platform](https://github.com/webview/webview#prerequisites)
70
+ # for any other Linux or Windows please see the webview docs for your platform:
71
+ # https://github.com/webview/webview#prerequisites
75
72
 
76
73
  # get it
77
74
  git clone http://github.com/scarpe-team/scarpe