bootstrap4_helper 1.0.3 → 1.2.1

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: 78201a1c6efa4fad1cb4a5489087e06db43745690bbaad9b6ce0160f6554e275
4
- data.tar.gz: 3e2ffea2ffbabf3593e11cffe67d17197a727a09307bbb5d1d79c4f83cb94964
3
+ metadata.gz: 201fec26b2a05fac10b958a08380937f58b38be45b6b67f90352c12871769206
4
+ data.tar.gz: f171f43fdb7db816c1761cf0e6c2826acaa2f0b69c78a6169f1c936bca397e1e
5
5
  SHA512:
6
- metadata.gz: 8e1a0df92a1a91df6b386ab461351031ca4b19c72e09cfa108a6786cbdd08cee47a0e420c1729d200fb8d23e785f9c9ce2a354a51634443dc36674faf5b3a5c1
7
- data.tar.gz: bb028d7f005b150bb129055562750ad4ee64e17e392b9a41b1cd50906419394563a385e09956904c56b91e614ff96e04b98dfe2d68c31ae66ffbbaeb5df7c8c8
6
+ metadata.gz: 8a63ba3c1dae1b90cc9536696475891621305c5025fbb1ed6a7ab64a6f3ea9c7b6a2ef58f773c1823c3037f0690c73331afb71daddfd480b3f63a96371732bae
7
+ data.tar.gz: 8978545cf5212adfea6062ac7d34f7fd245f556128bdeae01d753fc1c7832c11e48855974498b6034a63238005b25f3609e5ee2ae8feb09f1c4c2ca2f0f955a3
@@ -448,6 +448,15 @@ module Bootstrap4Helper
448
448
  Nav.new(self, opts, &block)
449
449
  end
450
450
 
451
+ # Generates a page header, similiar to bootstrap 3
452
+ #
453
+ # @param [Hash] opts
454
+ # @return [String]
455
+ #
456
+ def page_header_helper(opts = {}, &block)
457
+ PageHeader.new(self, opts, &block)
458
+ end
459
+
451
460
  # Generates a Tab component.
452
461
  #
453
462
  # ```erb
@@ -7,29 +7,31 @@ module Bootstrap4Helper
7
7
  title
8
8
  text
9
9
  image_overlay
10
+ footer
10
11
  ].freeze
11
12
 
12
13
  # Class constructor
13
- # -
14
14
  #
15
15
  # @param [ActionView] template
16
16
  # @param [Hash] opts
17
- # @option opts [String] :id
18
- # @option opts [String] :class
19
- # @option opts [Hash] :data
20
- # @option opts [String] :parent
21
- # @option opts [String] :target
17
+ # @option opts [String] :id
18
+ # @option opts [String] :class
19
+ # @option opts [Hash] :data
20
+ # @option opts [String] :parent
21
+ # @option opts [String] :target
22
+ # @option opts [Boolean] :expanded
22
23
  #
23
24
  def initialize(template, opts = {}, &block)
24
25
  super(template)
25
26
 
26
- @id = opts.fetch(:id, uuid)
27
- @class = opts.fetch(:class, '')
28
- @data = opts.fetch(:data, {})
29
- @parent = opts.fetch(:parent, nil)
30
- @target = @data.fetch(:target, uuid)
31
- @content = block || proc { '' }
32
- @card = Card.new(@template)
27
+ @id = opts.fetch(:id, uuid)
28
+ @class = opts.fetch(:class, '')
29
+ @data = opts.fetch(:data, {})
30
+ @parent = opts.fetch(:parent, nil)
31
+ @expanded = opts.fetch(:expanded, false)
32
+ @target = @data.fetch(:target, uuid)
33
+ @content = block || proc { '' }
34
+ @card = Card.new(@template)
33
35
  end
34
36
 
35
37
  # Builds a header component for the accordion, which is actually the header
@@ -60,9 +62,11 @@ module Bootstrap4Helper
60
62
  # @return [String]
61
63
  #
62
64
  def body(opts = {}, &block)
63
- data = { parent: "##{@parent}" } if @parent.present?
65
+ data = { parent: "##{@parent}" } if @parent.present?
66
+ klass = 'collapse'
67
+ klass += ' show' if @expanded
64
68
 
65
- content_tag :div, id: @target, class: 'collapse', data: data do
69
+ content_tag :div, id: @target, class: klass, data: data do
66
70
  @card.body(opts, &block)
67
71
  end
68
72
  end
@@ -82,7 +86,7 @@ module Bootstrap4Helper
82
86
  end
83
87
  end
84
88
 
85
- # Checks if the Object reponds to missing.
89
+ # Checks if the Object reponds to missing.
86
90
  #
87
91
  #
88
92
  def respond_to_missing?(method, include_private = false)
@@ -95,7 +99,7 @@ module Bootstrap4Helper
95
99
  # @return [String]
96
100
  #
97
101
  def to_s
98
- content_tag :div, class: "card #{@class}", data: @data do
102
+ content_tag :div, id: @id, class: "card #{@class}", data: @data.except(:target) do
99
103
  @content.call(self)
100
104
  end
101
105
  end
@@ -9,7 +9,8 @@ module Bootstrap4Helper
9
9
  card_title: :h5,
10
10
  card_text: :p,
11
11
  accordion_header: :h5,
12
- badge: :span
12
+ badge: :span,
13
+ page_header: :h1
13
14
  }.freeze
14
15
 
15
16
  attr_accessor(*DEFAULT_SETTINGS.keys)
@@ -19,6 +19,7 @@ module Bootstrap4Helper
19
19
  dropdown/menu
20
20
  modal
21
21
  nav
22
+ page_header
22
23
  spinner
23
24
  tab
24
25
  tab/content
@@ -12,6 +12,7 @@ module Bootstrap4Helper
12
12
  # @option opts [Hash] :data
13
13
  # @option opts [Boolean] :scrollable
14
14
  # @option opts [Boolean] :vcentered
15
+ # @option opts [Symbol] :size
15
16
  #
16
17
  def initialize(template, opts = {}, &block)
17
18
  super(template)
@@ -21,6 +22,7 @@ module Bootstrap4Helper
21
22
  @data = opts.fetch(:data, {})
22
23
  @scrollable = opts.fetch(:scrollable, false)
23
24
  @vcentered = opts.fetch(:vcentered, false)
25
+ @size = opts.fetch(:size, nil)
24
26
  @content = block || proc { '' }
25
27
  end
26
28
 
@@ -83,10 +85,10 @@ module Bootstrap4Helper
83
85
 
84
86
  content_tag(
85
87
  :button,
86
- type: 'button',
88
+ type: 'button',
87
89
  class: block_given? ? klass : 'close',
88
- data: { dismiss: 'modal' },
89
- aria: { label: 'Close' }
90
+ data: { dismiss: 'modal' },
91
+ aria: { label: 'Close' }
90
92
  ) do
91
93
  block_given? ? yield : xbutton
92
94
  end
@@ -98,7 +100,7 @@ module Bootstrap4Helper
98
100
  #
99
101
  def to_s
100
102
  content_tag :div, id: @id, class: "modal #{@class}", tabindex: -1, role: 'dialog', data: @data do
101
- content_tag :div, class: "modal-dialog #{scrollable} #{vcentered}", role: 'document' do
103
+ content_tag :div, class: "modal-dialog #{size} #{scrollable} #{vcentered}", role: 'document' do
102
104
  content_tag(:div, class: 'modal-content') { @content.call(self) }
103
105
  end
104
106
  end
@@ -133,9 +135,9 @@ module Bootstrap4Helper
133
135
 
134
136
  content_tag(
135
137
  tag,
136
- id: id,
138
+ id: id,
137
139
  class: "modal-#{type} #{klass}",
138
- data: data,
140
+ data: data,
139
141
  &block
140
142
  )
141
143
  end
@@ -163,5 +165,22 @@ module Bootstrap4Helper
163
165
  def vcentered
164
166
  @vcentered ? 'modal-dialog-centered' : ''
165
167
  end
168
+
169
+ # Gets the size of the modal window.
170
+ #
171
+ # @return [String]
172
+ #
173
+ def size
174
+ case @size
175
+ when :xlarge
176
+ 'modal-xl'
177
+ when :large
178
+ 'modal-lg'
179
+ when :small
180
+ 'modal-sm'
181
+ else
182
+ ''
183
+ end
184
+ end
166
185
  end
167
186
  end
@@ -0,0 +1,38 @@
1
+ module Bootstrap4Helper
2
+ # Builds a simple CSS spinner component.
3
+ #
4
+ #
5
+ class PageHeader < Component
6
+ # Class constructor
7
+ #
8
+ # @param [ActionView] template
9
+ # @param [Hash] opts
10
+ # @option opts [String] :id
11
+ # @option opts [String] :class
12
+ # @option opts [Hash] :data
13
+ #
14
+ def initialize(template, opts = {}, &block)
15
+ super(template)
16
+
17
+ @id = opts.fetch(:id, uuid)
18
+ @class = opts.fetch(:class, '')
19
+ @data = opts.fetch(:data, {})
20
+ @content = block || proc { '' }
21
+ end
22
+
23
+ # String representation of the object.
24
+ #
25
+ # @return [String]
26
+ #
27
+ def to_s
28
+ content_tag(
29
+ config(:page_header, :h1),
30
+ id: @id,
31
+ class: "pb-2 mt-4 mb-2 border-bottom #{@class}",
32
+ data: @data
33
+ ) do
34
+ @content.call(self)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -24,18 +24,19 @@ module Bootstrap4Helper
24
24
  # Builds the pane for the tab.
25
25
  #
26
26
  # @param [Symbol] source
27
- # @param [Hash] opts
27
+ # @param [Hash] opts
28
28
  # @option opts [String] :class
29
29
  # @option opts [Hash] :data
30
30
  # @return [String]
31
31
  #
32
32
  def pane(source, opts = {}, &block)
33
+ id = opts.fetch(:id, source)
33
34
  klass = opts.fetch(:class, '')
34
35
  data = opts.fetch(:data, {})
35
36
 
36
37
  content_tag(
37
38
  :div,
38
- id: source,
39
+ id: id,
39
40
  class: "tab-pane #{klass}",
40
41
  role: 'tabpanel',
41
42
  data: data,
@@ -1,3 +1,3 @@
1
1
  module Bootstrap4Helper
2
- VERSION = '1.0.3'.freeze
2
+ VERSION = '1.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap4_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert David
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-07 00:00:00.000000000 Z
11
+ date: 2021-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -156,6 +156,7 @@ files:
156
156
  - lib/bootstrap4_helper/initialize.rb
157
157
  - lib/bootstrap4_helper/modal.rb
158
158
  - lib/bootstrap4_helper/nav.rb
159
+ - lib/bootstrap4_helper/page_header.rb
159
160
  - lib/bootstrap4_helper/railtie.rb
160
161
  - lib/bootstrap4_helper/spinner.rb
161
162
  - lib/bootstrap4_helper/tab.rb
@@ -181,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
182
  - !ruby/object:Gem::Version
182
183
  version: '0'
183
184
  requirements: []
184
- rubygems_version: 3.1.3
185
+ rubygems_version: 3.0.1
185
186
  signing_key:
186
187
  specification_version: 4
187
188
  summary: Library for rapidly building bootstrap 4 components