applin-rails 0.5.0 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cdc30c31c59b934ab7a5592ca8c6e380025e19d9fd5d349eb50239cd86caf29
4
- data.tar.gz: 303ed1586f7fa12a4b0ff4d8fb2b9db12671e503b73a556700aea0f2415207e3
3
+ metadata.gz: 8867eef768fdce7a5c2bf8c18a83e8adc99ad18854578c82815c1d7016199866
4
+ data.tar.gz: 7c4633294fc36b21e876aa93b9d3d85380eb30ef9db4bbaeacd96c83e84b3032
5
5
  SHA512:
6
- metadata.gz: 257fbad034bd0e46bbc2b122076ce3bfa4e0bd75db1bdec47dc6fec40473b36e9bbf89a2ab59ba91350fa71a340f0e3cb9b18394aaf734a2b71842dd1f3b3940
7
- data.tar.gz: 16e60297df8d5d96f8ba089f6c01210a860fa192fabff0614d4f4841974ab3755f8661f37ac112a44ab2a8fa3eea41728aba461673b3fe1d2bd940d624691e61
6
+ metadata.gz: 79ed3689644ff339a5bbcf9a3728f5903e19de48f7c184035c0f31b21f9536978482fbcad122e8413cfc419c4e5315dd889376ae9c4b32685c4d777f8ed56455
7
+ data.tar.gz: 80c63c298656f77b900a5380692a59e1f9b4166893039a082b8d9577167a2fb58afbf4ec8115b1442e909aa6db2033e764dc184de94ec5deeb57d894e9ec605b
data/README.md CHANGED
@@ -15,6 +15,12 @@ To add the gem to your Rails application:
15
15
  * Docs: <https://www.applin.dev/docs/backend-libraries.html>
16
16
  * Example: <https://github.com/leonhard-llc/applin-rails-demo>
17
17
 
18
+ ## Changes
19
+ - v0.6.0
20
+ - Support ApplinIos v0.25.0.
21
+ - Add `poll_delay_ms` to checkbox and textfield.
22
+ - Remove checkbox `rpc` field.
23
+
18
24
  ## Contributing
19
25
  Bug reports and pull requests are welcome on GitHub at <https://github.com/leonhard-llc/applin-rails>.
20
26
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Applin
4
4
  module Rails
5
- VERSION = "0.5.0"
5
+ VERSION = "0.6.0"
6
6
  end
7
7
  end
data/lib/applin/rails.rb CHANGED
@@ -6,7 +6,6 @@ Mime::Type.register "application/vnd.applin_response", :applin
6
6
  module Applin
7
7
  # Helper functions for creating Applin responses from controllers.
8
8
  module Rails
9
-
10
9
  module_function
11
10
 
12
11
  def send_page(page, options = {})
data/lib/applin.rb CHANGED
@@ -20,6 +20,86 @@ module Applin
20
20
 
21
21
  module_function
22
22
 
23
+ # Actions ###################################################################
24
+
25
+ def choose_photo(upload_url:)
26
+ "choose_photo:#{upload_url}"
27
+ end
28
+
29
+ def copy_to_clipboard(text)
30
+ "copy_to_clipboard:#{text}"
31
+ end
32
+
33
+ def launch_url(url)
34
+ "launch_url:#{url}"
35
+ end
36
+
37
+ def logout
38
+ "logout"
39
+ end
40
+
41
+ def on_user_error_poll
42
+ "on_user_error_poll"
43
+ end
44
+
45
+ def poll
46
+ "poll"
47
+ end
48
+
49
+ def pop
50
+ "pop"
51
+ end
52
+
53
+ def push(page_key)
54
+ "push:#{page_key}"
55
+ end
56
+
57
+ def replace_all(page_key)
58
+ "replace_all:#{page_key}"
59
+ end
60
+
61
+ def rpc(url)
62
+ "rpc:#{url}"
63
+ end
64
+
65
+ def take_photo(upload_url:)
66
+ "take_photo:#{upload_url}"
67
+ end
68
+
69
+ # Pages #####################################################################
70
+
71
+ def nav_page(
72
+ title:,
73
+ start: nil,
74
+ end_: nil,
75
+ ephemeral: nil,
76
+ stream: nil,
77
+ poll_seconds: nil,
78
+ &widget_block
79
+ )
80
+ {
81
+ typ: :nav_page,
82
+ start: start,
83
+ end: end_,
84
+ ephemeral: ephemeral,
85
+ title: title,
86
+ stream: stream,
87
+ poll_seconds: poll_seconds,
88
+ widget: widget_block.yield,
89
+ }.compact
90
+ end
91
+
92
+ def plain_page(title: nil, ephemeral: nil, stream: nil, poll_seconds: nil, &widget_block)
93
+ {
94
+ typ: :plain_page,
95
+ title: title,
96
+ ephemeral: ephemeral,
97
+ stream: stream,
98
+ poll_seconds: poll_seconds,
99
+ widget: widget_block.yield,
100
+ }.compact
101
+ end
102
+
23
103
  # Widgets ###################################################################
