glimmer-dsl-libui 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +209 -4
- data/VERSION +1 -1
- data/examples/area_gallery.rb +36 -0
- data/examples/area_gallery2.rb +36 -0
- data/examples/area_gallery3.rb +36 -0
- data/examples/area_gallery4.rb +36 -0
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/control_proxy/area_proxy.rb +75 -26
- data/lib/glimmer/libui/control_proxy.rb +33 -1
- data/lib/glimmer-dsl-libui.rb +1 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ee3dcc2080c663175956845a975fb2bb0fb3a927f9b1b612f9d230d874fe8c86
         | 
| 4 | 
            +
              data.tar.gz: 754ca74f6124c056209da9c8131cf1f3b527d67cf9a3c62a318d0c9d75f3c2ca
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5d8f0591d1647409c2c0f5f443addabb06d668e7b3fcdfbceabb8d6cf545fd23ec8d1f87c42302a72375da1db72a2268a1c6e27deffbdd2d38399f0d038f011e
         | 
| 7 | 
            +
              data.tar.gz: 3494b576ed3d9945e7f4675739cb5a303dcaeb8360a78ea233ae1b11dd6a6d56fda6d90458be1422af3ce3e6a453643dd6e99ce872b7410bd2f07bacab832ca4
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,18 @@ | |
| 1 1 | 
             
            # Change Log
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 0.1.8
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - Support `area` listener: `on_mouse_event`
         | 
| 6 | 
            +
            - Support `area` listener: `on_mouse_down`
         | 
| 7 | 
            +
            - Support `area` listener: `on_mouse_up`
         | 
| 8 | 
            +
            - Support `area` listener: `on_mouse_drag_start`
         | 
| 9 | 
            +
            - Support `area` listener: `on_mouse_drag`
         | 
| 10 | 
            +
            - Support `area` listener: `on_mouse_drop`
         | 
| 11 | 
            +
            - Support `area` listener: `on_mouse_crossed`
         | 
| 12 | 
            +
            - Support `area` listener: `on_mouse_enter`
         | 
| 13 | 
            +
            - Support `area` listener: `on_mouse_exit`
         | 
| 14 | 
            +
            - Support `area` listener: `on_drag_broken`
         | 
| 15 | 
            +
             | 
| 3 16 | 
             
            ## 0.1.7
         | 
| 4 17 |  | 
| 5 18 | 
             
            - Support `stroke` `:dashes` and use in examples/area_gallery.rb
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for LibUI 0.1. | 
| 1 | 
            +
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for LibUI 0.1.8
         | 
| 2 2 | 
             
            ## Prerequisite-Free Ruby Desktop Development GUI Library
         | 
| 3 3 | 
             
            [](http://badge.fury.io/rb/glimmer-dsl-libui)
         | 
| 4 4 | 
             
            [](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-libui/maintainability)
         | 
| @@ -123,6 +123,42 @@ window('Area Gallery', 400, 400) { | |
| 123 123 | 
             
                  fill r: 202, g: 102, b: 204, a: 0.5
         | 
| 124 124 | 
             
                  stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 125 125 | 
             
                }
         | 
| 126 | 
            +
                
         | 
| 127 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 128 | 
            +
                  p area_mouse_event
         | 
| 129 | 
            +
                end
         | 
| 130 | 
            +
                
         | 
| 131 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 132 | 
            +
                  puts 'moved'
         | 
| 133 | 
            +
                end
         | 
| 134 | 
            +
                
         | 
| 135 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 136 | 
            +
                  puts 'mouse down'
         | 
| 137 | 
            +
                end
         | 
| 138 | 
            +
                
         | 
| 139 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 140 | 
            +
                  puts 'mouse up'
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
                
         | 
| 143 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 144 | 
            +
                  puts 'drag started'
         | 
| 145 | 
            +
                end
         | 
| 146 | 
            +
                
         | 
| 147 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 148 | 
            +
                  puts 'dragged'
         | 
| 149 | 
            +
                end
         | 
| 150 | 
            +
                
         | 
| 151 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 152 | 
            +
                  puts 'dropped'
         | 
| 153 | 
            +
                end
         | 
| 154 | 
            +
                
         | 
| 155 | 
            +
                on_mouse_entered do
         | 
| 156 | 
            +
                  puts 'entered'
         | 
| 157 | 
            +
                end
         | 
| 158 | 
            +
                
         | 
| 159 | 
            +
                on_mouse_exited do
         | 
| 160 | 
            +
                  puts 'exited'
         | 
| 161 | 
            +
                end
         | 
| 126 162 | 
             
              }
         | 
| 127 163 | 
             
            }.show
         | 
| 128 164 | 
             
            ```
         | 
| @@ -143,7 +179,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes | |
| 143 179 |  | 
| 144 180 | 
             
            ## Table of Contents
         | 
| 145 181 |  | 
| 146 | 
            -
            - [Glimmer DSL for LibUI 0.1. | 
| 182 | 
            +
            - [Glimmer DSL for LibUI 0.1.8](#-glimmer-dsl-for-libui-018)
         | 
| 147 183 | 
             
              - [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
         | 
| 148 184 | 
             
              - [Usage](#usage)
         | 
| 149 185 | 
             
              - [Girb (Glimmer IRB)](#girb-glimmer-irb)
         | 
| @@ -273,7 +309,7 @@ gem install glimmer-dsl-libui | |
| 273 309 | 
             
            Or install via Bundler `Gemfile`:
         | 
| 274 310 |  | 
| 275 311 | 
             
            ```ruby
         | 
