funicular 0.0.1 → 0.2.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 +79 -0
- data/README.md +66 -20
- data/Rakefile +103 -2
- data/demo/keymap_editor.html +582 -0
- data/demo/test_cable.html +179 -0
- data/demo/test_chartjs.html +235 -0
- data/demo/test_component.html +201 -0
- data/demo/test_diff_patch.html +146 -0
- data/demo/test_error_boundary.html +284 -0
- data/demo/test_router.html +257 -0
- data/demo/test_vdom.html +100 -0
- data/demo/tic-tac-toe.html +201 -0
- data/docs/architecture.md +118 -0
- data/exe/funicular +32 -0
- data/lib/funicular/assets/funicular.css +23 -0
- data/lib/funicular/assets/funicular.rb +21 -0
- data/lib/funicular/assets/funicular_debug.css +73 -0
- data/lib/funicular/assets/funicular_debug.js +183 -0
- data/lib/funicular/commands/routes.rb +69 -0
- data/lib/funicular/compiler.rb +143 -0
- data/lib/funicular/configuration.rb +76 -0
- data/lib/funicular/helpers/picoruby_helper.rb +112 -0
- data/lib/funicular/middleware.rb +123 -0
- data/lib/funicular/plugin.rb +147 -0
- data/lib/funicular/railtie.rb +26 -0
- data/lib/funicular/route_parser.rb +137 -0
- data/lib/funicular/schema.rb +167 -0
- data/lib/funicular/ssr/runtime.rb +101 -0
- data/lib/funicular/ssr.rb +51 -0
- data/lib/funicular/testing/node_runner.mjs +293 -0
- data/lib/funicular/testing/node_runner.rb +190 -0
- data/lib/funicular/testing.rb +22 -0
- data/lib/funicular/vendor/picorbc/VERSION +1 -0
- data/lib/funicular/vendor/picorbc/picorbc.js +5283 -0
- data/lib/funicular/vendor/picorbc/picorbc.wasm +0 -0
- data/lib/funicular/vendor/picoruby/VERSION +1 -0
- data/lib/funicular/vendor/picoruby/debug/init.iife.js +130 -0
- data/lib/funicular/vendor/picoruby/debug/picoruby.js +6423 -0
- data/lib/funicular/vendor/picoruby/debug/picoruby.wasm +0 -0
- data/lib/funicular/vendor/picoruby/dist/init.iife.js +130 -0
- data/lib/funicular/vendor/picoruby/dist/picoruby.js +2 -0
- data/lib/funicular/vendor/picoruby/dist/picoruby.wasm +0 -0
- data/lib/funicular/vendor/picoruby-test-node/VERSION +1 -0
- data/lib/funicular/vendor/picoruby-test-node/picoruby.js +6885 -0
- data/lib/funicular/vendor/picoruby-test-node/picoruby.wasm +0 -0
- data/lib/funicular/vendor/picoruby-test-node/picoruby.wasm.map +1 -0
- data/lib/funicular/version.rb +1 -1
- data/lib/funicular.rb +32 -1
- data/lib/generators/funicular/chat/chat_generator.rb +104 -0
- data/lib/generators/funicular/chat/templates/application_cable_channel.rb.tt +4 -0
- data/lib/generators/funicular/chat/templates/application_cable_connection.rb.tt +4 -0
- data/lib/generators/funicular/chat/templates/create_funicular_chat_messages.rb.tt +10 -0
- data/lib/generators/funicular/chat/templates/funicular_chat.css.tt +141 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_channel.rb.tt +5 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_component.rb.tt +135 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_component_picotest.rb.tt +64 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_controller.rb.tt +4 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_message.rb.tt +13 -0
- data/lib/generators/funicular/chat/templates/funicular_chat_messages_controller.rb.tt +23 -0
- data/lib/generators/funicular/chat/templates/initializer.rb.tt +4 -0
- data/lib/generators/funicular/chat/templates/show.html.erb.tt +6 -0
- data/lib/tasks/funicular.rake +218 -0
- data/minitest/fixtures/funicular_app/components/greeting_component.rb +16 -0
- data/minitest/fixtures/funicular_app/initializer.rb +5 -0
- data/minitest/funicular_test.rb +13 -0
- data/minitest/hydration_test.rb +87 -0
- data/minitest/plugin_test.rb +51 -0
- data/minitest/schema_test.rb +106 -0
- data/minitest/ssr_test.rb +94 -0
- data/minitest/test_helper.rb +7 -0
- data/minitest/validations_test.rb +183 -0
- data/mrbgem.rake +16 -0
- data/mrblib/0_validations.rb +206 -0
- data/mrblib/1_validators.rb +180 -0
- data/mrblib/cable.rb +432 -0
- data/mrblib/component.rb +1050 -0
- data/mrblib/debug.rb +208 -0
- data/mrblib/differ.rb +254 -0
- data/mrblib/environment_inquirer.rb +34 -0
- data/mrblib/error_boundary.rb +125 -0
- data/mrblib/file_upload.rb +192 -0
- data/mrblib/form_builder.rb +300 -0
- data/mrblib/funicular.rb +245 -0
- data/mrblib/html_serializer.rb +121 -0
- data/mrblib/http.rb +183 -0
- data/mrblib/model.rb +196 -0
- data/mrblib/patcher.rb +269 -0
- data/mrblib/router.rb +266 -0
- data/mrblib/store.rb +304 -0
- data/mrblib/store_collection.rb +171 -0
- data/mrblib/store_singleton.rb +79 -0
- data/mrblib/styles.rb +83 -0
- data/mrblib/vdom.rb +273 -0
- data/sig/cable.rbs +66 -0
- data/sig/component.rbs +149 -0
- data/sig/debug.rbs +28 -0
- data/sig/differ.rbs +18 -0
- data/sig/environment_iquirer.rbs +10 -0
- data/sig/error_boundary.rbs +14 -0
- data/sig/file_upload.rbs +18 -0
- data/sig/form_builder.rbs +29 -0
- data/sig/funicular.rbs +24 -1
- data/sig/html_serializer.rbs +20 -0
- data/sig/http.rbs +37 -0
- data/sig/model.rbs +28 -0
- data/sig/patcher.rbs +18 -0
- data/sig/router.rbs +44 -0
- data/sig/store.rbs +89 -0
- data/sig/store_collection.rbs +43 -0
- data/sig/store_singleton.rbs +19 -0
- data/sig/styles.rbs +25 -0
- data/sig/validations.rbs +103 -0
- data/sig/vdom.rbs +59 -0
- metadata +154 -8
data/sig/validations.rbs
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
module Funicular
|
|
2
|
+
class Model
|
|
3
|
+
# Validation error collection (a small slice of ActiveModel::Errors).
|
|
4
|
+
class Errors
|
|
5
|
+
@messages: Hash[Symbol, Array[String]]
|
|
6
|
+
|
|
7
|
+
def initialize: () -> void
|
|
8
|
+
def add: (Symbol | String attribute, String message) -> String
|
|
9
|
+
def []: (Symbol | String attribute) -> Array[String]
|
|
10
|
+
def added?: (Symbol | String attribute) -> bool
|
|
11
|
+
def messages: () -> Hash[Symbol, Array[String]]
|
|
12
|
+
def full_messages: () -> Array[String]
|
|
13
|
+
def clear: () -> void
|
|
14
|
+
def empty?: () -> bool
|
|
15
|
+
def any?: () -> bool
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
def humanize: (Symbol | String attribute) -> String
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# ActiveModel-style validation, mixed into Model.
|
|
22
|
+
module Validations
|
|
23
|
+
def self.included: (untyped base) -> void
|
|
24
|
+
|
|
25
|
+
# Base class for attribute validators.
|
|
26
|
+
class EachValidator
|
|
27
|
+
@attributes: Array[Symbol]
|
|
28
|
+
@options: Hash[Symbol, untyped]
|
|
29
|
+
|
|
30
|
+
attr_reader attributes: Array[Symbol]
|
|
31
|
+
attr_reader options: Hash[Symbol, untyped]
|
|
32
|
+
|
|
33
|
+
def initialize: (attributes: Array[Symbol], **untyped options) -> void
|
|
34
|
+
def kind: () -> Symbol
|
|
35
|
+
def validate: (untyped record) -> void
|
|
36
|
+
def validate_each: (untyped record, Symbol attribute, untyped value) -> void
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
def blank?: (untyped value) -> bool
|
|
40
|
+
def present?: (untyped value) -> bool
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
module ClassMethods
|
|
44
|
+
@validators: Array[EachValidator]
|
|
45
|
+
|
|
46
|
+
SHARED_OPTIONS: Array[Symbol]
|
|
47
|
+
|
|
48
|
+
def validators: () -> Array[EachValidator]
|
|
49
|
+
def validators_on: (Symbol | String attribute) -> Array[EachValidator]
|
|
50
|
+
def validates: (*Symbol | String attributes, **untyped options) -> void
|
|
51
|
+
def add_schema_validator: (Symbol | String attribute, Symbol | String kind, untyped opts) -> void
|
|
52
|
+
|
|
53
|
+
private
|
|
54
|
+
def validator_class_for: (Symbol | String key) -> singleton(EachValidator)?
|
|
55
|
+
def symbolize_keys: (untyped hash) -> Hash[Symbol, untyped]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Instance API (mixed into Model).
|
|
59
|
+
@errors: Errors
|
|
60
|
+
def errors: () -> Errors
|
|
61
|
+
def read_attribute_for_validation: (Symbol attribute) -> untyped
|
|
62
|
+
def valid?: () -> bool
|
|
63
|
+
def invalid?: () -> bool
|
|
64
|
+
|
|
65
|
+
# --- concrete validators ---
|
|
66
|
+
|
|
67
|
+
class PresenceValidator < EachValidator
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class AbsenceValidator < EachValidator
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
class LengthValidator < EachValidator
|
|
74
|
+
private
|
|
75
|
+
def range_include?: (untyped range, Integer length) -> bool
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
class FormatValidator < EachValidator
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
class NumericalityValidator < EachValidator
|
|
82
|
+
CHECKS: Hash[Symbol, String]
|
|
83
|
+
|
|
84
|
+
private
|
|
85
|
+
def compare: (Numeric number, Symbol option, untyped target) -> bool
|
|
86
|
+
def message_for: (Symbol option, untyped target) -> String
|
|
87
|
+
def to_number: (untyped value) -> (Numeric | nil)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class InclusionValidator < EachValidator
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class ExclusionValidator < EachValidator
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class AcceptanceValidator < EachValidator
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class ConfirmationValidator < EachValidator
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
data/sig/vdom.rbs
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module Funicular
|
|
2
|
+
module VDOM
|
|
3
|
+
type patch_t = Array[untyped]
|
|
4
|
+
type child_t = Element | Text | Component | String | Array[Element | Text | Component | String]
|
|
5
|
+
|
|
6
|
+
URL_ATTRIBUTES: Array[String]
|
|
7
|
+
|
|
8
|
+
class VNode
|
|
9
|
+
attr_reader type: Symbol
|
|
10
|
+
attr_reader key: untyped
|
|
11
|
+
|
|
12
|
+
def initialize: (Symbol type) -> void
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class Element < VNode
|
|
16
|
+
attr_reader tag: String
|
|
17
|
+
attr_reader props: Hash[Symbol, untyped]
|
|
18
|
+
attr_reader children: Array[child_t]
|
|
19
|
+
|
|
20
|
+
def initialize: (String tag, ?Hash[Symbol, untyped] props, ?Array[child_t] children) -> void
|
|
21
|
+
def ==: (untyped other) -> bool
|
|
22
|
+
private def normalize_children: (Array[child_t] children) -> Array[child_t]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Text < VNode
|
|
26
|
+
attr_reader content: String
|
|
27
|
+
|
|
28
|
+
def initialize: (String content) -> void
|
|
29
|
+
def ==: (untyped other) -> bool
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class Renderer
|
|
33
|
+
@error_boundary_stack: Array[Funicular::ErrorBoundary]
|
|
34
|
+
|
|
35
|
+
def initialize: (?JS::Element? doc) -> void
|
|
36
|
+
def render: (VDOM::VNode | VDOM::Text | nil vnode, ?JS::Element? parent) -> JS::Element
|
|
37
|
+
|
|
38
|
+
private def current_error_boundary: () -> ErrorBoundary?
|
|
39
|
+
private def render_element: (Element element, JS::Element? parent) -> JS::Element
|
|
40
|
+
private def render_text: (VDOM::Text text, JS::Element? parent) -> JS::Element
|
|
41
|
+
private def render_component: (VDOM::Component component_vnode, JS::Element? parent) -> JS::Element
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.create_element: (String tag, ?Hash[Symbol, untyped] props, *child_t children) -> Element
|
|
45
|
+
def self.create_text: (String content) -> Text
|
|
46
|
+
def self.render: (VNode vnode, JS::Element container) -> void
|
|
47
|
+
def self.diff: (VNode? old_vnode, VNode? new_vnode) -> Array[patch_t]
|
|
48
|
+
def self.patch: (JS::Object element, Array[patch_t] patches) -> JS::Object
|
|
49
|
+
|
|
50
|
+
class Component < VNode
|
|
51
|
+
attr_reader component_class: untyped
|
|
52
|
+
attr_reader props: Hash[Symbol, untyped]
|
|
53
|
+
attr_accessor instance: untyped
|
|
54
|
+
|
|
55
|
+
def initialize: (untyped component_class, ?Hash[Symbol, untyped] props) -> void
|
|
56
|
+
def ==: (untyped other) -> bool
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
metadata
CHANGED
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: funicular
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- HASUMI Hitoshi
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
-
dependencies:
|
|
12
|
-
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rails
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '8.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '8.0'
|
|
26
|
+
description: Funicular enables you to write client-side UI components in Ruby, powered
|
|
27
|
+
by PicoRuby.wasm
|
|
13
28
|
email:
|
|
14
29
|
- hasumikin@gmail.com
|
|
15
|
-
executables:
|
|
30
|
+
executables:
|
|
31
|
+
- funicular
|
|
16
32
|
extensions: []
|
|
17
33
|
extra_rdoc_files: []
|
|
18
34
|
files:
|
|
@@ -21,14 +37,143 @@ files:
|
|
|
21
37
|
- LICENSE.txt
|
|
22
38
|
- README.md
|
|
23
39
|
- Rakefile
|
|
40
|
+
- demo/keymap_editor.html
|
|
41
|
+
- demo/test_cable.html
|
|
42
|
+
- demo/test_chartjs.html
|
|
43
|
+
- demo/test_component.html
|
|
44
|
+
- demo/test_diff_patch.html
|
|
45
|
+
- demo/test_error_boundary.html
|
|
46
|
+
- demo/test_router.html
|
|
47
|
+
- demo/test_vdom.html
|
|
48
|
+
- demo/tic-tac-toe.html
|
|
49
|
+
- docs/architecture.md
|
|
50
|
+
- exe/funicular
|
|
24
51
|
- lib/funicular.rb
|
|
52
|
+
- lib/funicular/assets/funicular.css
|
|
53
|
+
- lib/funicular/assets/funicular.rb
|
|
54
|
+
- lib/funicular/assets/funicular_debug.css
|
|
55
|
+
- lib/funicular/assets/funicular_debug.js
|
|
56
|
+
- lib/funicular/commands/routes.rb
|
|
57
|
+
- lib/funicular/compiler.rb
|
|
58
|
+
- lib/funicular/configuration.rb
|
|
59
|
+
- lib/funicular/helpers/picoruby_helper.rb
|
|
60
|
+
- lib/funicular/middleware.rb
|
|
61
|
+
- lib/funicular/plugin.rb
|
|
62
|
+
- lib/funicular/railtie.rb
|
|
63
|
+
- lib/funicular/route_parser.rb
|
|
64
|
+
- lib/funicular/schema.rb
|
|
65
|
+
- lib/funicular/ssr.rb
|
|
66
|
+
- lib/funicular/ssr/runtime.rb
|
|
67
|
+
- lib/funicular/testing.rb
|
|
68
|
+
- lib/funicular/testing/node_runner.mjs
|
|
69
|
+
- lib/funicular/testing/node_runner.rb
|
|
70
|
+
- lib/funicular/vendor/picorbc/VERSION
|
|
71
|
+
- lib/funicular/vendor/picorbc/picorbc.js
|
|
72
|
+
- lib/funicular/vendor/picorbc/picorbc.wasm
|
|
73
|
+
- lib/funicular/vendor/picoruby-test-node/VERSION
|
|
74
|
+
- lib/funicular/vendor/picoruby-test-node/picoruby.js
|
|
75
|
+
- lib/funicular/vendor/picoruby-test-node/picoruby.wasm
|
|
76
|
+
- lib/funicular/vendor/picoruby-test-node/picoruby.wasm.map
|
|
77
|
+
- lib/funicular/vendor/picoruby/VERSION
|
|
78
|
+
- lib/funicular/vendor/picoruby/debug/init.iife.js
|
|
79
|
+
- lib/funicular/vendor/picoruby/debug/picoruby.js
|
|
80
|
+
- lib/funicular/vendor/picoruby/debug/picoruby.wasm
|
|
81
|
+
- lib/funicular/vendor/picoruby/dist/init.iife.js
|
|
82
|
+
- lib/funicular/vendor/picoruby/dist/picoruby.js
|
|
83
|
+
- lib/funicular/vendor/picoruby/dist/picoruby.wasm
|
|
25
84
|
- lib/funicular/version.rb
|
|
85
|
+
- lib/generators/funicular/chat/chat_generator.rb
|
|
86
|
+
- lib/generators/funicular/chat/templates/application_cable_channel.rb.tt
|
|
87
|
+
- lib/generators/funicular/chat/templates/application_cable_connection.rb.tt
|
|
88
|
+
- lib/generators/funicular/chat/templates/create_funicular_chat_messages.rb.tt
|
|
89
|
+
- lib/generators/funicular/chat/templates/funicular_chat.css.tt
|
|
90
|
+
- lib/generators/funicular/chat/templates/funicular_chat_channel.rb.tt
|
|
91
|
+
- lib/generators/funicular/chat/templates/funicular_chat_component.rb.tt
|
|
92
|
+
- lib/generators/funicular/chat/templates/funicular_chat_component_picotest.rb.tt
|
|
93
|
+
- lib/generators/funicular/chat/templates/funicular_chat_controller.rb.tt
|
|
94
|
+
- lib/generators/funicular/chat/templates/funicular_chat_message.rb.tt
|
|
95
|
+
- lib/generators/funicular/chat/templates/funicular_chat_messages_controller.rb.tt
|
|
96
|
+
- lib/generators/funicular/chat/templates/initializer.rb.tt
|
|
97
|
+
- lib/generators/funicular/chat/templates/show.html.erb.tt
|
|
98
|
+
- lib/tasks/funicular.rake
|
|
99
|
+
- minitest/fixtures/funicular_app/components/greeting_component.rb
|
|
100
|
+
- minitest/fixtures/funicular_app/initializer.rb
|
|
101
|
+
- minitest/funicular_test.rb
|
|
102
|
+
- minitest/hydration_test.rb
|
|
103
|
+
- minitest/plugin_test.rb
|
|
104
|
+
- minitest/schema_test.rb
|
|
105
|
+
- minitest/ssr_test.rb
|
|
106
|
+
- minitest/test_helper.rb
|
|
107
|
+
- minitest/validations_test.rb
|
|
108
|
+
- mrbgem.rake
|
|
109
|
+
- mrblib/0_validations.rb
|
|
110
|
+
- mrblib/1_validators.rb
|
|
111
|
+
- mrblib/cable.rb
|
|
112
|
+
- mrblib/component.rb
|
|
113
|
+
- mrblib/debug.rb
|
|
114
|
+
- mrblib/differ.rb
|
|
115
|
+
- mrblib/environment_inquirer.rb
|
|
116
|
+
- mrblib/error_boundary.rb
|
|
117
|
+
- mrblib/file_upload.rb
|
|
118
|
+
- mrblib/form_builder.rb
|
|
119
|
+
- mrblib/funicular.rb
|
|
120
|
+
- mrblib/html_serializer.rb
|
|
121
|
+
- mrblib/http.rb
|
|
122
|
+
- mrblib/model.rb
|
|
123
|
+
- mrblib/patcher.rb
|
|
124
|
+
- mrblib/router.rb
|
|
125
|
+
- mrblib/store.rb
|
|
126
|
+
- mrblib/store_collection.rb
|
|
127
|
+
- mrblib/store_singleton.rb
|
|
128
|
+
- mrblib/styles.rb
|
|
129
|
+
- mrblib/vdom.rb
|
|
130
|
+
- sig/cable.rbs
|
|
131
|
+
- sig/component.rbs
|
|
132
|
+
- sig/debug.rbs
|
|
133
|
+
- sig/differ.rbs
|
|
134
|
+
- sig/environment_iquirer.rbs
|
|
135
|
+
- sig/error_boundary.rbs
|
|
136
|
+
- sig/file_upload.rbs
|
|
137
|
+
- sig/form_builder.rbs
|
|
26
138
|
- sig/funicular.rbs
|
|
27
|
-
|
|
139
|
+
- sig/html_serializer.rbs
|
|
140
|
+
- sig/http.rbs
|
|
141
|
+
- sig/model.rbs
|
|
142
|
+
- sig/patcher.rbs
|
|
143
|
+
- sig/router.rbs
|
|
144
|
+
- sig/store.rbs
|
|
145
|
+
- sig/store_collection.rbs
|
|
146
|
+
- sig/store_singleton.rbs
|
|
147
|
+
- sig/styles.rbs
|
|
148
|
+
- sig/validations.rbs
|
|
149
|
+
- sig/vdom.rbs
|
|
150
|
+
homepage: https://github.com/picoruby/funicular
|
|
28
151
|
licenses:
|
|
29
152
|
- MIT
|
|
30
153
|
metadata:
|
|
31
|
-
homepage_uri: https://
|
|
154
|
+
homepage_uri: https://picoruby.org/funicular-getting-started
|
|
155
|
+
source_code_uri: https://github.com/picoruby/funicular
|
|
156
|
+
changelog_uri: https://github.com/picoruby/funicular/blob/master/CHANGELOG.md
|
|
157
|
+
post_install_message: |2+
|
|
158
|
+
|
|
159
|
+
Thank you for installing Funicular!
|
|
160
|
+
|
|
161
|
+
Funicular bundles a WebAssembly build of picorbc, which compiles your
|
|
162
|
+
Ruby code to .mrb bytecode. Make sure Node.js is installed on machines
|
|
163
|
+
that run the compilation.
|
|
164
|
+
|
|
165
|
+
Funicular works in two modes:
|
|
166
|
+
|
|
167
|
+
Standalone: include PicoRuby.wasm directly in any HTML page using the
|
|
168
|
+
bundled WASM artifacts. No server framework required.
|
|
169
|
+
|
|
170
|
+
Rails integration: use the Railtie, middleware, and view helpers for
|
|
171
|
+
seamless asset pipeline support.
|
|
172
|
+
bin/rails funicular:install
|
|
173
|
+
|
|
174
|
+
For Web App Developers: https://picoruby.org/funicular
|
|
175
|
+
For Funicular Contributors: https://github.com/picoruby/funicular
|
|
176
|
+
|
|
32
177
|
rdoc_options: []
|
|
33
178
|
require_paths:
|
|
34
179
|
- lib
|
|
@@ -43,7 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
43
188
|
- !ruby/object:Gem::Version
|
|
44
189
|
version: '0'
|
|
45
190
|
requirements: []
|
|
46
|
-
rubygems_version:
|
|
191
|
+
rubygems_version: 4.0.10
|
|
47
192
|
specification_version: 4
|
|
48
|
-
summary:
|
|
193
|
+
summary: Rails plugin for client-side Ruby development with mruby
|
|
49
194
|
test_files: []
|
|
195
|
+
...
|