asbru 0.0.6 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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.