asbru 0.0.6 → 0.0.10
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/lib/asbru/cml.rb +17 -40
- data/lib/asbru/components/sage.rb +3 -0
- data/lib/asbru/components/savage.rb +6 -0
- data/lib/asbru/form_builder.rb +9 -2
- data/lib/asbru/links.rb +4 -2
- data/lib/asbru/ragna.rb +2 -2
- data/lib/asbru/version.rb +1 -1
- data/lib/asbru.rb +8 -2
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90a72c9539babb635d139212a66f008dd633e1e0b40182458120600e6c83b59f
|
4
|
+
data.tar.gz: 912bf88b22c9ef7db0314833d44d29948b17c07f4722d64ae85700f865d705f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 077f11f12bb28b2e5fb95834b1321fa5881bf7c90018d5916173c1ab2974aabf41fb7884a1a471cd6133b4c048fcdf922f3e2ff15347b0a5fc68c145caf25b05
|
7
|
+
data.tar.gz: f08c131767f75e4be30a40b3fbb9288750c147ead03c09df39dad80db864aa8af12db3d8ad7931ecce406dc21b92b9fd4961a8033965522558d021be6e535ba2
|
data/lib/asbru/cml.rb
CHANGED
@@ -1,88 +1,65 @@
|
|
1
1
|
require 'asbru/components/savage'
|
2
2
|
|
3
3
|
module Asbru
|
4
|
-
# This module defines a bunch of methods that
|
5
|
-
|
6
|
-
|
4
|
+
# This module defines a bunch of methods that make component based pages
|
5
|
+
# appear more similar to HTML.
|
6
|
+
# The limitation is that nested components won't work.
|
7
|
+
module Cml
|
8
|
+
C = Asbru::Config.component_mode.tap(&:setup)
|
7
9
|
|
8
|
-
# Problems:
|
9
|
-
# How can we make this module work with Sage/Savage depending on config?
|
10
|
-
# Do we want to do that?
|
11
|
-
|
12
|
-
# Ideas:
|
13
|
-
# 1. We can make Sage implement to exactly the same interface as Savage and
|
14
|
-
# somehow inject it.
|
15
|
-
# 2. We could also ALWAYS load the sage classed needed here and call these
|
16
|
-
# required.
|
17
|
-
#
|
18
|
-
# I think I prefer 1 even though the syntax of Sage is nicer imo.
|
19
10
|
class << self
|
20
11
|
def p text, **opts
|
21
|
-
C.send "#{
|
12
|
+
C.send "#{prefix(opts)}_content",
|
22
13
|
text: text,
|
23
14
|
**opts
|
24
15
|
end
|
25
16
|
|
26
17
|
def h1 text, **opts
|
27
|
-
C.send "#{
|
18
|
+
C.send "#{prefix(opts)}_title",
|
28
19
|
size: 'h1',
|
29
20
|
text: text
|
30
21
|
end
|
31
22
|
|
32
23
|
def h2 text, **opts
|
33
|
-
C.send "#{
|
24
|
+
C.send "#{prefix(opts)}_title",
|
34
25
|
size: 'h2',
|
35
26
|
text: text
|
36
27
|
end
|
37
28
|
|
38
29
|
def h3 text, **opts
|
39
|
-
C.send "#{
|
30
|
+
C.send "#{prefix(opts)}_title",
|
40
31
|
size: 'h3',
|
41
32
|
text: text
|
42
33
|
end
|
43
34
|
|
44
35
|
def h4 text, **opts
|
45
|
-
C.send "#{
|
36
|
+
C.send "#{prefix(opts)}_title",
|
46
37
|
size: 'h4',
|
47
38
|
text: text
|
48
39
|
end
|
49
40
|
|
50
41
|
def h5 text, **opts
|
51
|
-
C.send "#{
|
42
|
+
C.send "#{prefix(opts)}_title",
|
52
43
|
size: 'h5',
|
53
44
|
text: text
|
54
45
|
end
|
55
46
|
|
56
|
-
def hr color: 'stable-500'
|
57
|
-
C.send "#{
|
47
|
+
def hr color: 'stable-500', **opts
|
48
|
+
C.send "#{prefix}_divider",
|
58
49
|
color: color,
|
59
50
|
height: 1
|
60
51
|
end
|
61
52
|
|
62
|
-
def vertical_spacer height
|
63
|
-
C.send "#{
|
53
|
+
def vertical_spacer height, **opts
|
54
|
+
C.send "#{prefix(opts)}_divider",
|
64
55
|
color: :transparent,
|
65
56
|
height: height
|
66
57
|
end
|
67
58
|
|
68
|
-
def table_row(*cells)
|
69
|
-
{ data: cells }
|
70
|
-
end
|
71
|
-
|
72
|
-
def table_cell(text, action: nil, method: nil, confirm: nil, color: nil)
|
73
|
-
cell = { text: text}
|
74
|
-
cell[:color] = color if color.present?
|
75
|
-
cell[:action] = action if action.present?
|
76
|
-
cell[:customData] = {}
|
77
|
-
cell[:customData]['data-method'] = method if method.present?
|
78
|
-
cell[:customData]['data-confirm'] = confirm if confirm.present?
|
79
|
-
cell
|
80
|
-
end
|
81
|
-
|
82
59
|
private
|
83
60
|
|
84
|
-
def
|
85
|
-
Asbru.config.component_prefix
|
61
|
+
def prefix(opts)
|
62
|
+
opts[:module] || Asbru.config.component_prefix
|
86
63
|
end
|
87
64
|
end
|
88
65
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'react/rails/view_helper'
|
2
|
+
|
1
3
|
module Asbru
|
2
4
|
module Components
|
3
5
|
# This module uses components.json to see what components are available to
|
@@ -9,6 +11,7 @@ module Asbru
|
|
9
11
|
extend ::React::Rails::ViewHelper
|
10
12
|
class << self
|
11
13
|
def setup
|
14
|
+
debugger
|
12
15
|
file = File.open(Rails.root.join('app',
|
13
16
|
'javascript',
|
14
17
|
'components',
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'react/rails/view_helper'
|
2
|
+
|
1
3
|
module Asbru
|
2
4
|
module Components
|
3
5
|
# This module is used to generate react components in the views and loads
|
@@ -6,6 +8,10 @@ module Asbru
|
|
6
8
|
class Savage
|
7
9
|
extend ::React::Rails::ViewHelper
|
8
10
|
class << self
|
11
|
+
def setup
|
12
|
+
# No-op
|
13
|
+
end
|
14
|
+
|
9
15
|
def method_missing(method_id, **opts)
|
10
16
|
if self.respond_to? :method_id
|
11
17
|
super
|
data/lib/asbru/form_builder.rb
CHANGED
@@ -54,10 +54,11 @@ module Asbru
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def render_form_element(attribute, options)
|
57
|
-
new_options = options.
|
57
|
+
new_options = options.reverse_merge(
|
58
58
|
{
|
59
59
|
name: tag_name_for(attribute),
|
60
|
-
errors: errors(attribute)
|
60
|
+
errors: errors(attribute),
|
61
|
+
errorIcon: error_icon
|
61
62
|
}
|
62
63
|
)
|
63
64
|
|
@@ -210,5 +211,11 @@ module Asbru
|
|
210
211
|
)
|
211
212
|
)
|
212
213
|
end
|
214
|
+
|
215
|
+
private
|
216
|
+
|
217
|
+
def error_icon
|
218
|
+
Asbru.config.default_form_error_icon
|
219
|
+
end
|
213
220
|
end
|
214
221
|
end
|
data/lib/asbru/links.rb
CHANGED
@@ -7,9 +7,9 @@ module Asbru
|
|
7
7
|
url,
|
8
8
|
method: nil,
|
9
9
|
link: true,
|
10
|
+
remote: false,
|
10
11
|
confirm: nil,
|
11
12
|
**options)
|
12
|
-
|
13
13
|
options[:text] = text
|
14
14
|
options[:action] = url
|
15
15
|
options[:link] = link
|
@@ -17,7 +17,9 @@ module Asbru
|
|
17
17
|
options[:customData] = {}
|
18
18
|
options[:customData][:'data-method'] = method if method.present?
|
19
19
|
options[:customData][:'data-confirm'] = confirm if confirm.present?
|
20
|
-
options[:customData]
|
20
|
+
options[:customData][:'data-remote'] = remote if remote.present?
|
21
|
+
options[:customData].merge!(options[:custom_data]) if options[:custom_data]
|
22
|
+
|
21
23
|
Asbru::Components::Savage.send "#{Asbru.config.component_prefix}_button",
|
22
24
|
**options
|
23
25
|
end
|
data/lib/asbru/ragna.rb
CHANGED
@@ -5,8 +5,8 @@ require 'asbru/cml'
|
|
5
5
|
|
6
6
|
# We use the C for binding components. We might want to make this configurable
|
7
7
|
# later on
|
8
|
-
::C = Asbru
|
9
|
-
::
|
8
|
+
::C = Asbru.config.component_mode.tap(&:setup)
|
9
|
+
::Cml = Asbru::Cml
|
10
10
|
|
11
11
|
module Asbru
|
12
12
|
module Ragna
|
data/lib/asbru/version.rb
CHANGED
data/lib/asbru.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
require "asbru/railtie"
|
2
2
|
require 'dry-configurable'
|
3
|
+
require 'asbru/components/savage'
|
4
|
+
require 'asbru/components/sage'
|
3
5
|
|
4
6
|
module Asbru
|
5
7
|
extend Dry::Configurable
|
6
|
-
setting :component_prefix,'app'
|
7
|
-
setting :form_builder_prefix, 'app'
|
8
|
+
setting :component_prefix, default: 'app'
|
9
|
+
setting :form_builder_prefix, default: 'app'
|
10
|
+
setting :default_form_error_icon, default: 'icon-error'
|
11
|
+
setting :component_mode, default: Asbru::Components::Savage
|
12
|
+
|
13
|
+
Config = self.config
|
8
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asbru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stev-0
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: Creating component based webpages with short hand syntax.
|
56
70
|
email:
|
57
71
|
- skemp@adflow.io
|
@@ -94,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
108
|
- !ruby/object:Gem::Version
|
95
109
|
version: '0'
|
96
110
|
requirements: []
|
97
|
-
rubygems_version: 3.
|
111
|
+
rubygems_version: 3.2.15
|
98
112
|
signing_key:
|
99
113
|
specification_version: 4
|
100
114
|
summary: Asbru is a tool for creating component based webpages.
|