glimmer-dsl-libui 0.2.10 → 0.2.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bc0120584b295401bc245af8ff7110fb332dc74a2f2a60d67be31ccace6f615
4
- data.tar.gz: d456fb5265a0d11c09aede73c9b2930a00710d9696a99f8b91bc180f53b8d153
3
+ metadata.gz: 167c5bae90fe7c652d42de1f788dcb89f5cffba6288ee5bf8ef1b7b5a747a5c0
4
+ data.tar.gz: 0f000ac03b6e7b368a14dad29b078745ca800a96c7df047b27ed00b450325b23
5
5
  SHA512:
6
- metadata.gz: 1b671bfda5925f794d79bbb4b83d849ce772e3f42176d3ed66067567f17584e6fe5296eb0b5d4787b38e1053a822c5bdc50175ff7321e4e67857da39f717b802
7
- data.tar.gz: d4c78d48c0118eb9c92345639ef7a24b333a9d818e54529fec599fce852e070d1b8123fc91252e8fc163245f9ca4b2b6ec4384ad9c1ad53e2590ca610ef9f6b4
6
+ metadata.gz: 44ea533dd57219b02924d3ae50b5591ca22b209dc677763f0b27163a685ce671bfbacc1e5b19bb2c6ae95ff25622f908d80514fc73d1e6b5dd61e6429f9a91e6
7
+ data.tar.gz: c8430e69bac6b16d284bc5159bbed6892e410a4b4dd22c49d085df20ed07822c5d77caddef418abeac9b5bd6726bbe643b260e059a7213a6d2691d10cf58abb5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.2.11
4
+
5
+ - Fix issue with running examples that rely on local assets from gem (they work fine from locally cloned project)
6
+ - Fix issue with not showing puts output in Basic Table Button and Editable Table examples when run from Meta Example
7
+
3
8
  ## 0.2.10
4
9
 
5
10
  - New examples/method_based_custom_keyword.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.2.10
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.2.11
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)
@@ -10,6 +10,8 @@
10
10
 