| 276 | 
            -
            gem 'glimmer-dsl-libui', '~> 0.1. | 
| 312 | 
            +
            gem 'glimmer-dsl-libui', '~> 0.1.8'
         | 
| 277 313 | 
             
            ```
         | 
| 278 314 |  | 
| 279 315 | 
             
            Add `require 'glimmer-dsl-libui'` at the top, and then `include Glimmer` into the top-level main object for testing or into an actual class for serious usage.
         | 
| @@ -347,7 +383,7 @@ w.libui # => #<Fiddle::Pointer:0x00007fde53997980 ptr=0x00007fde51352a60 size=0 | |
| 347 383 | 
             
            Control(Args) | Properties | Listeners
         | 
| 348 384 | 
             
            ------------- | ---------- | ---------
         | 
| 349 385 | 
             
            `about_menu_item` | None | `on_clicked`
         | 
| 350 | 
            -
            `area` | None | `on_draw`
         | 
| 386 | 
            +
            `area` | None | `on_draw(area_draw_params)`, `on_mouse_event(area_mouse_event)`, `on_mouse_down(area_mouse_event)`, `on_mouse_up(area_mouse_event)`, `on_mouse_drag_started(area_mouse_event)`, `on_mouse_dragged(area_mouse_event)`, `on_mouse_dropped(area_mouse_event)`, `on_mouse_entered`, `on_mouse_exited`
         | 
| 351 387 | 
             
            `arc(x_center as Numeric, y_center as Numeric, radius as Numeric, start_angle as Numeric, sweep as Numeric, is_negative as Boolean)` | `x_center` (`Numeric`), `y_center` (`Numeric`), `radius` (`Numeric`), `start_angle` (`Numeric`), `sweep` (`Numeric`), `is_negative` (Boolean) | None
         | 
| 352 388 | 
             
            `bezier(c1_x as Numeric, c1_y as Numeric, c2_x as Numeric, c2_y as Numeric, end_x as Numeric, end_y as Numeric)` | `c1_x` (`Numeric`), `c1_y` (`Numeric`), `c2_x` (`Numeric`), `c2_y` (`Numeric`), `end_x` (`Numeric`), `end_y` (`Numeric`) | None
         | 
| 353 389 | 
             
            `button(text as String)` | `text` (`String`) | `on_clicked`
         | 
| @@ -608,6 +644,29 @@ The `area_draw_params` argument for `on_draw` block is a hash consisting of the | |
| 608 644 |  | 
| 609 645 | 
             
            In general, it is recommended to use declarative stable paths whenever feasible since they require less code and simpler maintenance. But, in more advanced cases, semi-declarative dynamic paths could be used instead, especially if there are thousands of dynamic paths that need maximum performance and low memory footprint.
         | 
| 610 646 |  | 
| 647 | 
            +
            `area` supported mouse listeners are:
         | 
| 648 | 
            +
            - `on_mouse_event {|area_mouse_event| ...}`: general catch-all mouse event (recommend use fine-grained event below instead)
         | 
| 649 | 
            +
            - `on_mouse_down {|area_mouse_event)`
         | 
| 650 | 
            +
            - `on_mouse_up {|area_mouse_event)`
         | 
| 651 | 
            +
            - `on_mouse_drag_started {|area_mouse_event)`
         | 
| 652 | 
            +
            - `on_mouse_dragged {|area_mouse_event)`
         | 
| 653 | 
            +
            - `on_mouse_dropped {|area_mouse_event)`
         | 
| 654 | 
            +
            - `on_mouse_entered {...}`
         | 
| 655 | 
            +
            - `on_mouse_exited {...}`
         | 
| 656 | 
            +
            - `on_mouse_crossed {|left| ...}` (NOT RECOMMENDED; it does what `on_mouse_entered` and `on_mouse_exited` do by returning a `left` argument indicating if mouse left `area`)
         | 
| 657 | 
            +
            - `on_drag_broken {...}` (NOT RECOMMENDED; varies per platforms; use `on_mouse_dropped` instead)
         | 
| 658 | 
            +
             | 
| 659 | 
            +
            The `area_mouse_event` argument for mouse events that receive it (e.g. `on_mouse_up`, `on_mouse_dragged`) consist of the following keys:
         | 
| 660 | 
            +
            - `:x`: mouse x location in relation to area's top-left-corner
         | 
| 661 | 
            +
            - `:y`: mouse y location in relation to area's top-left-corner
         | 
| 662 | 
            +
            - `:area_width`: area current width
         | 
| 663 | 
            +
            - `:area_height`: area current height
         | 
| 664 | 
            +
            - `:down`: mouse pressed button (e.g. `1` is left button, `3` is right button)
         | 
| 665 | 
            +
            - `:up`: mouse depressed button (e.g. `1` is left button, `3` is right button)
         | 
| 666 | 
            +
            - `:count`: count of mouse clicks (e.g. `2` for double-click, `1` for single-click)
         | 
| 667 | 
            +
            - `:modifers`: `Array` of `Symbol`s from one of the following: `[:command, :shift, :alt, :control]`
         | 
| 668 | 
            +
            - `:held`: mouse held button during dragging (e.g. `1` is left button, `4` is right button)
         | 
| 669 | 
            +
             | 
| 611 670 | 
             
            Note that when nesting an `area` directly underneath `window` (without a layout control like `vertical_box`), it is automatically reparented with `vertical_box` in between the `window` and `area` since it would not show up on Linux otherwise.
         | 
| 612 671 |  | 
| 613 672 | 
             
            To redraw an `area`, you may call the `#queue_redraw_all` method, or simply `#redraw`.
         | 
| @@ -746,6 +805,8 @@ The following examples include reimplementions of the examples in the [LibUI](ht | |
| 746 805 |  | 
| 747 806 | 
             
            To browse all examples, simply launch the [Meta-Example](examples/meta_example.rb), which lists all examples and displays each example's code when selected. It also enables code editing to facilitate experimentation and learning.
         | 
| 748 807 |  | 
| 808 | 
            +
            (note that for examples that emit output to terminal/command-line via `p` or `puts`, you must run them directly to see output)
         | 
| 809 | 
            +
             | 
| 749 810 | 
             
            [examples/meta_example.rb](examples/meta_example.rb)
         | 
| 750 811 |  | 
| 751 812 | 
             
            Run with this command from the root of the project if you cloned the project:
         | 
| @@ -3377,6 +3438,42 @@ window('Area Gallery', 400, 400) { | |
| 3377 3438 | 
             
                  fill r: 202, g: 102, b: 204, a: 0.5
         | 
| 3378 3439 | 
             
                  stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 3379 3440 | 
             
                }
         | 
| 3441 | 
            +
                
         | 
| 3442 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 3443 | 
            +
                  p area_mouse_event
         | 
| 3444 | 
            +
                end
         | 
| 3445 | 
            +
                
         | 
| 3446 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 3447 | 
            +
                  puts 'moved'
         | 
| 3448 | 
            +
                end
         | 
| 3449 | 
            +
                
         | 
| 3450 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 3451 | 
            +
                  puts 'mouse down'
         | 
| 3452 | 
            +
                end
         | 
| 3453 | 
            +
                
         | 
| 3454 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 3455 | 
            +
                  puts 'mouse up'
         | 
| 3456 | 
            +
                end
         | 
| 3457 | 
            +
                
         | 
| 3458 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 3459 | 
            +
                  puts 'drag started'
         | 
| 3460 | 
            +
                end
         | 
| 3461 | 
            +
                
         | 
| 3462 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 3463 | 
            +
                  puts 'dragged'
         | 
| 3464 | 
            +
                end
         | 
| 3465 | 
            +
                
         | 
| 3466 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 3467 | 
            +
                  puts 'dropped'
         | 
| 3468 | 
            +
                end
         | 
| 3469 | 
            +
                
         | 
| 3470 | 
            +
                on_mouse_entered do
         | 
| 3471 | 
            +
                  puts 'entered'
         | 
| 3472 | 
            +
                end
         | 
| 3473 | 
            +
                
         | 
| 3474 | 
            +
                on_mouse_exited do
         | 
| 3475 | 
            +
                  puts 'exited'
         | 
| 3476 | 
            +
                end
         | 
| 3380 3477 | 
             
              }
         | 
| 3381 3478 | 
             
            }.show
         | 
| 3382 3479 | 
             
            ```
         | 
| @@ -3493,6 +3590,42 @@ window('Area Gallery', 400, 400) { | |
| 3493 3590 | 
             
                  fill r: 202, g: 102, b: 204, a: 0.5
         | 
| 3494 3591 | 
             
                  stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 3495 3592 | 
             
                }
         | 
| 3593 | 
            +
                
         | 
| 3594 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 3595 | 
            +
                  p area_mouse_event
         | 
| 3596 | 
            +
                end
         | 
| 3597 | 
            +
                
         | 
| 3598 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 3599 | 
            +
                  puts 'moved'
         | 
| 3600 | 
            +
                end
         | 
| 3601 | 
            +
                
         | 
| 3602 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 3603 | 
            +
                  puts 'mouse down'
         | 
| 3604 | 
            +
                end
         | 
| 3605 | 
            +
                
         | 
| 3606 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 3607 | 
            +
                  puts 'mouse up'
         | 
| 3608 | 
            +
                end
         | 
| 3609 | 
            +
                
         | 
| 3610 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 3611 | 
            +
                  puts 'drag started'
         | 
| 3612 | 
            +
                end
         | 
| 3613 | 
            +
                
         | 
| 3614 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 3615 | 
            +
                  puts 'dragged'
         | 
| 3616 | 
            +
                end
         | 
| 3617 | 
            +
                
         | 
| 3618 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 3619 | 
            +
                  puts 'dropped'
         | 
| 3620 | 
            +
                end
         | 
| 3621 | 
            +
                
         | 
| 3622 | 
            +
                on_mouse_entered do
         | 
| 3623 | 
            +
                  puts 'entered'
         | 
| 3624 | 
            +
                end
         | 
| 3625 | 
            +
                
         | 
| 3626 | 
            +
                on_mouse_exited do
         | 
| 3627 | 
            +
                  puts 'exited'
         | 
| 3628 | 
            +
                end
         | 
| 3496 3629 | 
             
              }
         | 
| 3497 3630 | 
             
            }.show
         | 
| 3498 3631 | 
             
            ```
         | 
| @@ -3550,6 +3683,42 @@ window('Area Gallery', 400, 400) { | |
| 3550 3683 | 
             
                    stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 3551 3684 | 
             
                  }
         | 
| 3552 3685 | 
             
                end
         | 
| 3686 | 
            +
                    
         | 
| 3687 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 3688 | 
            +
                  p area_mouse_event
         | 
| 3689 | 
            +
                end
         | 
| 3690 | 
            +
                
         | 
| 3691 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 3692 | 
            +
                  puts 'moved'
         | 
| 3693 | 
            +
                end
         | 
| 3694 | 
            +
                
         | 
| 3695 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 3696 | 
            +
                  puts 'mouse down'
         | 
| 3697 | 
            +
                end
         | 
| 3698 | 
            +
                
         | 
| 3699 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 3700 | 
            +
                  puts 'mouse up'
         | 
| 3701 | 
            +
                end
         | 
| 3702 | 
            +
                
         | 
| 3703 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 3704 | 
            +
                  puts 'drag started'
         | 
| 3705 | 
            +
                end
         | 
| 3706 | 
            +
                
         | 
| 3707 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 3708 | 
            +
                  puts 'dragged'
         | 
| 3709 | 
            +
                end
         | 
| 3710 | 
            +
                
         | 
| 3711 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 3712 | 
            +
                  puts 'dropped'
         | 
| 3713 | 
            +
                end
         | 
| 3714 | 
            +
                
         | 
| 3715 | 
            +
                on_mouse_entered do
         | 
| 3716 | 
            +
                  puts 'entered'
         | 
| 3717 | 
            +
                end
         | 
| 3718 | 
            +
                
         | 
| 3719 | 
            +
                on_mouse_exited do
         | 
| 3720 | 
            +
                  puts 'exited'
         | 
| 3721 | 
            +
                end
         | 
| 3553 3722 | 
             
              }
         | 
| 3554 3723 | 
             
            }.show
         | 
| 3555 3724 | 
             
            ```
         | 
| @@ -3668,6 +3837,42 @@ window('Area Gallery', 400, 400) { | |
| 3668 3837 | 
             
                    stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 3669 3838 | 
             
                  }
         | 
| 3670 3839 | 
             
                end
         | 
| 3840 | 
            +
                    
         | 
| 3841 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 3842 | 
            +
                  p area_mouse_event
         | 
| 3843 | 
            +
                end
         | 
| 3844 | 
            +
                
         | 
| 3845 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 3846 | 
            +
                  puts 'moved'
         | 
| 3847 | 
            +
                end
         | 
| 3848 | 
            +
                
         | 
| 3849 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 3850 | 
            +
                  puts 'mouse down'
         | 
| 3851 | 
            +
                end
         | 
| 3852 | 
            +
                
         | 
| 3853 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 3854 | 
            +
                  puts 'mouse up'
         | 
| 3855 | 
            +
                end
         | 
| 3856 | 
            +
                
         | 
| 3857 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 3858 | 
            +
                  puts 'drag started'
         | 
| 3859 | 
            +
                end
         | 
| 3860 | 
            +
                
         | 
| 3861 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 3862 | 
            +
                  puts 'dragged'
         | 
| 3863 | 
            +
                end
         | 
| 3864 | 
            +
                
         | 
| 3865 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 3866 | 
            +
                  puts 'dropped'
         | 
| 3867 | 
            +
                end
         | 
| 3868 | 
            +
                
         | 
| 3869 | 
            +
                on_mouse_entered do
         | 
| 3870 | 
            +
                  puts 'entered'
         | 
| 3871 | 
            +
                end
         | 
| 3872 | 
            +
                
         | 
| 3873 | 
            +
                on_mouse_exited do
         | 
| 3874 | 
            +
                  puts 'exited'
         | 
| 3875 | 
            +
                end
         | 
| 3671 3876 | 
             
              }
         | 
| 3672 3877 | 
             
            }.show
         | 
| 3673 3878 | 
             
            ```
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.1. | 
| 1 | 
            +
            0.1.8
         | 
    
        data/examples/area_gallery.rb
    CHANGED
    
    | @@ -46,5 +46,41 @@ window('Area Gallery', 400, 400) { | |
| 46 46 | 
             
                  fill r: 202, g: 102, b: 204, a: 0.5
         | 
| 47 47 | 
             
                  stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 48 48 | 
             
                }
         | 
| 49 | 
            +
                
         | 
| 50 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 51 | 
            +
                  p area_mouse_event
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
                
         | 
| 54 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 55 | 
            +
                  puts 'moved'
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
                
         | 
| 58 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 59 | 
            +
                  puts 'mouse down'
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
                
         | 
| 62 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 63 | 
            +
                  puts 'mouse up'
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
                
         | 
| 66 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 67 | 
            +
                  puts 'drag started'
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
                
         | 
| 70 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 71 | 
            +
                  puts 'dragged'
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
                
         | 
| 74 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 75 | 
            +
                  puts 'dropped'
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
                
         | 
| 78 | 
            +
                on_mouse_entered do
         | 
| 79 | 
            +
                  puts 'entered'
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
                
         | 
| 82 | 
            +
                on_mouse_exited do
         | 
| 83 | 
            +
                  puts 'exited'
         | 
| 84 | 
            +
                end
         | 
| 49 85 | 
             
              }
         | 
| 50 86 | 
             
            }.show
         | 
    
        data/examples/area_gallery2.rb
    CHANGED
    
    | @@ -107,5 +107,41 @@ window('Area Gallery', 400, 400) { | |
| 107 107 | 
             
                  fill r: 202, g: 102, b: 204, a: 0.5
         | 
| 108 108 | 
             
                  stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 109 109 | 
             
                }
         | 
| 110 | 
            +
                
         | 
| 111 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 112 | 
            +
                  p area_mouse_event
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
                
         | 
| 115 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 116 | 
            +
                  puts 'moved'
         | 
| 117 | 
            +
                end
         | 
| 118 | 
            +
                
         | 
| 119 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 120 | 
            +
                  puts 'mouse down'
         | 
| 121 | 
            +
                end
         | 
| 122 | 
            +
                
         | 
| 123 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 124 | 
            +
                  puts 'mouse up'
         | 
| 125 | 
            +
                end
         | 
| 126 | 
            +
                
         | 
| 127 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 128 | 
            +
                  puts 'drag started'
         | 
| 129 | 
            +
                end
         | 
| 130 | 
            +
                
         | 
| 131 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 132 | 
            +
                  puts 'dragged'
         | 
| 133 | 
            +
                end
         | 
| 134 | 
            +
                
         | 
| 135 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 136 | 
            +
                  puts 'dropped'
         | 
| 137 | 
            +
                end
         | 
| 138 | 
            +
                
         | 
| 139 | 
            +
                on_mouse_entered do
         | 
| 140 | 
            +
                  puts 'entered'
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
                
         | 
| 143 | 
            +
                on_mouse_exited do
         | 
| 144 | 
            +
                  puts 'exited'
         | 
| 145 | 
            +
                end
         | 
| 110 146 | 
             
              }
         | 
| 111 147 | 
             
            }.show
         | 
    
        data/examples/area_gallery3.rb
    CHANGED
    
    | @@ -48,5 +48,41 @@ window('Area Gallery', 400, 400) { | |
| 48 48 | 
             
                    stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 49 49 | 
             
                  }
         | 
| 50 50 | 
             
                end
         | 
| 51 | 
            +
                
         | 
| 52 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 53 | 
            +
                  p area_mouse_event
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
                
         | 
| 56 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 57 | 
            +
                  puts 'moved'
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
                
         | 
| 60 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 61 | 
            +
                  puts 'mouse down'
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
                
         | 
| 64 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 65 | 
            +
                  puts 'mouse up'
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
                
         | 
| 68 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 69 | 
            +
                  puts 'drag started'
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
                
         | 
| 72 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 73 | 
            +
                  puts 'dragged'
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
                
         | 
| 76 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 77 | 
            +
                  puts 'dropped'
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
                
         | 
| 80 | 
            +
                on_mouse_entered do
         | 
| 81 | 
            +
                  puts 'entered'
         | 
| 82 | 
            +
                end
         | 
| 83 | 
            +
                
         | 
| 84 | 
            +
                on_mouse_exited do
         | 
| 85 | 
            +
                  puts 'exited'
         | 
| 86 | 
            +
                end
         | 
| 51 87 | 
             
              }
         | 
| 52 88 | 
             
            }.show
         | 
    
        data/examples/area_gallery4.rb
    CHANGED
    
    | @@ -109,5 +109,41 @@ window('Area Gallery', 400, 400) { | |
| 109 109 | 
             
                    stroke r: 0, g: 0, b: 0, thickness: 2
         | 
| 110 110 | 
             
                  }
         | 
| 111 111 | 
             
                end
         | 
| 112 | 
            +
                
         | 
| 113 | 
            +
                on_mouse_event do |area_mouse_event|
         | 
| 114 | 
            +
                  p area_mouse_event
         | 
| 115 | 
            +
                end
         | 
| 116 | 
            +
                
         | 
| 117 | 
            +
                on_mouse_moved do |area_mouse_event|
         | 
| 118 | 
            +
                  puts 'moved'
         | 
| 119 | 
            +
                end
         | 
| 120 | 
            +
                
         | 
| 121 | 
            +
                on_mouse_down do |area_mouse_event|
         | 
| 122 | 
            +
                  puts 'mouse down'
         | 
| 123 | 
            +
                end
         | 
| 124 | 
            +
                
         | 
| 125 | 
            +
                on_mouse_up do |area_mouse_event|
         | 
| 126 | 
            +
                  puts 'mouse up'
         | 
| 127 | 
            +
                end
         | 
| 128 | 
            +
                
         | 
| 129 | 
            +
                on_mouse_drag_started do |area_mouse_event|
         | 
| 130 | 
            +
                  puts 'drag started'
         | 
| 131 | 
            +
                end
         | 
| 132 | 
            +
                
         | 
| 133 | 
            +
                on_mouse_dragged do |area_mouse_event|
         | 
| 134 | 
            +
                  puts 'dragged'
         | 
| 135 | 
            +
                end
         | 
| 136 | 
            +
                
         | 
| 137 | 
            +
                on_mouse_dropped do |area_mouse_event|
         | 
| 138 | 
            +
                  puts 'dropped'
         | 
| 139 | 
            +
                end
         | 
| 140 | 
            +
                
         | 
| 141 | 
            +
                on_mouse_entered do
         | 
| 142 | 
            +
                  puts 'entered'
         | 
| 143 | 
            +
                end
         | 
| 144 | 
            +
                
         | 
| 145 | 
            +
                on_mouse_exited do
         | 
| 146 | 
            +
                  puts 'exited'
         | 
| 147 | 
            +
                end
         | 
| 112 148 | 
             
              }
         | 
| 113 149 | 
             
            }.show
         | 
    
        data/glimmer-dsl-libui.gemspec
    CHANGED
    
    | Binary file | 
| @@ -36,6 +36,19 @@ module Glimmer | |
| 36 36 | 
             
                      attr_accessor :current_area_draw_params
         | 
| 37 37 | 
             
                    end
         | 
| 38 38 |  | 
| 39 | 
            +
                    LISTENERS = ['on_draw', 'on_mouse_event', 'on_mouse_move', 'on_mouse_down', 'on_mouse_up', 'on_mouse_drag_start', 'on_mouse_drag', 'on_mouse_drop', 'on_mouse_crossed', 'on_mouse_enter', 'on_mouse_exit', 'on_drag_broken']
         | 
| 40 | 
            +
                    LISTENER_ALIASES = {
         | 
| 41 | 
            +
                      on_drawn: 'on_draw',
         | 
| 42 | 
            +
                      on_mouse_moved: 'on_mouse_move',
         | 
| 43 | 
            +
                      on_mouse_drag_started: 'on_mouse_drag_start',
         | 
| 44 | 
            +
                      on_mouse_dragged: 'on_mouse_drag',
         | 
| 45 | 
            +
                      on_mouse_dropped: 'on_mouse_drop',
         | 
| 46 | 
            +
                      on_mouse_cross: 'on_mouse_crossed',
         | 
| 47 | 
            +
                      on_mouse_entered: 'on_mouse_enter',
         | 
| 48 | 
            +
                      on_mouse_exited: 'on_mouse_exit',
         | 
| 49 | 
            +
                      on_drag_break: 'on_drag_broken',
         | 
| 50 | 
            +
                    }
         | 
| 51 | 
            +
                    
         | 
| 39 52 | 
             
                    include Glimmer::FiddleConsumer
         | 
| 40 53 | 
             
                    include Parent
         | 
| 41 54 | 
             
                    prepend Transformable
         | 
| @@ -47,29 +60,6 @@ module Glimmer | |
| 47 60 | 
             
                      install_listeners
         | 
| 48 61 | 
             
                    end
         | 
| 49 62 |  | 
| 50 | 
            -
                    def on_draw(&block)
         | 
| 51 | 
            -
                      @on_draw_procs ||= []
         | 
| 52 | 
            -
                      if block.nil?
         | 
| 53 | 
            -
                        @on_draw_procs
         | 
| 54 | 
            -
                      else
         | 
| 55 | 
            -
                        @on_draw_procs << block
         | 
| 56 | 
            -
                        block
         | 
| 57 | 
            -
                      end
         | 
| 58 | 
            -
                    end
         | 
| 59 | 
            -
                    
         | 
| 60 | 
            -
                    def can_handle_listener?(listener_name)
         | 
| 61 | 
            -
                      listener_name == 'on_draw' || super
         | 
| 62 | 
            -
                    end
         | 
| 63 | 
            -
                    
         | 
| 64 | 
            -
                    def handle_listener(listener_name, &listener)
         | 
| 65 | 
            -
                      case listener_name
         | 
| 66 | 
            -
                      when 'on_draw'
         | 
| 67 | 
            -
                        on_draw(&listener)
         | 
| 68 | 
            -
                      else
         | 
| 69 | 
            -
                        super
         | 
| 70 | 
            -
                      end
         | 
| 71 | 
            -
                    end
         | 
| 72 | 
            -
                    
         | 
| 73 63 | 
             
                    def draw(area_draw_params)
         | 
| 74 64 | 
             
                      children.dup.each {|child| child.draw(area_draw_params)}
         | 
| 75 65 | 
             
                      on_draw.each {|listener| listener.call(area_draw_params)}
         | 
| @@ -94,9 +84,32 @@ module Glimmer | |
| 94 84 | 
             
                        draw(area_draw_params)
         | 
| 95 85 | 
             
                        AreaProxy.current_area_draw_params = nil
         | 
| 96 86 | 
             
                      end
         | 
