bootstrap4_helper 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,7 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
- # @description
2
+ # Simple configuration object for setting options for the gem.
6
3
  #
4
+ # @todo Build a better, more comprehensive system.
7
5
  #
8
6
  class Configuration
9
7
  DEFAULT_SETTINGS = {
@@ -16,18 +14,18 @@ module Bootstrap4Helper
16
14
 
17
15
  attr_accessor(*DEFAULT_SETTINGS.keys)
18
16
 
19
- # @description
20
- # -
17
+ # Class constructor
21
18
  #
22
- # @params [Hash] args
19
+ # @param [Hash] _args
23
20
  # @return [ClassName]
24
21
  #
25
22
  def initialize(_args = {})
26
23
  DEFAULT_SETTINGS.each { |key, value| instance_variable_set("@#{key}", value) }
27
24
  end
28
25
 
29
- # @description
30
- # - Simple predicate method
26
+ # Simple predicate method
27
+ #
28
+ # @return [Boolean]
31
29
  #
32
30
  def autoload_in_views?
33
31
  @autoload_in_views
@@ -1,9 +1,6 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
- # @description
6
- # - Simple class for storing constants
2
+ # Simple class for storing constants
3
+ #
7
4
  #
8
5
  class Constants
9
6
  COMPONENTS = %i[
@@ -1,18 +1,16 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
- # @description
2
+ # Builds a Dropdown component that can be used in other components.
6
3
  #
7
4
  #
8
5
  class Dropdown < Component
9
- # @description
10
- # -
6
+ # Class constructor
11
7
  #
12
- # @param [ActionView] template
8
+ # @param [ActionView] template
13
9
  # @param [Symbol|String] type
14
- # @param [Hash] opts
15
- # @param [Hash]
10
+ # @param [Hash] opts
11
+ # @option opts [String] :id
12
+ # @option opts [String] :class
13
+ # @option opts [Hash] :data
16
14
  #
17
15
  def initialize(template, type = :dropdown, opts = {}, &block)
18
16
  super(template)
@@ -24,13 +22,16 @@ module Bootstrap4Helper
24
22
  @content = block || proc { '' }
25
23
  end
26
24
 
27
- # @description
28
- # - Used to generate a button for the dropdown. The buttons default as just
25
+ # Used to generate a button for the dropdown. The buttons default as just
29
26
  # a button that opens the coresponding dropdown menu. The `split: true` option
30
27
  # make the button just the arrow indicator that open the menu.
31
28
  #
32
- # @param [Symbol] context
33
- # @param [Hash] opts
29
+ # @param [Symbol] context
30
+ # @param [Hash] opts
31
+ # @option opts [Boolean] :split
32
+ # @option opts [String] :id
33
+ # @option opts [String] :class
34
+ # @option opts [Hash] :data
34
35
  # @return [String]
35
36
  #
36
37
  def button(context = :primary, opts = {})
@@ -52,18 +53,21 @@ module Bootstrap4Helper
52
53
  end
53
54
  end
54
55
 
55
- # @description
56
- # - Used to create a new `Dropdown::Menu`
56
+ # Used to create a new `Dropdown::Menu`
57
57
  #
58
- # @param [Hash] opts
58
+ # @param [Hash] opts
59
+ # @option opts [String] :id
60
+ # @option opts [String] :class
61
+ # @option opts [Hash] :data
59
62
  # @return [Dropdown::Menu]
60
63
  #
61
64
  def menu(opts = {}, &block)
62
65
  Menu.new(@template, opts, &block)
63
66
  end
64
67
 
65
- # @description
66
- # -
68
+ # String reprentation of the object.
69
+ #
70
+ # @return [String]
67
71
  #
68
72
  def to_s
69
73
  content_tag :div, id: @id, class: "#{container_class} #{@class}", data: @data do
@@ -73,8 +77,7 @@ module Bootstrap4Helper
73
77
 
74
78
  private
75
79
 
76
- # @description
77
- # - Returns the container class for the dropdown component.
80
+ # Returns the container class for the dropdown component.
78
81
  #
79
82
  # @return [String]
80
83
  #
@@ -1,18 +1,16 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
2
  class Dropdown
6
- # @description
3
+ # Builds a menu component for use in dropdowns.
7
4
  #
8
5
  #
9
6
  class Menu < Component
10
- # @description
11
- # -
7
+ # Class constructor
12
8
  #
13
9
  # @param [ActionView] template
14
10
  # @param [Hash] opts
15
- # @param [Hash]
11
+ # @option opts [String] :id
12
+ # @option opts [String] :class
13
+ # @option opts [Hash] :data
16
14
  #
17
15
  def initialize(template, opts = {}, &block)
18
16
  super(template)
@@ -23,22 +21,30 @@ module Bootstrap4Helper
23
21
  @content = block || proc { '' }
24
22
  end
25
23
 
26
- # @description
27
- # - Use this method when the `item`, `link` in the item in the menu is nothing
24
+ # Use this method when the `item`, `link` in the item in the menu is nothing
28
25
  # more than a hyperlink.
29
26
  #
27
+ # @param [String] name
28
+ # @param [Hash] options
29
+ # @param [Hash] html_options
30
+ # @return [String]
31
+ #
30
32
  def link(name = nil, options = nil, html_options = nil, &block)
31
33
  html_options = (html_options || {}).merge(class: 'dropdown-item')
32
34
 
33
35
  @template.link_to(name, options, html_options, &block)
34
36
  end
35
37
 
36
- # @description
37
- # - Use this method when you are using the item in the menu as trigger for tab
38
+ # Use this method when you are using the item in the menu as trigger for tab
38
39
  # content.
39
40
  #
40
41
  # @param [Symbol|String] target
41
42
  # @param [Hash] opts
43
+ # @option opts [String] :id
44
+ # @option opts [String] :class
45
+ # @option opts [Hash] :data
46
+ # @option opts [Hash] :aria
47
+ # @return [String]
42
48
  #
43
49
  def item(target, opts = {})
44
50
  id = opts.fetch(:id, nil)
@@ -58,35 +64,43 @@ module Bootstrap4Helper
58
64
  end
59
65
  end
60
66
 
61
- # @description
62
- # - Builds a Text component
67
+ # Builds a Text component
63
68
  #
64
- # @param [Symbol|String] text
65
- # @param [Hash] opts
69
+ # @param [Symbol|String] text
70
+ # @param [Hash] opts
71
+ # @option opts [String] :id
72
+ # @option opts [String] :class
73
+ # @option opts [Hash] :data
74
+ # @return [String]
66
75
  #
67
76
  def text(text, opts = {}, &block)
68
77
  build_sub_component :span, text, 'item-text', opts, &block
69
78
  end
70
79
 
71
- # @description
72
- # - Builds a Header component
80
+ # Builds a Header component
73
81
  #
74
- # @param [Symbol|String] text
75
- # @param [Hash] opts
82
+ # @param [Symbol|String] text
83
+ # @param [Hash] opts
84
+ # @option opts [String] :id
85
+ # @option opts [String] :class
86
+ # @option opts [Hash] :data
87
+ # @return [String]
76
88
  #
77
89
  def header(text, opts = {}, &block)
78
90
  build_sub_component :h6, text, 'header', opts, &block
79
91
  end
80
92
 
81
- # @description
82
- # - Builds a divider element
93
+ # Builds a divider element
94
+ #
95
+ # @return [String]
83
96
  #
84
97
  def divider
85
98
  content_tag :div, '', class: 'dropdown-divider'
86
99
  end
87
100
 
88
- # @description
89
- # -
101
+ # String representation of the object.
102
+ #
103
+ # @return [String]
90
104
  #
91
105
  def to_s
92
106
  content_tag :div, id: @id, class: "dropdown-menu #{@class}", data: @data do
@@ -96,13 +110,16 @@ module Bootstrap4Helper
96
110
 
97
111
  private
98
112
 
99
- # @description
100
- # - Used to build specific components.
113
+ # Used to build specific components.
101
114
  #
102
115
  # @param [Symbol] tag
103
116
  # @param [Symbol|String] text
104
117
  # @param [Symbol|String] type
105
118
  # @param [Hash] opts
119
+ # @option opts [String] :id
120
+ # @option opts [String] :class
121
+ # @option opts [Hash] :data
122
+ # @return [String]
106
123
  #
107
124
  def build_sub_component(tag, text, type, opts)
108
125
  id = opts.fetch(:id, nil)
@@ -1,17 +1,12 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
- # @description
6
- # - Naming convention used as to not pollute views where the module is
2
+ # Naming convention used as to not pollute views where the module is
7
3
  # included. @config is a common instance variable name. We don't want
8
4
  # to risk overriding another developers variable.
9
5
  #
10
6
  @_bs4h_config = Configuration.new
11
7
 
12
8
  class << self
13
- # @description
14
- # - Simple interface for exposing the configuration object.
9
+ # Simple interface for exposing the configuration object.
15
10
  #
16
11
  # @return [Bootstrap4Helper::Configuration]
17
12
  #
@@ -1,16 +1,17 @@
1
- # @root
2
- #
3
- #
4
1
  module Bootstrap4Helper
5
- # @description
2
+ # Builds a Modal window component.
6
3
  #
7
4
  #
8
5
  class Modal < Component
9
- # @description
10
- # -
6
+ # Class constructor
11
7
  #
12
- # @param [ActionView] template
13
- # @param [Hash]
8
+ # @param [ActionView] template
9
+ # @param [Hash] opts
10
+ # @option opts [String] :id
11
+ # @option opts [String] :class
12
+ # @option opts [Hash] :data
13
+ # @option opts [Boolean] :scrollable
14
+ # @option opts [Boolean] :vcentered
14
15
  #
15
16
  def initialize(template, opts = {}, &block)
16
17
  super(template)
@@ -23,46 +24,59 @@ module Bootstrap4Helper
23
24
  @content = block || proc { '' }
24
25
  end
25
26
 
26
- # @description
27
- # - Build the header component for the modal.
27
+ # Build the header component for the modal.
28
28
  #
29
- # @param [Hash] opts
29
+ # @param [Hash] opts
30
+ # @option opts [String] :id
31
+ # @option opts [String] :class
32
+ # @option opts [Hash] :data
33
+ # @return [String]
30
34
  #
31
35
  def header(opts = {}, &block)
32
36
  build_main_component :header, opts, &block
33
37
  end
34
38
 
35
- # @description
36
- # - Builds the body component.
39
+ # Builds the body component.
37
40
  #
38
- # @param [Hash] opts
41
+ # @param [Hash] opts
42
+ # @option opts [String] :id
43
+ # @option opts [String] :class
44
+ # @option opts [Hash] :data
45
+ # @return [String]
39
46
  #
40
47
  def body(opts = {}, &block)
41
48
  build_main_component :body, opts, &block
42
49
  end
43
50
 
44
- # @description
45
- # - Builds the footer component.
51
+ # Builds the footer component.
46
52
  #
47
- # @param [Hash] opts
53
+ # @param [Hash] opts
54
+ # @option opts [String] :id
55
+ # @option opts [String] :class
56
+ # @option opts [Hash] :data
57
+ # @return [String]
48
58
  #
49
59
  def footer(opts = {}, &block)
50
60
  build_main_component :footer, opts, &block
51
61
  end
52
62
 
53
- # @description
54
- # - Builds a title component.
63
+ # Builds a title component.
55
64
  #
56
- # @param [Hash] opts
65
+ # @param [Hash] opts
66
+ # @option opts [String] :id
67
+ # @option opts [String] :class
68
+ # @option opts [Hash] :data
69
+ # @return [String]
57
70
  #
58
71
  def title(opts = {}, &block)
59
72
  build_sub_component :h5, :title, opts, &block
60
73
  end
61
74
 
62
- # @description
63
- # - Builds a close button component.
75
+ # Builds a close button component.
64
76
  #
65
- # @param [Hash] opts
77
+ # @param [Hash] opts
78
+ # @option opts [String] :class
79
+ # @return [String]
66
80
  #
67
81
  def close_button(opts = {})
68
82
  klass = opts.fetch(:class, '')
@@ -78,8 +92,9 @@ module Bootstrap4Helper
78
92
  end
79
93
  end
80
94
 
81
- # @description
82
- # -
95
+ # String representation of the object.
96
+ #
97
+ # @return [String]
83
98
  #
84
99
  def to_s
85
100
  content_tag :div, id: @id, class: "modal #{@class}", tabindex: -1, role: 'dialog', data: @data do
@@ -91,22 +106,25 @@ module Bootstrap4Helper
91
106
 
92
107
  private
93
108
 
94
- # @description
95
- # - Used to build main components, usually divs.
109
+ # Used to build main components, usually divs.
96
110
  #
97
- # @param [Symbol|String] type
98
- # @param [Hash] opts
111
+ # @param [Symbol|String] type
112
+ # @param [Hash] opts
113
+ # @return [String]
99
114
  #
100
115
  def build_main_component(type, opts = {}, &block)
101
116
  build_sub_component :div, type, opts, &block
102
117
  end
103
118
 
104
- # @description
105
- # - Used to build more specific components.
119
+ # Used to build more specific components.
106
120
  #
107
121
  # @param [Symbol] tag
108
122
  # @param [Symbol|String] type
109
123
  # @param [Hash] opts
124
+ # @option opts [String] :id
125
+ # @option opts [String] :class
126
+ # @option opts [Hash] :data
127
+ # @return [String]
110
128
  #
111
129
  def build_sub_component(tag, type, opts = {}, &block)
112
130
  id = opts.fetch(:id, nil)
@@ -122,15 +140,15 @@ module Bootstrap4Helper
122
140
  )
123
141
  end
124
142
 
125
- # @description
126
- # - Builds the `x` button normally used in the header.
143
+ # Builds the `x` button normally used in the header.
144
+ #
145
+ # @return [String]
127
146
  #
128
147
  def xbutton
129
148
  content_tag :span, '&times;'.html_safe, aria: { hidden: true }
130
149
  end
131
150
 
132
- # @description
133
- # - Gets the scrollable CSS class.
151
+ # Gets the scrollable CSS class.
134
152
  #
135
153
  # @return [String]
136
154
  #
@@ -138,8 +156,7 @@ module Bootstrap4Helper
138
156
  @scrollable ? 'modal-dialog-scrollable' : ''
139
157
  end
140
158
 
141
- # @description
142
- # - Gets the vertical-center CSS class.
159
+ # Gets the vertical-center CSS class.
143
160
  #
144
161
  # @return [String]
145
162
  #