24
104
 
25
105
  def back_button(actions:)
@@ -30,12 +110,12 @@ module Applin
30
110
  { typ: :button, text: text, actions: actions }
31
111
  end
32
112
 
33
- def checkbox(text:, var_name:, actions: nil, initial_bool: nil, rpc: nil)
113
+ def checkbox(text:, var_name:, actions: nil, initial_bool: nil, poll_delay_ms: nil)
34
114
  {
35
115
  typ: :checkbox,
36
116
  actions: actions,
37
117
  initial_bool: initial_bool,
38
- rpc: rpc,
118
+ poll_delay_ms: poll_delay_ms,
39
119
  text: text,
40
120
  var_name: var_name,
41
121
  }.compact
@@ -118,7 +198,8 @@ module Applin
118
198
  label: nil,
119
199
  max_chars: nil,
120
200
  max_lines: nil,
121
- min_chars: nil
201
+ min_chars: nil,
202
+ poll_delay_ms: nil
122
203
  )
123
204
  {
124
205
  typ: :textfield,
@@ -130,89 +211,10 @@ module Applin
130
211
  max_chars: max_chars,
131
212
  max_lines: max_lines,
132
213
  min_chars: min_chars,
214
+ poll_delay_ms: poll_delay_ms,
133
215
  var_name: var_name,
134
216
  }.compact
135
217
  end
136
218
 
137
- # Pages #####################################################################
138
-
139
- def nav_page(
140
- title:,
141
- start: nil,
142
- end_: nil,
143
- ephemeral: nil,
144
- stream: nil,
145
- poll_seconds: nil,
146
- &widget_block
147
- )
148
- {
149
- typ: :nav_page,
150
- start: start,
151
- end: end_,
152
- ephemeral: ephemeral,
153
- title: title,
154
- stream: stream,
155
- poll_seconds: poll_seconds,
156
- widget: widget_block.yield,
157
- }.compact
158
- end
159
-
160
- def plain_page(title: nil, ephemeral: nil, stream: nil, poll_seconds: nil, &widget_block)
161
- {
162
- typ: :plain_page,
163
- title: title,
164
- ephemeral: ephemeral,
165
- stream: stream,
166
- poll_seconds: poll_seconds,
167
- widget: widget_block.yield,
168
- }.compact
169
- end
170
-
171
- # Actions ###################################################################
172
-
173
- def choose_photo(upload_url:)
174
- "choose_photo:#{upload_url}"
175
- end
176
-
177
- def copy_to_clipboard(text)
178
- "copy_to_clipboard:#{text}"
179
- end
180
-
181
- def launch_url(url)
182
- "launch_url:#{url}"
183
- end
184
-
185
- def logout
186
- "logout"
187
- end
188
-
189
- def nothing
190
- "nothing"
191
- end
192
-
193
- def poll
194
- "poll"
195
- end
196
-
197
- def pop
198
- "pop"
199
- end
200
-
201
- def push(page_key)
202
- "push:#{page_key}"
203
- end
204
-
205
- def replace_all(page_key)
206
- "replace_all:#{page_key}"
207
- end
208
-
209
- def rpc(url)
210
- "rpc:#{url}"
211
- end
212
-
213
- def take_photo(upload_url:)
214
- "take_photo:#{upload_url}"
215
- end
216
-
217
219
  # rubocop:enable Metrics/MethodLength, Metrics/ParameterLists
218
220
  end
data/sig/applin.rbs CHANGED
@@ -35,7 +35,13 @@ module Applin
35
35
 
36
36
  def button: (text: String, actions: Array[action]) -> widget
37
37
 
38
- def checkbox: (text: String, var_name: String, actions: Array[action]?, initial_bool: bool?, rpc: String?) -> widget
38
+ def checkbox: (
39
+ text: String,
40
+ var_name: String,
41
+ actions: Array[action]?,
42
+ initial_bool: bool?,
43
+ poll_delay_ms: Numeric?,
44
+ ) -> widget
39
45
 
40
46
  def choose_photo: (upload_url: String) -> action
41
47
 
@@ -74,7 +80,7 @@ module Applin
74
80
  poll_seconds: Numeric?,
75
81
  ) { () -> widget } -> page
76
82
 
77
- def nothing: -> action
83
+ def on_user_error_poll: -> action
78
84
 
79
85
  def plain_page: (
80
86
  title: String?,
@@ -110,6 +116,7 @@ module Applin
110
116
  label: String?,
111
117
  max_chars: Numeric?,
112
118
  max_lines: Numeric?,
113
- min_chars: Numeric?
119
+ min_chars: Numeric?,
120
+ poll_delay_ms: Numeric?
114
121
  ) -> widget
115
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: applin-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Leonhard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-26 00:00:00.000000000 Z
11
+ date: 2023-12-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Create mobile apps using only backend code. Applin™ is a Server-Driven
14
14
  UI (SDUI) system.