| 97 | 
            -
                      @area_handler.MouseEvent   = fiddle_closure_block_caller(0, [ | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 87 | 
            +
                      @area_handler.MouseEvent   = fiddle_closure_block_caller(0, [1, 1, 1]) do |_, _, area_mouse_event|
         | 
| 88 | 
            +
                        area_mouse_event = ::LibUI::FFI::AreaMouseEvent.new(area_mouse_event)
         | 
| 89 | 
            +
                        area_mouse_event = area_mouse_event_hash(area_mouse_event)
         | 
| 90 | 
            +
                        on_mouse_event.each { |listener| listener.call(area_mouse_event)}
         | 
| 91 | 
            +
                        on_mouse_move.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:x].between?(0, area_mouse_event[:area_width]) && area_mouse_event[:y].between?(0, area_mouse_event[:area_height])
         | 
| 92 | 
            +
                        unless @last_area_mouse_event.nil?
         | 
| 93 | 
            +
                          on_mouse_down.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:down] > 0 && @last_area_mouse_event[:down] == 0
         | 
| 94 | 
            +
                          on_mouse_up.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:up] > 0 && @last_area_mouse_event[:up] == 0
         | 
| 95 | 
            +
                          on_mouse_drag_start.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:held] > 0 && @last_area_mouse_event[:held] == 0
         | 
| 96 | 
            +
                          on_mouse_drag.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:held] > 0
         | 
| 97 | 
            +
                          on_mouse_drop.each { |listener| listener.call(area_mouse_event)} if area_mouse_event[:held] == 0 && @last_area_mouse_event[:held] > 0
         | 
| 98 | 
            +
                        end
         | 
| 99 | 
            +
                        @last_area_mouse_event = area_mouse_event
         | 
| 100 | 
            +
                      end
         | 
| 101 | 
            +
                      @area_handler.MouseCrossed = fiddle_closure_block_caller(0, [1, 1, 4]) do |_, _, left|
         | 
| 102 | 
            +
                        left = Glimmer::LibUI.integer_to_boolean(left)
         | 
| 103 | 
            +
                        on_mouse_crossed.each { |listener| listener.call(left) }
         | 
| 104 | 
            +
                        if left
         | 
| 105 | 
            +
                          on_mouse_exit.each { |listener| listener.call(left) }
         | 
| 106 | 
            +
                        else
         | 
| 107 | 
            +
                          on_mouse_enter.each { |listener| listener.call(left) }
         | 
| 108 | 
            +
                        end
         | 
| 109 | 
            +
                      end
         | 
| 110 | 
            +
                      @area_handler.DragBroken   = fiddle_closure_block_caller(0, [1, 1]) do |_, _|
         | 
| 111 | 
            +
                        on_drag_broken.each { |listener| listener.call }
         | 
| 112 | 
            +
                      end
         | 
| 100 113 | 
             
                      @area_handler.KeyEvent     = fiddle_closure_block_caller(0, [0]) {}
         | 
| 101 114 | 
             
                    end
         | 
| 102 115 |  | 
| @@ -111,6 +124,42 @@ module Glimmer | |
| 111 124 | 
             
                        clip_height: area_draw_params.ClipHeight,
         | 
| 112 125 | 
             
                      }
         | 
| 113 126 | 
             
                    end
         | 
| 127 | 
            +
                    
         | 
| 128 | 
            +
                    def area_mouse_event_hash(area_mouse_event)
         | 
| 129 | 
            +
                      {
         | 
| 130 | 
            +
                        x: area_mouse_event.X,
         | 
| 131 | 
            +
                        y: area_mouse_event.Y,
         | 
| 132 | 
            +
                        area_width: area_mouse_event.AreaWidth,
         | 
| 133 | 
            +
                        area_height: area_mouse_event.AreaHeight,
         | 
| 134 | 
            +
                        down: area_mouse_event.Down,
         | 
| 135 | 
            +
                        up: area_mouse_event.Up,
         | 
| 136 | 
            +
                        count: area_mouse_event.Count,
         | 
| 137 | 
            +
                        modifers: modifiers_to_symbols(area_mouse_event.Modifiers),
         | 
| 138 | 
            +
                        held: area_mouse_event.Held1To64,
         | 
| 139 | 
            +
                      }
         | 
| 140 | 
            +
                    end
         | 
| 141 | 
            +
                    
         | 
| 142 | 
            +
                    def modifiers_to_symbols(modifiers_value)
         | 
| 143 | 
            +
                      symbols = []
         | 
| 144 | 
            +
                      modifiers_value = extract_symbol_from_modifiers_value(modifiers_value, symbols: symbols) while modifiers_value > 0
         | 
| 145 | 
            +
                      symbols
         | 
| 146 | 
            +
                    end
         | 
| 147 | 
            +
                    
         | 
| 148 | 
            +
                    def extract_symbol_from_modifiers_value(modifiers_value, symbols: )
         | 
| 149 | 
            +
                      if modifiers_value >= 8
         | 
| 150 | 
            +
                        symbols << :command
         | 
| 151 | 
            +
                        modifiers_value -= 8
         | 
| 152 | 
            +
                      elsif modifiers_value >= 4
         | 
| 153 | 
            +
                        symbols << :shift
         | 
| 154 | 
            +
                        modifiers_value -= 4
         | 
| 155 | 
            +
                      elsif modifiers_value >= 2
         | 
| 156 | 
            +
                        symbols << :alt
         | 
| 157 | 
            +
                        modifiers_value -= 2
         | 
| 158 | 
            +
                      elsif modifiers_value >= 1
         | 
| 159 | 
            +
                        symbols << :control
         | 
| 160 | 
            +
                        modifiers_value -= 1
         | 
