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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbe8a87c74d02a2012130ec1e2e93f3a5d5c52fe32aedfd9d85578e272e866b8
4
- data.tar.gz: 831326c07be46d075d2f71ae17e4b86511278bdc3382368a8d0efb4602d7737d
3
+ metadata.gz: 90a72c9539babb635d139212a66f008dd633e1e0b40182458120600e6c83b59f
4
+ data.tar.gz: 912bf88b22c9ef7db0314833d44d29948b17c07f4722d64ae85700f865d705f8
5
5
  SHA512:
6
- metadata.gz: 19fc868817266c527262c39a589bc5e5a0947de20063bfc613a6c40fa8b71a377b11d9cc7e1963ca12c86ab69ce833f462805a19dbe38c7cc56ebb1791faf360
7
- data.tar.gz: 106625b4ace1db59f41f2060e592793ed05ba07ac18fa20d986171fe8070aff1b88c764678905ba48c3c941b880c2e63b8fe9e35fad382da58c82d0cd295f1ee
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
- module CML
6
- C = Asbru::Components::Savage
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 "#{component_prefix}_content",
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 "#{component_prefix}_title",
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 "#{component_prefix}_title",
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 "#{component_prefix}_title",
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 "#{component_prefix}_title",
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 "#{component_prefix}_title",
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 "#{component_prefix}_divider",
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 "#{component_prefix}_divider",
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 component_prefix
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
@@ -54,10 +54,11 @@ module Asbru
54
54
  end
55
55
 
56
56
  def render_form_element(attribute, options)
57
- new_options = options.merge(
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].merge(options[:custom_data]) if options[:custom_data]
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::Components::Sage.tap(&:setup)
9
- ::CML = Asbru::CML
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
@@ -1,3 +1,3 @@
1
1
  module Asbru
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.10'
3
3
  end
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.6
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-05-19 00:00:00.000000000 Z
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.1.2
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.