applin-rails 0.5.0 → 0.7.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 +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/applin/rails/version.rb +1 -1
- data/lib/applin/rails.rb +0 -1
- data/lib/applin.rb +89 -83
- data/sig/applin.rbs +18 -8
- 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: 9549a088e20dc0e39d0152d3a13be7c4f1bcb2202ce9fd3b78c87793ddba0dff
|
4
|
+
data.tar.gz: d6c833d8898a537d2542c861273aac8a4908d7d7cbe0b39a59ad22b2b607b106
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84fe8b3b2b3da47a61027ea8e7187e366e2ae82a22e9c6449780beb1113aff83abb5399208749827801ce35fd95a2ee06138cde56bac84c90e44e8ebbb4713be
|
7
|
+
data.tar.gz: 2a75e3c118c8811a43e14033fb29949d2947cc4994b45c4c14e23dc26b53bc982e2edade9d4ff8743f4368cf125b33aa5b92c760e47ee052736ef64ac9a81e5d
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
## applin Ruby Gem Changes
|
2
|
+
- v0.7.0
|
3
|
+
- Support ApplinIos 0.32.0.
|
4
|
+
- Remove on_user_error_poll action and make it a parameter of the rpc action.
|
5
|
+
- Add `modal` action.
|
6
|
+
- Add `aspect_ratio` param to `choose_photo` and `take_photo` actions.
|
7
|
+
- v0.6.0
|
8
|
+
- Support ApplinIos v0.25.0.
|
9
|
+
- Add `poll_delay_ms` to checkbox and textfield.
|
10
|
+
- Remove checkbox `rpc` field.
|
data/lib/applin/rails/version.rb
CHANGED
data/lib/applin/rails.rb
CHANGED
data/lib/applin.rb
CHANGED
@@ -20,6 +20,90 @@ module Applin
|
|
20
20
|
|
21
21
|
module_function
|
22
22
|
|
23
|
+
# Actions ###################################################################
|
24
|
+
|
25
|
+
def choose_photo(upload_url:, aspect_ratio: nil)
|
26
|
+
{ typ: "choose_photo", url: upload_url, aspect_ratio: aspect_ratio }
|
27
|
+
end
|
28
|
+
|
29
|
+
def copy_to_clipboard(text)
|
30
|
+
{ typ: "copy_to_clipboard", string_value: text }
|
31
|
+
end
|
32
|
+
|
33
|
+
def launch_url(url)
|
34
|
+
{ typ: "launch_url", url: url }
|
35
|
+
end
|
36
|
+
|
37
|
+
def logout
|
38
|
+
{ typ: "logout" }
|
39
|
+
end
|
40
|
+
|
41
|
+
def modal_button(text:, actions:)
|
42
|
+
{ text: text, actions: actions }
|
43
|
+
end
|
44
|
+
|
45
|
+
def modal(title:, buttons:, message: nil)
|
46
|
+
{ typ: "modal", title: title, message: message, buttons: buttons }
|
47
|
+
end
|
48
|
+
|
49
|
+
def poll
|
50
|
+
{ typ: "poll" }
|
51
|
+
end
|
52
|
+
|
53
|
+
def pop
|
54
|
+
{ typ: "pop" }
|
55
|
+
end
|
56
|
+
|
57
|
+
def push(page_key)
|
58
|
+
{ typ: "push", page: page_key }
|
59
|
+
end
|
60
|
+
|
61
|
+
def replace_all(page_key)
|
62
|
+
{ typ: "replace_all", page: page_key }
|
63
|
+
end
|
64
|
+
|
65
|
+
def rpc(url:, on_user_error_poll: nil)
|
66
|
+
{ typ: "rpc", url: url, on_user_error_poll: on_user_error_poll }
|
67
|
+
end
|
68
|
+
|
69
|
+
def take_photo(upload_url:, aspect_ratio: nil)
|
70
|
+
{ typ: "take_photo", url: upload_url, aspect_ratio: aspect_ratio }
|
71
|
+
end
|
72
|
+
|
73
|
+
# Pages #####################################################################
|
74
|
+
|
75
|
+
def nav_page(
|
76
|
+
title:,
|
77
|
+
start: nil,
|
78
|
+
end_: nil,
|
79
|
+
ephemeral: nil,
|
80
|
+
stream: nil,
|
81
|
+
poll_seconds: nil,
|
82
|
+
&widget_block
|
83
|
+
)
|
84
|
+
{
|
85
|
+
typ: :nav_page,
|
86
|
+
start: start,
|
87
|
+
end: end_,
|
88
|
+
ephemeral: ephemeral,
|
89
|
+
title: title,
|
90
|
+
stream: stream,
|
91
|
+
poll_seconds: poll_seconds,
|
92
|
+
widget: widget_block.yield,
|
93
|
+
}.compact
|
94
|
+
end
|
95
|
+
|
96
|
+
def plain_page(title: nil, ephemeral: nil, stream: nil, poll_seconds: nil, &widget_block)
|
97
|
+
{
|
98
|
+
typ: :plain_page,
|
99
|
+
title: title,
|
100
|
+
ephemeral: ephemeral,
|
101
|
+
stream: stream,
|
102
|
+
poll_seconds: poll_seconds,
|
103
|
+
widget: widget_block.yield,
|
104
|
+
}.compact
|
105
|
+
end
|
106
|
+
|
23
107
|
# Widgets ###################################################################
|
24
108
|
|
25
109
|
def back_button(actions:)
|
@@ -30,12 +114,12 @@ module Applin
|
|
30
114
|
{ typ: :button, text: text, actions: actions }
|
31
115
|
end
|
32
116
|
|
33
|
-
def checkbox(text:, var_name:, actions: nil, initial_bool: nil,
|
117
|
+
def checkbox(text:, var_name:, actions: nil, initial_bool: nil, poll_delay_ms: nil)
|
34
118
|
{
|
35
119
|
typ: :checkbox,
|
36
120
|
actions: actions,
|
37
121
|
initial_bool: initial_bool,
|
38
|
-
|
122
|
+
poll_delay_ms: poll_delay_ms,
|
39
123
|
text: text,
|
40
124
|
var_name: var_name,
|
41
125
|
}.compact
|
@@ -118,7 +202,8 @@ module Applin
|
|
118
202
|
label: nil,
|
119
203
|
max_chars: nil,
|
120
204
|
max_lines: nil,
|
121
|
-
min_chars: nil
|
205
|
+
min_chars: nil,
|
206
|
+
poll_delay_ms: nil
|
122
207
|
)
|
123
208
|
{
|
124
209
|
typ: :textfield,
|
@@ -130,89 +215,10 @@ module Applin
|
|
130
215
|
max_chars: max_chars,
|
131
216
|
max_lines: max_lines,
|
132
217
|
min_chars: min_chars,
|
218
|
+
poll_delay_ms: poll_delay_ms,
|
133
219
|
var_name: var_name,
|
134
220
|
}.compact
|
135
221
|
end
|
136
222
|
|
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
223
|
# rubocop:enable Metrics/MethodLength, Metrics/ParameterLists
|
218
224
|
end
|
data/sig/applin.rbs
CHANGED
@@ -27,7 +27,8 @@ module Applin
|
|
27
27
|
DISPOSITION_STRETCH: disposition
|
28
28
|
VERSION: String
|
29
29
|
|
30
|
-
type action = String
|
30
|
+
type action = { typ: String }
|
31
|
+
type modal_button = { text: String, actions: Array[action] }
|
31
32
|
type page = { title: String }
|
32
33
|
type widget = { typ: String }
|
33
34
|
|
@@ -35,9 +36,15 @@ module Applin
|
|
35
36
|
|
36
37
|
def button: (text: String, actions: Array[action]) -> widget
|
37
38
|
|
38
|
-
def checkbox: (
|
39
|
+
def checkbox: (
|
40
|
+
text: String,
|
41
|
+
var_name: String,
|
42
|
+
actions: Array[action]?,
|
43
|
+
initial_bool: bool?,
|
44
|
+
poll_delay_ms: Numeric?,
|
45
|
+
) -> widget
|
39
46
|
|
40
|
-
def choose_photo: (upload_url: String) -> action
|
47
|
+
def choose_photo: (upload_url: String, aspect_ratio: Numeric?) -> action
|
41
48
|
|
42
49
|
def column: (widgets: Array[widget], align: alignment?, spacing: Numeric?) -> widget
|
43
50
|
|
@@ -63,6 +70,10 @@ module Applin
|
|
63
70
|
|
64
71
|
def logout: -> action
|
65
72
|
|
73
|
+
def modal_button: (text: String, actions: Array[action]) -> modal_button
|
74
|
+
|
75
|
+
def modal: (title: String, message: String?, buttons: Array[modal_button]) -> action
|
76
|
+
|
66
77
|
def nav_button: (text: String, actions: Array[action], badge_text: String?, photo_url: String?, sub_text: String?) -> widget
|
67
78
|
|
68
79
|
def nav_page: (
|
@@ -74,8 +85,6 @@ module Applin
|
|
74
85
|
poll_seconds: Numeric?,
|
75
86
|
) { () -> widget } -> page
|
76
87
|
|
77
|
-
def nothing: -> action
|
78
|
-
|
79
88
|
def plain_page: (
|
80
89
|
title: String?,
|
81
90
|
ephemeral: bool?,
|
@@ -91,13 +100,13 @@ module Applin
|
|
91
100
|
|
92
101
|
def replace_all: (String) -> action
|
93
102
|
|
94
|
-
def rpc: (String) -> action
|
103
|
+
def rpc: (url: String, on_user_error_poll: bool?) -> action
|
95
104
|
|
96
105
|
def scroll: () { () -> widget } -> widget
|
97
106
|
|
98
107
|
def table: (rows: Array[Array[widget]], spacing: Numeric?) -> widget
|
99
108
|
|
100
|
-
def take_photo: (upload_url: String) -> action
|
109
|
+
def take_photo: (upload_url: String, aspect_ratio: Numeric?) -> action
|
101
110
|
|
102
111
|
def text: (String) -> widget
|
103
112
|
|
@@ -110,6 +119,7 @@ module Applin
|
|
110
119
|
label: String?,
|
111
120
|
max_chars: Numeric?,
|
112
121
|
max_lines: Numeric?,
|
113
|
-
min_chars: Numeric
|
122
|
+
min_chars: Numeric?,
|
123
|
+
poll_delay_ms: Numeric?
|
114
124
|
) -> widget
|
115
125
|
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.
|
4
|
+
version: 0.7.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:
|
11
|
+
date: 2024-01-10 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.
|