| 161 | 
            +
                      end
         | 
| 162 | 
            +
                    end
         | 
| 114 163 | 
             
                  end
         | 
| 115 164 | 
             
                end
         | 
| 116 165 | 
             
              end
         | 
| @@ -141,7 +141,8 @@ module Glimmer | |
| 141 141 |  | 
| 142 142 | 
             
                  def can_handle_listener?(listener_name)
         | 
| 143 143 | 
             
                    ::LibUI.respond_to?("#{libui_api_keyword}_#{listener_name}") ||
         | 
| 144 | 
            -
                      ::LibUI.respond_to?("control_#{listener_name}")
         | 
| 144 | 
            +
                      ::LibUI.respond_to?("control_#{listener_name}") ||
         | 
| 145 | 
            +
                      has_custom_listener?(listener_name)
         | 
| 145 146 | 
             
                  end
         | 
| 146 147 |  | 
| 147 148 | 
             
                  def handle_listener(listener_name, &listener)
         | 
| @@ -150,6 +151,34 @@ module Glimmer | |
| 150 151 | 
             
                      ::LibUI.send("#{libui_api_keyword}_#{listener_name}", @libui, &safe_listener)
         | 
| 151 152 | 
             
                    elsif ::LibUI.respond_to?("control_#{listener_name}")
         | 
| 152 153 | 
             
                      ::LibUI.send("control_#{listener_name}", @libui, &safe_listener)
         | 
| 154 | 
            +
                    elsif has_custom_listener?(listener_name)
         | 
| 155 | 
            +
                      handle_custom_listener(listener_name, &listener)
         | 
| 156 | 
            +
                    end
         | 
| 157 | 
            +
                  end
         | 
| 158 | 
            +
                  
         | 
| 159 | 
            +
                  def has_custom_listener?(listener_name)
         | 
| 160 | 
            +
                    listener_name = listener_name.to_s
         | 
| 161 | 
            +
                    custom_listeners.include?(listener_name) || custom_listener_aliases.stringify_keys.keys.include?(listener_name)
         | 
| 162 | 
            +
                  end
         | 
| 163 | 
            +
                  
         | 
| 164 | 
            +
                  def custom_listeners
         | 
| 165 | 
            +
                    self.class.constants.include?(:LISTENERS) ? self.class::LISTENERS : []
         | 
| 166 | 
            +
                  end
         | 
| 167 | 
            +
                  
         | 
| 168 | 
            +
                  def custom_listener_aliases
         | 
| 169 | 
            +
                    self.class.constants.include?(:LISTENER_ALIASES) ? self.class::LISTENER_ALIASES : {}
         | 
| 170 | 
            +
                  end
         | 
| 171 | 
            +
                  
         | 
| 172 | 
            +
                  def handle_custom_listener(listener_name, &listener)
         | 
| 173 | 
            +
                    listener_name = listener_name.to_s
         | 
| 174 | 
            +
                    listener_name = custom_listener_aliases.stringify_keys[listener_name] || listener_name
         | 
| 175 | 
            +
                    instance_variable_name = "@#{listener_name}_procs"
         | 
| 176 | 
            +
                    instance_variable_set(instance_variable_name, []) if instance_variable_get(instance_variable_name).nil?
         | 
| 177 | 
            +
                    if listener.nil?
         | 
| 178 | 
            +
                      instance_variable_get(instance_variable_name)
         | 
| 179 | 
            +
                    else
         | 
| 180 | 
            +
                      instance_variable_get(instance_variable_name) << listener
         | 
| 181 | 
            +
                      listener
         | 
| 153 182 | 
             
                    end
         | 
| 154 183 | 
             
                  end
         | 
| 155 184 |  | 
| @@ -160,6 +189,7 @@ module Glimmer | |
| 160 189 | 
             
                        (append_properties.include?(method_name.to_s.sub(/\?$/, '')) && BOOLEAN_PROPERTIES.include?(method_name.to_s.sub(/\?$/, ''))) ||
         | 
| 161 190 | 
             
                        append_properties.include?(method_name.to_s.sub(/=$/, ''))
         | 
| 162 191 | 
             
                      ) ||
         | 
| 192 | 
            +
                      can_handle_listener?(method_name.to_s) ||
         | 
| 163 193 | 
             
                      super(method_name, true)
         | 
| 164 194 | 
             
                  end
         | 
| 165 195 |  | 
| @@ -178,6 +208,8 @@ module Glimmer | |
| 178 208 | 
             
                    elsif append_properties.include?(method_name.to_s) ||
         | 
| 179 209 | 
             
                        append_properties.include?(method_name.to_s.sub(/(=|\?)$/, ''))
         | 
| 180 210 | 
             
                      append_property(method_name, *args)
         | 
| 211 | 
            +
                    elsif can_handle_listener?(method_name.to_s)
         | 
| 212 | 
            +
                      handle_listener(method_name.to_s, &block)
         | 
| 181 213 | 
             
                    else
         | 
| 182 214 | 
             
                      super
         | 
| 183 215 | 
             
                    end
         | 
    
        data/lib/glimmer-dsl-libui.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: glimmer-dsl-libui
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Andy Maleh
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-10- | 
| 11 | 
            +
            date: 2021-10-02 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: glimmer
         |