card-mod-bootstrap 0.11.2 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/db/migrate_core_cards/20170719163733_update_bootswatch_themes_to_4_beta.rb +1 -2
- data/db/migrate_core_cards/20170726111053_add_bootstrap_mixins.rb +2 -2
- data/db/migrate_core_cards/20170726145012_select2.rb +2 -2
- data/db/migrate_core_cards/20180423160231_migrate_customized_bootstrap_skin.rb +1 -0
- data/db/migrate_core_cards/20180423170283_add_type_bootswatch_skin.rb +1 -0
- data/db/migrate_core_cards/20180425174433_delete_deprecated_skin_cards.rb +1 -0
- data/db/migrate_core_cards/20181129140917_fix_skin_images.rb +0 -1
- data/db/migrate_core_cards/data/20181108181219_migrate_classic_skins_to_bootstrap.rb +1 -0
- data/db/migrate_core_cards/lib/skin.rb +1 -1
- data/lib/card/bootstrap.rb +17 -0
- data/lib/card/bootstrap/basic_tags.rb +26 -0
- data/lib/card/bootstrap/component.rb +110 -0
- data/lib/card/bootstrap/component/carousel.rb +78 -0
- data/lib/card/bootstrap/component/form.rb +67 -0
- data/lib/card/bootstrap/component/horizontal_form.rb +65 -0
- data/lib/card/bootstrap/component/layout.rb +107 -0
- data/lib/card/bootstrap/component/panel.rb +11 -0
- data/lib/card/bootstrap/component_klass.rb +37 -0
- data/lib/card/bootstrap/component_loader.rb +30 -0
- data/lib/card/bootstrap/content.rb +42 -0
- data/lib/card/bootstrap/delegate.rb +18 -0
- data/lib/card/bootstrap/old_component.rb +108 -0
- data/lib/card/bootstrap/tag_method.rb +56 -0
- data/lib/card/bootstrapper.rb +17 -0
- data/lib/card/tab.rb +8 -1
- data/set/abstract/bootstrap_code_file.rb +0 -1
- data/set/abstract/bootswatch_theme.rb +1 -0
- data/set/abstract/bs_badge/tab_badge.haml +1 -1
- data/set/all/bootstrap/dropdown.rb +12 -4
- data/set/all/bootstrap/helper.rb +18 -11
- data/set/all/bootstrap/icon.rb +3 -1
- data/set/all/bootstrap/table.rb +1 -0
- data/set/all/bootstrap/wrapper.rb +2 -4
- data/set/self/bootstrap_core.rb +7 -8
- data/set/type/customized_bootswatch_skin.rb +11 -7
- data/set/type_plus_right/customized_bootswatch_skin/colors.rb +3 -2
- metadata +28 -27
- data/lib/bootstrap.rb +0 -16
- data/lib/bootstrap/basic_tags.rb +0 -26
- data/lib/bootstrap/component.rb +0 -139
- data/lib/bootstrap/component/carousel.rb +0 -68
- data/lib/bootstrap/component/form.rb +0 -65
- data/lib/bootstrap/component/horizontal_form.rb +0 -63
- data/lib/bootstrap/component/layout.rb +0 -95
- data/lib/bootstrap/component/panel.rb +0 -9
- data/lib/bootstrap/component_loader.rb +0 -28
- data/lib/bootstrap/content.rb +0 -40
- data/lib/bootstrap/delegate.rb +0 -16
- data/lib/bootstrap/old_component.rb +0 -103
- data/lib/bootstrap/tag_method.rb +0 -54
- data/lib/bootstrapper.rb +0 -16
@@ -57,19 +57,27 @@ format :html do
|
|
57
57
|
return unless item
|
58
58
|
|
59
59
|
if item.is_a? Array
|
60
|
-
|
60
|
+
formatted_dropdown_list_item item
|
61
61
|
else
|
62
|
-
|
62
|
+
simple_dropdown_list_item item, (active_test == active)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
def formatted_dropdown_list_item item
|
67
|
+
[dropdown_header(item.first), dropdown_array_list(item.second)]
|
68
|
+
end
|
69
|
+
|
70
|
+
def simple_dropdown_list_item item, active
|
71
|
+
"<li class='dropdown-item#{' active' if active}'>#{item}</li>"
|
72
|
+
end
|
73
|
+
|
66
74
|
def split_button_toggle
|
67
|
-
wrap_with
|
75
|
+
wrap_with :a,
|
68
76
|
href: "#",
|
69
77
|
class: "nav-link pl-0 dropdown-toggle dropdown-toggle-split",
|
70
78
|
"data-toggle" => "dropdown",
|
71
79
|
"aria-haspopup" => "true",
|
72
|
-
"aria-expanded" => "false"
|
80
|
+
"aria-expanded" => "false" do
|
73
81
|
'<span class="sr-only">Toggle Dropdown</span>'
|
74
82
|
end
|
75
83
|
end
|
data/set/all/bootstrap/helper.rb
CHANGED
@@ -23,21 +23,28 @@ format :html do
|
|
23
23
|
add_class options[:items], "list-group-item"
|
24
24
|
end
|
25
25
|
|
26
|
-
def list_tag content_or_options=nil, options={}
|
27
|
-
options = content_or_options
|
28
|
-
content = block_given? ? yield : content_or_options
|
29
|
-
content = Array(content)
|
26
|
+
def list_tag content_or_options=nil, options={}, &block
|
27
|
+
content, options = list_tag_content_and_options content_or_options, options, &block
|
30
28
|
default_item_options = options.delete(:items) || {}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
wrap_with (options[:ordered] ? :ol : :ul), options do
|
30
|
+
list_items content, default_item_options
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def list_items content, default_item_options
|
35
|
+
content.map do |item|
|
36
|
+
i_content, i_opts = item
|
37
|
+
i_opts ||= default_item_options
|
38
|
+
wrap_with :li, i_content, i_opts
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
42
|
+
def list_tag_content_and_options content_or_options, options
|
43
|
+
options = content_or_options if block_given?
|
44
|
+
content = block_given? ? yield : content_or_options
|
45
|
+
[Array(content), options]
|
46
|
+
end
|
47
|
+
|
41
48
|
def badge_tag content, options={}
|
42
49
|
add_class options, "badge"
|
43
50
|
wrap_with :span, content, options
|
data/set/all/bootstrap/icon.rb
CHANGED
@@ -96,7 +96,9 @@ format :html do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
def font_awesome_icon_tag icon, opts={}
|
99
|
-
|
99
|
+
|
100
|
+
prepend_class opts,
|
101
|
+
"fa#{'b' if opts.delete :brand} fa-#{icon_class(:font_awesome, icon)}"
|
100
102
|
wrap_with :i, "", opts
|
101
103
|
end
|
102
104
|
|
data/set/all/bootstrap/table.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
format :html do
|
2
2
|
def frame
|
3
|
-
class_up "d0-card-header"
|
3
|
+
class_up "d0-card-header", "card-header"
|
4
4
|
class_up "d0-card-body", "card-body card-text"
|
5
5
|
super
|
6
6
|
end
|
@@ -14,7 +14,5 @@ format :html do
|
|
14
14
|
super
|
15
15
|
end
|
16
16
|
|
17
|
-
def panel_state
|
18
|
-
end
|
17
|
+
def panel_state; end
|
19
18
|
end
|
20
|
-
|
data/set/self/bootstrap_core.rb
CHANGED
@@ -3,13 +3,12 @@ include_set Abstract::BootstrapCodeFile
|
|
3
3
|
def load_stylesheets
|
4
4
|
add_bs_stylesheet "variables"
|
5
5
|
add_bs_subdir "mixins"
|
6
|
-
%w[
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
%w[
|
7
|
+
print reboot type images code grid tables forms buttons transitions dropdown
|
8
|
+
button-group input-group custom-forms nav navbar card breadcrumb pagination badge
|
9
|
+
jumbotron alert progress media list-group close modal tooltip popover carousel
|
10
|
+
].each do |name|
|
11
|
+
add_bs_stylesheet name
|
12
|
+
end
|
12
13
|
add_bs_subdir "utilities"
|
13
14
|
end
|
14
|
-
|
15
|
-
|
@@ -37,13 +37,17 @@ def theme_codename
|
|
37
37
|
end
|
38
38
|
|
39
39
|
event :validate_theme_template, :validate, on: :create do
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
40
|
+
return unless (tname = theme_name) && (etype = theme_error_type)
|
41
|
+
|
42
|
+
errors.add :abort, t("bootstrap_#{etype}", theme_name: tname)
|
43
|
+
end
|
44
|
+
|
45
|
+
def theme_error_type
|
46
|
+
if Card.fetch_type_id(theme_card_name) != Card::BootswatchSkinID
|
47
|
+
:not_valid_theme
|
48
|
+
elsif !Dir.exist? source_dir
|
49
|
+
# puts method(:source_dir).source_location
|
50
|
+
:cannot_source_theme
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
@@ -27,11 +27,12 @@ end
|
|
27
27
|
|
28
28
|
def value_from_variables_card name
|
29
29
|
return unless (var_card = left.variables_card) && var_card.content.present?
|
30
|
+
|
30
31
|
value_from_scss name, var_card.content
|
31
32
|
end
|
32
33
|
|
33
34
|
def definition_regex name
|
34
|
-
/^(?<before>\s*\$#{name}
|
35
|
+
/^(?<before>\s*\$#{name}:\s*)(?<value>.+?)(?<after> !default;)$/
|
35
36
|
end
|
36
37
|
|
37
38
|
def default_value_from_bootstrap name
|
@@ -109,5 +110,5 @@ def replace_values group, prefix=""
|
|
109
110
|
end
|
110
111
|
|
111
112
|
def variable_values_from_params group
|
112
|
-
Env.params
|
113
|
+
Env.params[group]&.slice(*VARIABLE_NAMES[group]) || {}
|
113
114
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card-mod-bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-07-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: card
|
@@ -18,70 +18,70 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.102.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
28
|
+
version: 1.102.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: card-mod-edit
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 0.12.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.12.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: card-mod-bar_and_box
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
49
|
+
version: 0.12.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.12.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: card-mod-style
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.12.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.12.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: card-mod-script
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - '='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
77
|
+
version: 0.12.0
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - '='
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
84
|
+
version: 0.12.0
|
85
85
|
description: ''
|
86
86
|
email:
|
87
87
|
- info@decko.org
|
@@ -226,20 +226,21 @@ files:
|
|
226
226
|
- file/yeti_skin_image/image-medium.png
|
227
227
|
- file/yeti_skin_image/image-original.png
|
228
228
|
- file/yeti_skin_image/image-small.png
|
229
|
-
- lib/bootstrap.rb
|
230
|
-
- lib/bootstrap/basic_tags.rb
|
231
|
-
- lib/bootstrap/component.rb
|
232
|
-
- lib/bootstrap/component/carousel.rb
|
233
|
-
- lib/bootstrap/component/form.rb
|
234
|
-
- lib/bootstrap/component/horizontal_form.rb
|
235
|
-
- lib/bootstrap/component/layout.rb
|
236
|
-
- lib/bootstrap/component/panel.rb
|
237
|
-
- lib/bootstrap/
|
238
|
-
- lib/bootstrap/
|
239
|
-
- lib/bootstrap/
|
240
|
-
- lib/bootstrap/
|
241
|
-
- lib/bootstrap/
|
242
|
-
- lib/
|
229
|
+
- lib/card/bootstrap.rb
|
230
|
+
- lib/card/bootstrap/basic_tags.rb
|
231
|
+
- lib/card/bootstrap/component.rb
|
232
|
+
- lib/card/bootstrap/component/carousel.rb
|
233
|
+
- lib/card/bootstrap/component/form.rb
|
234
|
+
- lib/card/bootstrap/component/horizontal_form.rb
|
235
|
+
- lib/card/bootstrap/component/layout.rb
|
236
|
+
- lib/card/bootstrap/component/panel.rb
|
237
|
+
- lib/card/bootstrap/component_klass.rb
|
238
|
+
- lib/card/bootstrap/component_loader.rb
|
239
|
+
- lib/card/bootstrap/content.rb
|
240
|
+
- lib/card/bootstrap/delegate.rb
|
241
|
+
- lib/card/bootstrap/old_component.rb
|
242
|
+
- lib/card/bootstrap/tag_method.rb
|
243
|
+
- lib/card/bootstrapper.rb
|
243
244
|
- lib/card/lazy_tab.rb
|
244
245
|
- lib/card/tab.rb
|
245
246
|
- lib/javascript/bootstrap_modal_decko.js
|
@@ -2993,7 +2994,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2993
2994
|
- !ruby/object:Gem::Version
|
2994
2995
|
version: '0'
|
2995
2996
|
requirements: []
|
2996
|
-
rubygems_version: 3.
|
2997
|
+
rubygems_version: 3.2.15
|
2997
2998
|
signing_key:
|
2998
2999
|
specification_version: 4
|
2999
3000
|
summary: Bootstrap
|
data/lib/bootstrap.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
require "bootstrap/component_loader"
|
2
|
-
require "bootstrap/component"
|
3
|
-
|
4
|
-
class Bootstrap
|
5
|
-
include Delegate
|
6
|
-
extend ComponentLoader
|
7
|
-
load_components
|
8
|
-
|
9
|
-
def initialize context=nil
|
10
|
-
@context = context
|
11
|
-
end
|
12
|
-
|
13
|
-
def render *args, &block
|
14
|
-
instance_exec *args, &block
|
15
|
-
end
|
16
|
-
end
|
data/lib/bootstrap/basic_tags.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# require 'component'
|
2
|
-
|
3
|
-
class Bootstrap
|
4
|
-
module BasicTags
|
5
|
-
def html content
|
6
|
-
add_content String(content).html_safe
|
7
|
-
""
|
8
|
-
end
|
9
|
-
|
10
|
-
Component.def_div_method :div, nil do |opts, extra_args|
|
11
|
-
prepend_class opts, extra_args.first if extra_args.present?
|
12
|
-
opts
|
13
|
-
end
|
14
|
-
|
15
|
-
Component.def_div_method :span, nil do |opts, extra_args|
|
16
|
-
prepend_class opts, extra_args.first if extra_args.present?
|
17
|
-
opts
|
18
|
-
end
|
19
|
-
|
20
|
-
Component.def_tag_method :tag, nil, tag: :yield do |opts, extra_args|
|
21
|
-
prepend_class opts, extra_args[1] if extra_args[1].present?
|
22
|
-
opts[:tag] = extra_args[0]
|
23
|
-
opts
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/bootstrap/component.rb
DELETED
@@ -1,139 +0,0 @@
|
|
1
|
-
class Bootstrap
|
2
|
-
# render components of bootstrap library
|
3
|
-
class Component
|
4
|
-
def initialize context, *args, &block
|
5
|
-
@context = context
|
6
|
-
@content = ["".html_safe]
|
7
|
-
@args = args
|
8
|
-
@child_args = []
|
9
|
-
@append = []
|
10
|
-
@wrap = []
|
11
|
-
@build_block = block
|
12
|
-
@html = Builder::XmlMarkup.new
|
13
|
-
end
|
14
|
-
|
15
|
-
class << self
|
16
|
-
def render format, *args, &block
|
17
|
-
new(format, *args, &block).render
|
18
|
-
end
|
19
|
-
|
20
|
-
# Like def_tag_method but always generates a div tag
|
21
|
-
# The tag option is not available
|
22
|
-
def def_div_method name, html_class, opts={}, &tag_block
|
23
|
-
def_tag_method name, html_class, opts.merge(tag: :div), &tag_block
|
24
|
-
end
|
25
|
-
|
26
|
-
# Defines a method that generates a html tag
|
27
|
-
# @param method_name [Symbol, String] the name of the method. If no :tag option in tag_opts is defined then the name is also the name of the tag that the method generates
|
28
|
-
# @param html_class [String] a html class that is added to tag. Use nil if you don't want a html_class
|
29
|
-
# @param tag_opts [Hash] additional argument that will be added to the tag
|
30
|
-
# @option tag_opts [Symbol, String] tag the name of the tag
|
31
|
-
# @example
|
32
|
-
# def_tag_method :link, "known-link", tag: :a, id: "uniq-link"
|
33
|
-
# link # => <a class="known-link" id="uniq-link"></a>
|
34
|
-
def def_tag_method method_name, html_class, tag_opts={}, &tag_opts_block
|
35
|
-
tag = tag_opts.delete(:tag) || method_name
|
36
|
-
return def_simple_tag_method method_name, tag, html_class, tag_opts unless block_given?
|
37
|
-
|
38
|
-
define_method method_name do |*args, &content_block|
|
39
|
-
content, opts, new_child_args = standardize_args args, &tag_opts_block
|
40
|
-
add_classes opts, html_class, tag_opts.delete(:optional_classes)
|
41
|
-
|
42
|
-
@html.tag! tag, opts do
|
43
|
-
instance_exec(&content_block)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def def_simple_tag_method method_name, tag, html_class, tag_opts={}
|
49
|
-
define_method method_name do |*args, &content_block|
|
50
|
-
@html.tag! tag, class: html_class do
|
51
|
-
instance_exec &content_block
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def render
|
58
|
-
@rendered = begin
|
59
|
-
render_content
|
60
|
-
# @content[-1]
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def prepend &block
|
65
|
-
tmp = @content.pop
|
66
|
-
instance_exec(&block)
|
67
|
-
@content << tmp
|
68
|
-
end
|
69
|
-
|
70
|
-
def insert &block
|
71
|
-
instance_exec(&block)
|
72
|
-
end
|
73
|
-
|
74
|
-
def append &block
|
75
|
-
@append[-1] << block
|
76
|
-
end
|
77
|
-
|
78
|
-
def wrap tag=nil, &block
|
79
|
-
@wrap[-1] << (block_given? ? block : tag)
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
def render_content
|
85
|
-
# if @build_block.arity > 0
|
86
|
-
instance_exec *@args, &@build_block
|
87
|
-
end
|
88
|
-
|
89
|
-
def generate_content content, processor, &block
|
90
|
-
content = instance_exec &block if block.present?
|
91
|
-
return content if !processor || !content.is_a?(Array)
|
92
|
-
content.each {|item| send processor, item}
|
93
|
-
""
|
94
|
-
end
|
95
|
-
|
96
|
-
def with_child_args args
|
97
|
-
@child_args << args if args.present?
|
98
|
-
yield.tap { @child_args.pop if args.present? }
|
99
|
-
end
|
100
|
-
|
101
|
-
def add_content content
|
102
|
-
@content[-1] << "\n#{content}".html_safe if content.present?
|
103
|
-
end
|
104
|
-
|
105
|
-
def standardize_args args, &block
|
106
|
-
opts = standardize_opts args
|
107
|
-
items = items_from_args args
|
108
|
-
opts, args = standardize_block_args opts, args, &block if block.present?
|
109
|
-
|
110
|
-
[items, opts, args]
|
111
|
-
end
|
112
|
-
|
113
|
-
def standardize_opts args
|
114
|
-
args.last.is_a?(Hash) ? args.pop : {}
|
115
|
-
end
|
116
|
-
|
117
|
-
def items_from_args args
|
118
|
-
((args.one? && args.last.is_a?(String)) || args.last.is_a?(Array)) && args.pop
|
119
|
-
end
|
120
|
-
|
121
|
-
def standardize_block_args opts, args, &block
|
122
|
-
instance_exec(opts, args, &block).tap do |s_opts, _s_args|
|
123
|
-
unless s_opts.is_a? Hash
|
124
|
-
raise Card::Error, "first return value of a tag block has to be a hash"
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
def add_classes opts, html_class, optional_classes
|
130
|
-
prepend_class opts, html_class if html_class
|
131
|
-
Array.wrap(optional_classes).each do |k, v|
|
132
|
-
prepend_class opts, v if opts.delete k
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
include BasicTags
|
137
|
-
include Delegate
|
138
|
-
end
|
139
|
-
end
|