glimmer-dsl-libui 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +53 -13
- data/VERSION +1 -1
- data/examples/grid.rb +38 -2
- data/glimmer-dsl-libui.gemspec +0 -0
- data/lib/glimmer/libui/control_proxy/area_proxy.rb +3 -5
- data/lib/glimmer/libui/control_proxy/grid_proxy.rb +12 -1
- data/lib/glimmer/libui/control_proxy/path_proxy.rb +3 -30
- data/lib/glimmer/libui.rb +17 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 748bd2b706f088ec5e69da3567dac4b59085b374507f9e3dd5e4a2b0432895a0
|
4
|
+
data.tar.gz: 8ff551d013d3d7524698c3ceaf7c5176e190e5ff6ca3bb8189de56a90fc2b3a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2cff96b2dfe600c675feb491e9f396fb436b67430fa72dafd2ae88b69f06027a5cef250d18aa9872ed4329782e6ce7da14d78506e9786b8fc62426c9f985455
|
7
|
+
data.tar.gz: c6b565cf1aba0f603c1233a8411a4ad25f78821f832f0576cf97cad7ebf9b06a0b8f1b3d83200a79da5d998fa5849d10e47b2e9257069dc0fdfe6a1cfdb6b57f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.1.10
|
4
|
+
|
5
|
+
- Upgrade to glimmer 2.2.1
|
6
|
+
- Add a 3rd tab to examples/grid.rb showcasing the halign and valign properties
|
7
|
+
- Support `grid` `halign`/`valign` symbol values of `:fill` (default), `:start`, `:center`, `:end`
|
8
|
+
- Add `key_value` to `area_key_event` `Hash`
|
9
|
+
- Add `ext_key_value` to `area_key_event` `Hash`
|
10
|
+
|
3
11
|
## 0.1.9
|
4
12
|
|
5
13
|
- Support `area` listener: `on_key_event`
|
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.10
|
2
2
|
## Prerequisite-Free Ruby Desktop Development GUI Library
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-libui.svg)](http://badge.fury.io/rb/glimmer-dsl-libui)
|
4
4
|
[![Maintainability](https://api.codeclimate.com/v1/badges/ce2853efdbecf6ebdc73/maintainability)](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-libui/maintainability)
|
@@ -191,7 +191,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
|
|
191
191
|
|
192
192
|
## Table of Contents
|
193
193
|
|
194
|
-
- [Glimmer DSL for LibUI 0.1.
|
194
|
+
- [Glimmer DSL for LibUI 0.1.10](#-glimmer-dsl-for-libui-0110)
|
195
195
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
196
196
|
- [Usage](#usage)
|
197
197
|
- [Girb (Glimmer IRB)](#girb-glimmer-irb)
|
@@ -321,7 +321,7 @@ gem install glimmer-dsl-libui
|
|
321
321
|
Or install via Bundler `Gemfile`:
|
322
322
|
|
323
323
|
```ruby
|
324
|
-
gem 'glimmer-dsl-libui', '~> 0.1.
|
324
|
+
gem 'glimmer-dsl-libui', '~> 0.1.10'
|
325
325
|
```
|
326
326
|
|
327
327
|
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.
|
@@ -460,9 +460,9 @@ Control(Args) | Properties | Listeners
|
|
460
460
|
- `xspan` [dsl-only] (`Integer`) [default=`1`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
461
461
|
- `yspan` [dsl-only] (`Integer`) [default=`1`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
462
462
|
- `hexpand` [dsl-only] (Boolean) [default=`false`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
463
|
-
- `halign` [dsl-only] (`
|
463
|
+
- `halign` [dsl-only] (`:fill`, `:start`, `:center`, or `:end`) [default=`:fill`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
464
464
|
- `vexpand` [dsl-only] (Boolean) [default=`false`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
465
|
-
- `valign` [dsl-only] (`
|
465
|
+
- `valign` [dsl-only] (`:fill`, `:start`, `:center`, or `:end`) [default=`:fill`]: available in [Glimmer GUI DSL](#glimmer-gui-dsl-concepts) when nested under `grid`
|
466
466
|
|
467
467
|
### Common Control Operations
|
468
468
|
- `destroy`
|
@@ -684,7 +684,9 @@ The `area_mouse_event` `Hash` argument for mouse events that receive it (e.g. `o
|
|
684
684
|
|
685
685
|
The `area_key_event` `Hash` argument for keyboard events that receive it (e.g. `on_key_up`, `on_key_down`) consist of the following hash keys:
|
686
686
|
- `:key`: key character (`String`)
|
687
|
-
- `:
|
687
|
+
- `:key_value`: key value (`Integer`). Useful in rare cases for numeric processing of keys instead of dealing with as `:key` character `String`
|
688
|
+
- `:ext_key`: non-character extra key (`Symbol`) from `Glimmer::LibUI.enum_symbols(:ext_key)` such as `:left`, `:right`, `:escape`, `:insert`
|
689
|
+
- `:ext_key_value`: non-character extra key value (`Integer`). Useful in rare cases for numeric processing of extra keys instead of dealing with as `:ext_key` `Symbol`
|
688
690
|
- `:modifier`: modifier key pressed alone (e.g. `:shift` or `:control`)
|
689
691
|
- `:modifiers`: modifier keys pressed simultaneously with `:key`, `:ext_key`, or `:modifier`
|
690
692
|
- `:up`: indicates if key has been released or not (Boolean)
|
@@ -786,7 +788,7 @@ Check [Histogram](#histogram) example for use of hex colors.
|
|
786
788
|
- When destroying a control nested under a `form`, it is automatically deleted from the form's children
|
787
789
|
- When destroying a control nested under a `window` or `group`, it is automatically unset as their child to allow successful destruction
|
788
790
|
- For `date_time_picker`, `date_picker`, and `time_picker`, make sure `time` hash values for `mon`, `wday`, and `yday` are 1-based instead of [libui](https://github.com/andlabs/libui) original 0-based values, and return `dst` as Boolean instead of `isdst` as `1`/`0`
|
789
|
-
- Smart defaults for `grid` child attributes are `left` (`0`), `top` (`0`), `xspan` (`1`), `yspan` (`1`), `hexpand` (`false`), `halign` (`
|
791
|
+
- Smart defaults for `grid` child attributes are `left` (`0`), `top` (`0`), `xspan` (`1`), `yspan` (`1`), `hexpand` (`false`), `halign` (`:fill`), `vexpand` (`false`), and `valign` (`:fill`)
|
790
792
|
- The `table` control automatically constructs required `TableModelHandler`, `TableModel`, and `TableParams`, calculating all their arguments from `cell_rows` and `editable` properties (e.g. `NumRows`) as well as nested columns (e.g. `text_column`)
|
791
793
|
- Table model instances are automatically freed from memory after `window` is destroyed.
|
792
794
|
- Table `cell_rows` data has implicit data-binding to table cell values for deletion, insertion, and change (done by diffing `cell_rows` value before and after change and auto-informing `table` of deletions [`LibUI.table_model_row_deleted`], insertions [`LibUI.table_model_row_deleted`], and changes [`LibUI.table_model_row_changed`]). When deleting data rows from `cell_rows` array, then actual rows from the `table` are automatically deleted. When inserting data rows into `cell_rows` array, then actual `table` rows are automatically inserted. When updating data rows in `cell_rows` array, then actual `table` rows are automatically updated.
|
@@ -2097,13 +2099,15 @@ ruby -r glimmer-dsl-libui -e "require 'examples/grid'"
|
|
2097
2099
|
|
2098
2100
|
Mac
|
2099
2101
|
|
2100
|
-
![glimmer-dsl-libui-mac-grid-
|
2101
|
-
![glimmer-dsl-libui-mac-grid-
|
2102
|
+
![glimmer-dsl-libui-mac-grid-span.png](images/glimmer-dsl-libui-mac-grid-span.png)
|
2103
|
+
![glimmer-dsl-libui-mac-grid-expand.png](images/glimmer-dsl-libui-mac-grid-expand.png)
|
2104
|
+
![glimmer-dsl-libui-mac-grid-align.png](images/glimmer-dsl-libui-mac-grid-align.png)
|
2102
2105
|
|
2103
2106
|
Linux
|
2104
2107
|
|
2105
|
-
![glimmer-dsl-libui-linux-grid-
|
2106
|
-
![glimmer-dsl-libui-linux-grid-
|
2108
|
+
![glimmer-dsl-libui-linux-grid-span.png](images/glimmer-dsl-libui-linux-grid-span.png)
|
2109
|
+
![glimmer-dsl-libui-linux-grid-expand.png](images/glimmer-dsl-libui-linux-grid-expand.png)
|
2110
|
+
![glimmer-dsl-libui-linux-grid-align.png](images/glimmer-dsl-libui-linux-grid-align.png)
|
2107
2111
|
|
2108
2112
|
New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
|
2109
2113
|
|
@@ -2114,7 +2118,7 @@ include Glimmer
|
|
2114
2118
|
|
2115
2119
|
window('Grid') {
|
2116
2120
|
tab {
|
2117
|
-
tab_item('
|
2121
|
+
tab_item('Span') {
|
2118
2122
|
grid {
|
2119
2123
|
4.times { |top_value|
|
2120
2124
|
4.times { |left_value|
|
@@ -2154,7 +2158,7 @@ window('Grid') {
|
|
2154
2158
|
}
|
2155
2159
|
}
|
2156
2160
|
}
|
2157
|
-
tab_item('
|
2161
|
+
tab_item('Expand') {
|
2158
2162
|
grid {
|
2159
2163
|
label("(0, 0) hexpand/vexpand\nall available horizontal space is taken\nand\nall\navailable\nvertical\nspace\nis\ntaken") {
|
2160
2164
|
left 0
|
@@ -2176,6 +2180,42 @@ window('Grid') {
|
|
2176
2180
|
}
|
2177
2181
|
}
|
2178
2182
|
}
|
2183
|
+
tab_item('Align') {
|
2184
|
+
grid {
|
2185
|
+
label("(0, 0) halign/valign fill\nall available horizontal space is taken\nand\nall\navailable\nvertical\nspace\nis\ntaken") {
|
2186
|
+
left 0
|
2187
|
+
top 0
|
2188
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2189
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2190
|
+
halign :fill
|
2191
|
+
valign :fill
|
2192
|
+
}
|
2193
|
+
label("(1, 0) halign/valign start") {
|
2194
|
+
left 1
|
2195
|
+
top 0
|
2196
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2197
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2198
|
+
halign :start
|
2199
|
+
valign :start
|
2200
|
+
}
|
2201
|
+
label("(0, 1) halign/valign center") {
|
2202
|
+
left 0
|
2203
|
+
top 1
|
2204
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2205
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2206
|
+
halign :center
|
2207
|
+
valign :center
|
2208
|
+
}
|
2209
|
+
label("(1, 1) halign/valign end") {
|
2210
|
+
left 1
|
2211
|
+
top 1
|
2212
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2213
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
2214
|
+
halign :end
|
2215
|
+
valign :end
|
2216
|
+
}
|
2217
|
+
}
|
2218
|
+
}
|
2179
2219
|
}
|
2180
2220
|
}.show
|
2181
2221
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.10
|
data/examples/grid.rb
CHANGED
@@ -6,7 +6,7 @@ include Glimmer
|
|
6
6
|
|
7
7
|
window('Grid') {
|
8
8
|
tab {
|
9
|
-
tab_item('
|
9
|
+
tab_item('Span') {
|
10
10
|
grid {
|
11
11
|
4.times { |top_value|
|
12
12
|
4.times { |left_value|
|
@@ -46,7 +46,7 @@ window('Grid') {
|
|
46
46
|
}
|
47
47
|
}
|
48
48
|
}
|
49
|
-
tab_item('
|
49
|
+
tab_item('Expand') {
|
50
50
|
grid {
|
51
51
|
label("(0, 0) hexpand/vexpand\nall available horizontal space is taken\nand\nall\navailable\nvertical\nspace\nis\ntaken") {
|
52
52
|
left 0
|
@@ -68,5 +68,41 @@ window('Grid') {
|
|
68
68
|
}
|
69
69
|
}
|
70
70
|
}
|
71
|
+
tab_item('Align') {
|
72
|
+
grid {
|
73
|
+
label("(0, 0) halign/valign fill\nall available horizontal space is taken\nand\nall\navailable\nvertical\nspace\nis\ntaken") {
|
74
|
+
left 0
|
75
|
+
top 0
|
76
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
77
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
78
|
+
halign :fill
|
79
|
+
valign :fill
|
80
|
+
}
|
81
|
+
label("(1, 0) halign/valign start") {
|
82
|
+
left 1
|
83
|
+
top 0
|
84
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
85
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
86
|
+
halign :start
|
87
|
+
valign :start
|
88
|
+
}
|
89
|
+
label("(0, 1) halign/valign center") {
|
90
|
+
left 0
|
91
|
+
top 1
|
92
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
93
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
94
|
+
halign :center
|
95
|
+
valign :center
|
96
|
+
}
|
97
|
+
label("(1, 1) halign/valign end") {
|
98
|
+
left 1
|
99
|
+
top 1
|
100
|
+
hexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
101
|
+
vexpand true unless OS.mac? # on Mac, only the first label is given all space, so avoid expanding
|
102
|
+
halign :end
|
103
|
+
valign :end
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
71
107
|
}
|
72
108
|
}.show
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
@@ -34,10 +34,6 @@ module Glimmer
|
|
34
34
|
class << self
|
35
35
|
# this attribute is only populated during on_draw call
|
36
36
|
attr_accessor :current_area_draw_params
|
37
|
-
|
38
|
-
def ext_key_symbols
|
39
|
-
@ext_key_symbols ||= ::LibUI.constants.select { |c| c.to_s.start_with?('ExtKey') }.map { |c| c.to_s.underscore.sub('ext_key_', '') }
|
40
|
-
end
|
41
37
|
end
|
42
38
|
|
43
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', 'on_key_event', 'on_key_down', 'on_key_up']
|
@@ -155,7 +151,9 @@ module Glimmer
|
|
155
151
|
def area_key_event_hash(area_key_event)
|
156
152
|
{
|
157
153
|
key: key_to_char(area_key_event.Key),
|
154
|
+
key_value: area_key_event.Key,
|
158
155
|
ext_key: ext_key_to_symbol(area_key_event.ExtKey),
|
156
|
+
ext_key_value: area_key_event.ExtKey,
|
159
157
|
modifier: modifiers_to_symbols(area_key_event.Modifier).first,
|
160
158
|
modifiers: modifiers_to_symbols(area_key_event.Modifiers),
|
161
159
|
up: Glimmer::LibUI.integer_to_boolean(area_key_event.Up),
|
@@ -167,7 +165,7 @@ module Glimmer
|
|
167
165
|
end
|
168
166
|
|
169
167
|
def ext_key_to_symbol(ext_key_value)
|
170
|
-
|
168
|
+
Glimmer::LibUI.enum_symbols(:ext_key)[ext_key_value - 1].to_s.to_sym if ext_key_value > 0
|
171
169
|
end
|
172
170
|
|
173
171
|
def modifiers_to_symbols(modifiers_value)
|
@@ -36,7 +36,18 @@ module Glimmer
|
|
36
36
|
child.halign = 0 if child.halign.nil?
|
37
37
|
child.vexpand = false if child.vexpand.nil?
|
38
38
|
child.valign = 0 if child.valign.nil?
|
39
|
-
::LibUI.grid_append(
|
39
|
+
::LibUI.grid_append(
|
40
|
+
@libui,
|
41
|
+
child.libui,
|
42
|
+
child.left,
|
43
|
+
child.top,
|
44
|
+
child.xspan,
|
45
|
+
child.yspan,
|
46
|
+
Glimmer::LibUI.boolean_to_integer(child.hexpand),
|
47
|
+
Glimmer::LibUI.enum_symbol_to_value(:align, child.halign),
|
48
|
+
Glimmer::LibUI.boolean_to_integer(child.vexpand),
|
49
|
+
Glimmer::LibUI.enum_symbol_to_value(:align, child.valign)
|
50
|
+
)
|
40
51
|
children << child
|
41
52
|
end
|
42
53
|
|
@@ -128,25 +128,11 @@ module Glimmer
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def draw_line_cap
|
131
|
-
|
132
|
-
when 'round'
|
133
|
-
1
|
134
|
-
when 'square'
|
135
|
-
2
|
136
|
-
else # 'flat'
|
137
|
-
0
|
138
|
-
end
|
131
|
+
Glimmer::LibUI.enum_symbol_to_value(:draw_line_cap, @stroke && @stroke[:cap])
|
139
132
|
end
|
140
133
|
|
141
134
|
def draw_line_join
|
142
|
-
|
143
|
-
when 'round'
|
144
|
-
1
|
145
|
-
when 'bevel'
|
146
|
-
2
|
147
|
-
else # 'miter'
|
148
|
-
0
|
149
|
-
end
|
135
|
+
Glimmer::LibUI.enum_symbol_to_value(:draw_line_join, @stroke && @stroke[:join])
|
150
136
|
end
|
151
137
|
|
152
138
|
def destroy
|
@@ -165,20 +151,7 @@ module Glimmer
|
|
165
151
|
end
|
166
152
|
|
167
153
|
def init_draw_brush(draw_brush, draw_brush_args)
|
168
|
-
|
169
|
-
when Integer
|
170
|
-
draw_brush.Type = draw_brush_args[:type]
|
171
|
-
when :solid, 'solid'
|
172
|
-
draw_brush.Type = 0
|
173
|
-
when :linear_gradient, 'linear_gradient'
|
174
|
-
draw_brush.Type = 1
|
175
|
-
when :radial_gradient, 'radial_gradient'
|
176
|
-
draw_brush.Type = 2
|
177
|
-
when :image, 'image'
|
178
|
-
draw_brush.Type = 3
|
179
|
-
else
|
180
|
-
draw_brush.Type = 0
|
181
|
-
end
|
154
|
+
draw_brush.Type = Glimmer::LibUI.enum_symbol_to_value(:draw_brush_type, draw_brush_args[:type])
|
182
155
|
draw_brush.R = (draw_brush_args[:r] || draw_brush_args[:red]).to_f / 255.0
|
183
156
|
draw_brush.G = (draw_brush_args[:g] || draw_brush_args[:green]).to_f / 255.0
|
184
157
|
draw_brush.B = (draw_brush_args[:b] || draw_brush_args[:blue]).to_f / 255.0
|
data/lib/glimmer/libui.rb
CHANGED
@@ -87,6 +87,23 @@ module Glimmer
|
|
87
87
|
end
|
88
88
|
value
|
89
89
|
end
|
90
|
+
|
91
|
+
# Returns ruby underscored symbols for enum values starting with enum name (camelcase, e.g. 'ext_key')
|
92
|
+
def enum_symbols(enum_name)
|
93
|
+
enum_name = enum_name.to_s.underscore.to_sym
|
94
|
+
@enum_symbols ||= {}
|
95
|
+
@enum_symbols[enum_name] ||= ::LibUI.constants.select { |c| c.to_s.start_with?(enum_name.to_s.camelcase(:upper)) }.map { |c| c.to_s.underscore.sub("#{enum_name}_", '').to_sym }
|
96
|
+
end
|
97
|
+
|
98
|
+
def enum_symbol_to_value(enum_name, enum_symbol, default_index: 0)
|
99
|
+
if enum_symbol.is_a?(Integer)
|
100
|
+
enum_symbol
|
101
|
+
elsif enum_symbols(enum_name).include?(enum_symbol.to_s.to_sym)
|
102
|
+
::LibUI.const_get("#{enum_name}_#{enum_symbol}".camelcase(:upper))
|
103
|
+
else
|
104
|
+
enum_symbol_to_value(enum_name, enum_symbols(enum_name)[default_index])
|
105
|
+
end
|
106
|
+
end
|
90
107
|
end
|
91
108
|
end
|
92
109
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.2.
|
19
|
+
version: 2.2.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.2.
|
26
|
+
version: 2.2.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: os
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|