11
11
  The main trade-off in using [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) as opposed to [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer-dsl-swt) or [Glimmer DSL for Tk](https://github.com/AndyObtiva/glimmer-dsl-tk) is the fact that [SWT](https://www.eclipse.org/swt/) and [Tk](https://www.tcl.tk/) are more mature than mid-alpha [libui](https://github.com/andlabs/libui) as GUI toolkits. Still, if there is only a need to build a small simple application, [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) could be a good convenient choice due to having zero prerequisites beyond the dependencies included in the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui). Also, just like [Glimmer DSL for Tk](https://github.com/AndyObtiva/glimmer-dsl-tk), its apps start instantly and have a small memory footprint. [LibUI](https://github.com/kojix2/LibUI) is a promising new GUI toolkit that might prove quite worthy in the future.
12
12
 
13
+ **(Note: although LibUI works on Windows, this project has not been tested on Windows yet. It has only been verified on Mac x64 and Linux x64)**
14
+
13
15
  [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) aims to provide a DSL similar to the [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer-dsl-swt) to enable more productive desktop development in Ruby with:
14
16
  - Declarative DSL syntax that visually maps to the GUI control hierarchy
15
17
  - Convention over configuration via smart defaults and automation of low-level details
@@ -207,7 +209,7 @@ Other [Glimmer](https://rubygems.org/gems/glimmer) DSL gems you might be interes
207
209
 
208
210
  ## Table of Contents
209
211
 
210
- - [Glimmer DSL for LibUI 0.2.10](#-glimmer-dsl-for-libui-0210)
212
+ - [Glimmer DSL for LibUI](#)
211
213
  - [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
212
214
  - [Usage](#usage)
213
215
  - [Girb (Glimmer IRB)](#girb-glimmer-irb)
@@ -347,7 +349,7 @@ gem install glimmer-dsl-libui
347
349
  Or install via Bundler `Gemfile`:
348
350
 
349
351
  ```ruby
350
- gem 'glimmer-dsl-libui', '~> 0.2.10'
352
+ gem 'glimmer-dsl-libui', '~> 0.2.11'
351
353
  ```
352
354
 
353
355
  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.
@@ -899,7 +901,7 @@ window('area text drawing') {
899
901
 
900
902
  To define custom keywords, simply define a method representing the custom control you want. To make reusable, you can define in modules and simply include the modules in the view classes that need them.
901
903
 
902
- Example that defines `field`, `address_form`, `label_pair`, and `address` keywords (you may copy/paste in [`girb`](#girb-glimmer-irb)):
904
+ Example that defines `form_field`, `address_form`, `label_pair`, and `address` keywords (you may copy/paste in [`girb`](#girb-glimmer-irb)):
903
905
 
904
906
  ```ruby
905
907
  require 'glimmer-dsl-libui'
@@ -909,7 +911,7 @@ include Glimmer
909
911
 
910
912
  Address = Struct.new(:street, :p_o_box, :city, :state, :zip_code)
911
913
 
912
- def field(model, property)
914
+ def form_field(model, property)
913
915
  property = property.to_s
914
916
  entry { |e|
915
917
  label property.underscore.split('_').map(&:capitalize).join(' ')
@@ -923,11 +925,11 @@ end
923
925
 
924
926
  def address_form(address)
925
927
  form {
926
- field(address, :street)
927
- field(address, :p_o_box)
928
- field(address, :city)
929
- field(address, :state)
930
- field(address, :zip_code)
928
+ form_field(address, :street)
929
+ form_field(address, :p_o_box)
930
+ form_field(address, :city)
931
+ form_field(address, :state)
932
+ form_field(address, :zip_code)
931
933
  }
932
934
  end
933
935
 
@@ -962,29 +964,39 @@ window('Method-Based Custom Keyword') {
962
964
  label('Address 1') {
963
965
  stretchy false
964
966
  }
967
+
965
968
  address_form(address1)
969
+
966
970
  horizontal_separator {
967
971
  stretchy false
968
972
  }
973
+
969
974
  label('Address 1 (Saved)') {
970
975
  stretchy false
971
976
  }
977
+
972
978
  address(address1)
973
979
  }
980
+
974
981
  vertical_separator {
975
982
  stretchy false
976
983
  }
984
+
977
985
  vertical_box {
978
986
  label('Address 2') {
979
987
  stretchy false
980
988
  }
989
+
981
990
  address_form(address2)
991
+
982
992
  horizontal_separator {
983
993
  stretchy false
984
994
  }
995
+
985
996
  label('Address 2 (Saved)') {
986
997
  stretchy false
987
998
  }
999
+
988
1000
  address(address2)
989
1001
  }
990
1002
  }
@@ -1056,8 +1068,6 @@ Linux
1056
1068
  New [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-libui) Version:
1057
1069
 
1058
1070
  ```ruby
1059
- # frozen_string_literal: true
1060
-
1061
1071
  require 'glimmer-dsl-libui'
1062
1072
  require 'facets'
1063
1073
 
@@ -1100,6 +1110,18 @@ class MetaExample
1100
1110
  examples[@selected_example_index]
1101
1111
  end
1102
1112
 
1113
+ def run_example(example)
1114
+ command = "ruby -r #{glimmer_dsl_libui_file} #{example} 2>&1"
1115
+ result = ''
1116
+ IO.popen(command) do |f|
1117
+ f.each_line do |line|
1118
+ result << line
1119
+ puts line
1120
+ end
1121
+ end
1122
+ msg_box('Error Running Example', result) if result.downcase.include?('error')
1123
+ end
1124
+
1103
1125
  def launch
1104
1126
  window('Meta-Example', 700, 500) {
1105
1127
  margined true
@@ -1150,11 +1172,11 @@ class MetaExample
1150
1172
  begin
1151
1173
  meta_example_file = File.join(Dir.home, '.meta_example.rb')
1152
1174
  File.write(meta_example_file, @code_entry.text)
1153
- result = `ruby -r #{glimmer_dsl_libui_file} #{meta_example_file} 2>&1`
1154
- msg_box('Error Running Example', result) if result.include?('error')
1175
+ run_example(meta_example_file)
1155
1176
  rescue => e
1177
+ puts e.full_message
1156
1178
  puts 'Unable to write code changes! Running original example...'
1157
- system "ruby -r #{glimmer_dsl_libui_file} #{file_path_for(selected_example)}"
1179
+ run_example(file_path_for(selected_example))
1158
1180
  end
1159
1181
  end
1160
1182
  }
@@ -2518,11 +2540,21 @@ window('Form') {
2518
2540
  @last_name_entry = entry {
2519
2541
  label 'Last Name' # label property is available when control is nested under form
2520
2542
  }
2543
+
2544
+ @phone_entry = entry {
2545
+ label 'Phone' # label property is available when control is nested under form
2546
+ }
2547
+
2548
+ @email_entry = entry {
2549
+ label 'Email' # label property is available when control is nested under form
2550
+ }
2521
2551
  }
2522
2552
 
2523
- button('Display Name') {
2553
+ button('Display Info') {
2554
+ stretchy false
2555
+
2524
2556
  on_clicked do
2525
- msg_box('Name', "#{@first_name_entry.text} #{@last_name_entry.text}")
2557
+ msg_box('Info', "#{@first_name_entry.text} #{@last_name_entry.text} has phone #{@phone_entry.text} and email #{@email_entry.text}")
2526
2558
  end
2527
2559
  }
2528
2560
  }
@@ -5838,7 +5870,7 @@ include Glimmer
5838
5870
 
5839
5871
  Address = Struct.new(:street, :p_o_box, :city, :state, :zip_code)
5840
5872
 
5841
- def field(model, property)
5873
+ def form_field(model, property)
5842
5874
  property = property.to_s
5843
5875
  entry { |e|
5844
5876
  label property.underscore.split('_').map(&:capitalize).join(' ')
@@ -5852,11 +5884,11 @@ end
5852
5884
 
5853
5885
  def address_form(address)
5854
5886
  form {
5855
- field(address, :street)
5856
- field(address, :p_o_box)
5857
- field(address, :city)
5858
- field(address, :state)
5859
- field(address, :zip_code)
5887
+ form_field(address, :street)
5888
+ form_field(address, :p_o_box)
5889
+ form_field(address, :city)
5890
+ form_field(address, :state)
5891
+ form_field(address, :zip_code)
5860
5892
  }
5861
5893
  end
5862
5894
 
@@ -5891,29 +5923,39 @@ window('Method-Based Custom Keyword') {
5891
5923
  label('Address 1') {
5892
5924
  stretchy false
5893
5925
  }
5926
+
5894
5927
  address_form(address1)
5928
+
5895
5929
  horizontal_separator {
5896
5930
  stretchy false
5897
5931
  }
5932
+
5898
5933
  label('Address 1 (Saved)') {
5899
5934
  stretchy false
5900
5935
  }
5936
+
5901
5937
  address(address1)
5902
5938
  }
5939
+
5903
5940
  vertical_separator {
5904
5941
  stretchy false
5905
5942
  }
5943
+
5906
5944
  vertical_box {
5907
5945
  label('Address 2') {
5908
5946
  stretchy false
5909
5947
  }
5948
+
5910
5949
  address_form(address2)
5950
+
5911
5951
  horizontal_separator {
5912
5952
  stretchy false
5913
5953
  }
5954
+
5914
5955
  label('Address 2 (Saved)') {
5915
5956
  stretchy false
5916
5957
  }
5958
+
5917
5959
  address(address2)
5918
5960
  }
5919
5961
  }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.10
1
+ 0.2.11
@@ -27,6 +27,7 @@ window('Animal sounds', 300, 200) {
27
27
 
28
28
  on_changed do |row, type, row_data|
29
29
  puts "Row #{row} #{type}: #{row_data}"
30
+ $stdout.flush
30
31
  end
31
32
  }
32
33
  }
@@ -23,10 +23,12 @@ window('Editable animal sounds', 300, 200) {
23
23
 
24
24
  on_changed do |row, type, row_data| # fires on all changes (even ones happening through data array)
25
25
  puts "Row #{row} #{type}: #{row_data}"
26
+ $stdout.flush
26
27
  end
27
28
 
28
29
  on_edited do |row, row_data| # only fires on direct table editing
29
30
  puts "Row #{row} edited: #{row_data}"
31
+ $stdout.flush
30
32
  end
31
33
  }
32
34
  }
@@ -1,5 +1,6 @@
1
1
  require 'glimmer-dsl-libui'
2
2
  require 'facets'
3
+ require 'fileutils'
3
4
 
4
5
  class MetaExample
5
6
  include Glimmer
@@ -100,9 +101,13 @@ class MetaExample
100
101
  button('Launch') {
101
102
  on_clicked do
102
103
  begin
103
- meta_example_file = File.join(Dir.home, '.meta_example.rb')
104
- File.write(meta_example_file, @code_entry.text)
105
- run_example(meta_example_file)
104
+ parent_dir = File.join(Dir.home, '.glimmer-dsl-libui', 'examples')
105
+ FileUtils.mkdir_p(parent_dir)
106
+ example_file = File.join(parent_dir, "#{selected_example.underscore}.rb")
107
+ File.write(example_file, @code_entry.text)
108
+ FileUtils.cp_r(File.expand_path('../icons', __dir__), File.dirname(parent_dir))
109
+ FileUtils.cp_r(File.expand_path('../sounds', __dir__), File.dirname(parent_dir))
110
+ run_example(example_file)
106
111
  rescue => e
107
112
  puts e.full_message
108
113
  puts 'Unable to write code changes! Running original example...'
@@ -5,7 +5,7 @@ include Glimmer
5
5
 
6
6
  Address = Struct.new(:street, :p_o_box, :city, :state, :zip_code)
7
7
 
8
- def field(model, property)
8
+ def form_field(model, property)
9
9
  property = property.to_s
10
10
  entry { |e|
11
11
  label property.underscore.split('_').map(&:capitalize).join(' ')
@@ -19,11 +19,11 @@ end
19
19
 
20
20
  def address_form(address)
21
21
  form {
22
- field(address, :street)
23
- field(address, :p_o_box)
24
- field(address, :city)
25
- field(address, :state)
26
- field(address, :zip_code)
22
+ form_field(address, :street)
23
+ form_field(address, :p_o_box)
24
+ form_field(address, :city)
25
+ form_field(address, :state)
26
+ form_field(address, :zip_code)
27
27
  }
28
28
  end
29
29
 
@@ -58,29 +58,39 @@ window('Method-Based Custom Keyword') {
58
58
  label('Address 1') {
59
59
  stretchy false
60
60
  }
61
+
61
62
  address_form(address1)
63
+
62
64
  horizontal_separator {
63
65
  stretchy false
64
66
  }
67
+
65
68
  label('Address 1 (Saved)') {
66
69
  stretchy false
67
70
  }
71
+
68
72
  address(address1)
69
73
  }
74
+
70
75
  vertical_separator {
71
76
  stretchy false
72
77
  }
78
+
73
79
  vertical_box {
74
80
  label('Address 2') {
75
81
  stretchy false
76
82
  }
83
+
77
84
  address_form(address2)
85
+
78
86
  horizontal_separator {
79
87
  stretchy false
80
88
  }
89
+
81
90
  label('Address 2 (Saved)') {
82
91
  stretchy false
83
92
  }
93
+
84
94
  address(address2)
85
95
  }
86
96
  }
Binary file
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.2.10
4
+ version: 0.2.11
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-08 00:00:00.000000000 Z
11
+ date: 2021-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer