effective_bootstrap 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 5aaa7cc7d4c84e4bae11f5e738e7d12cdff48fe8
4
- data.tar.gz: 03adadec171ae825d08ae109e472eeb9f9a509db
3
+ metadata.gz: c15ada27fcf25cd86f4be05939a3fe2f6eac8efa
4
+ data.tar.gz: 8a30b06554ce24843aafb4a9b3d0fe48f5a95558
5
5
  SHA512:
6
- metadata.gz: 9e799105c161dd2e319a166fb77784c336f47fedf1ab28aca0a5ec4739fb07c1aa6ac9641c4ca479d07dc9b8223b55dbb75e201dc244c6582f85518d9b5a9538
7
- data.tar.gz: bacfcaa14e8e9116cbd525d18be874a902497a4821bd5c329ffd63b7f3a29770ae2a4655ff6882632a380164ce8d70cff4550283672ea71400ceae49583a224a
6
+ metadata.gz: 5d16a0e4831874a52d7494aebe69d35dc8dae64e7abda2b22f1912e98d16bf0b3c44227a1b66ae199fe2dd41d4ae08bd5faa445c541e198b9bb2461db00c32dc
7
+ data.tar.gz: 9552ed89690370d5c1811bf4d3e91216aa265614f8c21976139b5cfaf5c70415d2bb2be861f67dabc4142a0e8be7f0ee2881b001ce4b5b4272f75bf45864b96e
@@ -143,6 +143,57 @@ module EffectiveBootstrapHelper
143
143
  content_tag(:div, '', class: 'dropdown-divider')
144
144
  end
145
145
 
146
+ # Tabs DSL
147
+ # Inserts both the tablist and the tabpanel
148
+
149
+ # = tabs do
150
+ # = tab 'Imports' do
151
+ # %p Imports
152
+
153
+ # = tab 'Exports' do
154
+ # %p Exports
155
+
156
+ # If you pass active 'label' it will make that tab active. Otherwise first.
157
+ # Unique will make sure the tab html IDs are unique
158
+ # $('#tab-demographics').tab('show')
159
+ def tabs(active: nil, unique: false, list: {}, content: {}, &block)
160
+ raise 'expected a block' unless block_given?
161
+
162
+ @_tab_mode = :tablist
163
+ @_tab_active = (active || :first)
164
+ @_tab_unique = ''.object_id if unique
165
+
166
+ content_tag(:ul, {class: 'nav nav-tabs', role: 'tablist'}.merge(list)) do
167
+ yield # Yield to tab the first time
168
+ end +
169
+ content_tag(:div, {class: 'tab-content'}.merge(content)) do
170
+ @_tab_mode = :content
171
+ @_tab_active = (active || :first)
172
+ yield # Yield to tab the second time
173
+ end
174
+ end
175
+
176
+ def tab(label, options = {}, &block)
177
+ controls = options.delete(:controls) || label.to_s.parameterize.gsub('_', '-')
178
+ controls = controls[1..-1] if controls[0] == '#'
179
+ controls = "#{controls}-#{@_tab_unique}" if @_tab_unique
180
+
181
+ active = (@_tab_active == :first || @_tab_active == label)
182
+
183
+ @_tab_active = nil if @_tab_active == :first
184
+
185
+ if @_tab_mode == :tablist # Inserting the label into the tablist top
186
+ content_tag(:li, class: 'nav-item') do
187
+ content_tag(:a, label, id: ('tab-' + controls), class: ['nav-link', ('active' if active)].compact.join(' '), href: '#' + controls, 'aria-controls': controls, 'aria-selected': active.to_s, 'data-toggle': 'tab', role: 'tab')
188
+ end
189
+ else # Inserting the content into the tab itself
190
+ classes = ['tab-pane', 'fade', ('show active' if active), options[:class].presence].compact.join(' ')
191
+ content_tag(:div, id: controls, class: classes, role: 'tabpanel', 'aria-labelledby': ('tab-' + controls)) do
192
+ yield
193
+ end
194
+ end
195
+ end
196
+
146
197
  def merge_class_key(hash, value)
147
198
  return { :class => value } unless hash.kind_of?(Hash)
148
199
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-01 00:00:00.000000000 Z
11
+ date: 2018-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails