bootstrap_leather 0.9.4 → 0.10.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +23 -0
  4. data/.rubocop_todo.yml +12 -0
  5. data/.ruby-gemset +1 -1
  6. data/.ruby-version +1 -1
  7. data/.travis.yml +5 -0
  8. data/Gemfile +40 -7
  9. data/LICENSE.txt +1 -1
  10. data/README.md +260 -0
  11. data/Rakefile +35 -20
  12. data/VERSION +1 -1
  13. data/app/helpers/bootstrap_leather/alerts_helper.rb +36 -0
  14. data/app/helpers/bootstrap_leather/application_helper.rb +21 -0
  15. data/app/helpers/bootstrap_leather/badges_helper.rb +21 -0
  16. data/app/helpers/bootstrap_leather/carousels_helper.rb +32 -0
  17. data/app/helpers/bootstrap_leather/foot_helper.rb +14 -0
  18. data/app/helpers/bootstrap_leather/grid_helper.rb +10 -0
  19. data/app/helpers/bootstrap_leather/head_helper.rb +67 -0
  20. data/app/helpers/bootstrap_leather/hero_unit_helper.rb +14 -0
  21. data/app/helpers/bootstrap_leather/icons_helper.rb +33 -0
  22. data/app/helpers/bootstrap_leather/modals_helper.rb +20 -0
  23. data/app/helpers/bootstrap_leather/navigation_helper.rb +71 -0
  24. data/app/helpers/bootstrap_leather/tabs_helper.rb +28 -0
  25. data/app/helpers/bootstrap_leather/thumbnails_helper.rb +13 -0
  26. data/app/helpers/bootstrap_leather/typography_helper.rb +38 -0
  27. data/app/helpers/bootstrap_leather/widgets_helper.rb +29 -0
  28. data/app/views/bootstrap_leather/{_alert.html.haml → alerts/_alert.html.haml} +1 -1
  29. data/app/views/bootstrap_leather/{_alert_flash_messages.html.haml → alerts/_alert_flash_messages.html.haml} +0 -0
  30. data/app/views/bootstrap_leather/{_badge.html.haml → badges/_badge.html.haml} +1 -1
  31. data/app/views/bootstrap_leather/badges/_badge_to.html.haml +3 -0
  32. data/app/views/bootstrap_leather/{_carousel.html.haml → carousels/_carousel.html.haml} +0 -0
  33. data/app/views/bootstrap_leather/{_carousel_with_thumbnails.html.haml → carousels/_carousel_with_thumbnails.html.haml} +0 -0
  34. data/app/views/bootstrap_leather/{_footer_javascript.html.haml → foot/_footer_javascript.html.haml} +0 -0
  35. data/app/views/bootstrap_leather/{_head_css.html.haml → head/_head_css.html.haml} +0 -0
  36. data/app/views/bootstrap_leather/{_hero_unit.html.haml → hero_unit/_hero_unit.html.haml} +0 -0
  37. data/app/views/bootstrap_leather/{_icon.html.haml → icons/_icon.html.haml} +0 -0
  38. data/app/views/bootstrap_leather/{_icon_button_to.html.haml → icons/_icon_button_to.html.haml} +0 -0
  39. data/app/views/bootstrap_leather/{_icon_link_to.html.haml → icons/_icon_link_to.html.haml} +0 -0
  40. data/app/views/bootstrap_leather/{_modal.html.haml → modals/_modal.html.haml} +2 -2
  41. data/app/views/bootstrap_leather/navigation/_dropdown_nav_item.html.haml +6 -0
  42. data/app/views/bootstrap_leather/navigation/_hamburger_menu.html.haml +6 -0
  43. data/app/views/bootstrap_leather/{_logo_and_title.html.haml → navigation/_logo_and_title.html.haml} +0 -0
  44. data/app/views/bootstrap_leather/{_nav_heading.html.haml → navigation/_nav_heading.html.haml} +0 -0
  45. data/app/views/bootstrap_leather/{_nav_item.html.haml → navigation/_nav_item.html.haml} +0 -0
  46. data/app/views/bootstrap_leather/{_nav_list.html.haml → navigation/_nav_list.html.haml} +0 -0
  47. data/app/views/bootstrap_leather/navigation/_navbar.html.haml +14 -0
  48. data/app/views/bootstrap_leather/navigation/_navbar_contents.html.haml +5 -0
  49. data/app/views/bootstrap_leather/tabs/_tabs.html.haml +10 -0
  50. data/app/views/bootstrap_leather/{_thumbnail.html.haml → thumbnails/_thumbnail.html.haml} +0 -0
  51. data/app/views/bootstrap_leather/{_definition_list.html.haml → typography/_dl.html.haml} +0 -0
  52. data/app/views/bootstrap_leather/{_page_header.html.haml → typography/_page_header.html.haml} +1 -1
  53. data/app/views/bootstrap_leather/widgets/_widgets.html.haml +10 -0
  54. data/bin/rails +15 -0
  55. data/bootstrap_leather.gemspec +219 -57
  56. data/config/locales/en.yml +9 -0
  57. data/lib/bootstrap_leather/configuration.rb +16 -12
  58. data/lib/bootstrap_leather/engine.rb +19 -4
  59. data/lib/bootstrap_leather/localization.rb +20 -18
  60. data/lib/bootstrap_leather/version.rb +4 -1
  61. data/lib/bootstrap_leather.rb +6 -2
  62. data/lib/generators/bootstrap_leather/install/install_generator.rb +21 -19
  63. data/lib/generators/bootstrap_leather/install/templates/initializer.rb +3 -1
  64. data/lib/generators/bootstrap_leather/utils.rb +13 -4
  65. data/lib/templates/erb/scaffold/_form.html.erb +11 -0
  66. data/lib/templates/erb/scaffold/edit.html.erb +9 -0
  67. data/lib/templates/erb/scaffold/index.html.erb +29 -0
  68. data/lib/templates/erb/scaffold/new.html.erb +7 -0
  69. data/lib/templates/erb/scaffold/show.html.erb +12 -0
  70. data/lib/templates/haml/scaffold/_form.html.haml +10 -0
  71. data/lib/templates/haml/scaffold/edit.html.haml +8 -0
  72. data/lib/templates/haml/scaffold/index.html.haml +21 -0
  73. data/lib/templates/haml/scaffold/new.html.haml +6 -0
  74. data/lib/templates/haml/scaffold/show.html.haml +10 -0
  75. data/spec/dummy/Rakefile +9 -0
  76. data/spec/dummy/app/assets/images/.keep +0 -0
  77. data/spec/dummy/app/assets/javascripts/application.js +16 -0
  78. data/spec/dummy/app/assets/stylesheets/application.scss +19 -0
  79. data/spec/dummy/app/assets/stylesheets/bootstrap-everything.scss +54 -0
  80. data/spec/dummy/app/controllers/application_controller.rb +6 -0
  81. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  82. data/spec/dummy/app/controllers/doo_dads_controller.rb +58 -0
  83. data/spec/dummy/app/controllers/erbits_controller.rb +58 -0
  84. data/spec/dummy/app/controllers/whatzits_controller.rb +58 -0
  85. data/spec/dummy/app/helpers/application_helper.rb +4 -0
  86. data/spec/dummy/app/mailers/application_mailer.rb +6 -0
  87. data/spec/dummy/app/models/application_record.rb +5 -0
  88. data/spec/dummy/app/models/concerns/.keep +0 -0
  89. data/spec/dummy/app/models/doo_dad.rb +3 -0
  90. data/spec/dummy/app/models/erbit.rb +2 -0
  91. data/spec/dummy/app/models/whatzit.rb +2 -0
  92. data/spec/dummy/app/views/doo_dads/_form.html.haml +16 -0
  93. data/spec/dummy/app/views/doo_dads/edit.html.haml +7 -0
  94. data/spec/dummy/app/views/doo_dads/index.html.haml +23 -0
  95. data/spec/dummy/app/views/doo_dads/new.html.haml +5 -0
  96. data/spec/dummy/app/views/doo_dads/show.html.haml +12 -0
  97. data/spec/dummy/app/views/erbits/_form.html.erb +5 -0
  98. data/spec/dummy/app/views/erbits/edit.html.erb +9 -0
  99. data/spec/dummy/app/views/erbits/index.html.erb +27 -0
  100. data/spec/dummy/app/views/erbits/new.html.erb +7 -0
  101. data/spec/dummy/app/views/erbits/show.html.erb +12 -0
  102. data/spec/dummy/app/views/layouts/application.html.haml +22 -0
  103. data/spec/dummy/app/views/pages/index.html.haml +1 -0
  104. data/spec/dummy/app/views/pages/style_guide.html.haml +801 -0
  105. data/spec/dummy/app/views/whatzits/_form.html.haml +4 -0
  106. data/spec/dummy/app/views/whatzits/edit.html.haml +8 -0
  107. data/spec/dummy/app/views/whatzits/index.html.haml +19 -0
  108. data/spec/dummy/app/views/whatzits/new.html.haml +6 -0
  109. data/spec/dummy/app/views/whatzits/show.html.haml +10 -0
  110. data/spec/dummy/bin/bundle +5 -0
  111. data/spec/dummy/bin/rails +6 -0
  112. data/spec/dummy/bin/rake +6 -0
  113. data/spec/dummy/bin/setup +36 -0
  114. data/spec/dummy/bin/update +31 -0
  115. data/spec/dummy/config/application.rb +36 -0
  116. data/spec/dummy/config/boot.rb +7 -0
  117. data/spec/dummy/config/cable.yml +9 -0
  118. data/spec/dummy/config/database.yml +25 -0
  119. data/spec/dummy/config/environment.rb +7 -0
  120. data/spec/dummy/config/environments/development.rb +57 -0
  121. data/spec/dummy/config/environments/test.rb +45 -0
  122. data/spec/dummy/config/initializers/application_controller_renderer.rb +7 -0
  123. data/spec/dummy/config/initializers/assets.rb +14 -0
  124. data/spec/dummy/config/initializers/backtrace_silencers.rb +10 -0
  125. data/spec/dummy/config/initializers/bootstrap_leather.rb +9 -0
  126. data/spec/dummy/config/initializers/cookies_serializer.rb +7 -0
  127. data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  128. data/spec/dummy/config/initializers/high_voltage.rb +5 -0
  129. data/spec/dummy/config/initializers/inflections.rb +17 -0
  130. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  131. data/spec/dummy/config/initializers/new_framework_defaults.rb +29 -0
  132. data/spec/dummy/config/initializers/session_store.rb +5 -0
  133. data/spec/dummy/config/initializers/wrap_parameters.rb +17 -0
  134. data/spec/dummy/config/locales/en.yml +23 -0
  135. data/spec/dummy/config/puma.rb +49 -0
  136. data/spec/dummy/config/routes.rb +8 -0
  137. data/spec/dummy/config/secrets.yml +22 -0
  138. data/spec/dummy/config/spring.rb +8 -0
  139. data/spec/dummy/config.ru +7 -0
  140. data/spec/dummy/db/migrate/20170407151055_create_doo_dads.rb +10 -0
  141. data/spec/dummy/db/migrate/20170408145839_create_whatzits.rb +10 -0
  142. data/spec/dummy/db/migrate/20170408161201_create_erbits.rb +10 -0
  143. data/spec/dummy/db/schema.rb +36 -0
  144. data/spec/dummy/db/seeds.rb +7 -0
  145. data/spec/dummy/db/test.sqlite3 +0 -0
  146. data/spec/factories/doo_dad.rb +6 -0
  147. data/spec/factories/erbit.rb +6 -0
  148. data/spec/factories/whatzit.rb +6 -0
  149. data/spec/helpers/bootstrap_leather/alerts_helper_spec.rb +62 -0
  150. data/spec/helpers/bootstrap_leather/badges_helper_spec.rb +41 -0
  151. data/spec/helpers/bootstrap_leather/carousels_helper_spec.rb +44 -0
  152. data/spec/helpers/bootstrap_leather/foot_helper_spec.rb +20 -0
  153. data/spec/helpers/bootstrap_leather/grid_helper_spec.rb +10 -0
  154. data/spec/helpers/bootstrap_leather/head_helper_spec.rb +82 -0
  155. data/spec/helpers/bootstrap_leather/hero_unit_helper_spec.rb +20 -0
  156. data/spec/helpers/bootstrap_leather/icon_helper_spec.rb +48 -0
  157. data/spec/helpers/bootstrap_leather/modals_helper_spec.rb +22 -0
  158. data/spec/helpers/bootstrap_leather/navigation_helper_spec.rb +110 -0
  159. data/spec/helpers/bootstrap_leather/tabs_helper_spec.rb +39 -0
  160. data/spec/helpers/bootstrap_leather/thumbnails_helper_spec.rb +20 -0
  161. data/spec/helpers/bootstrap_leather/typography_helper_spec.rb +43 -0
  162. data/spec/helpers/bootstrap_leather/widgets_helper_spec.rb +22 -0
  163. data/spec/rails_helper.rb +88 -0
  164. data/spec/spec_helper.rb +102 -0
  165. metadata +360 -44
  166. data/.document +0 -5
  167. data/README.rdoc +0 -194
  168. data/app/helpers/bootstrap_leather_helper.rb +0 -232
  169. data/app/views/bootstrap_leather/_badge_to.html.haml +0 -4
  170. data/app/views/bootstrap_leather/_dropdown_nav_item.html.haml +0 -11
  171. data/app/views/bootstrap_leather/_navbar.html.haml +0 -39
  172. data/app/views/bootstrap_leather/_tabs.html.haml +0 -10
  173. data/app/views/bootstrap_leather/_widgets.html.haml +0 -9
  174. data/lib/bootstrap_leather/railtie.rb +0 -9
@@ -0,0 +1,36 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20170408161201) do
14
+
15
+ create_table "doo_dads", force: :cascade do |t|
16
+ t.string "name"
17
+ t.text "body"
18
+ t.datetime "created_at", null: false
19
+ t.datetime "updated_at", null: false
20
+ end
21
+
22
+ create_table "erbits", force: :cascade do |t|
23
+ t.string "name"
24
+ t.text "description"
25
+ t.datetime "created_at", null: false
26
+ t.datetime "updated_at", null: false
27
+ end
28
+
29
+ create_table "whatzits", force: :cascade do |t|
30
+ t.string "name"
31
+ t.text "description"
32
+ t.datetime "created_at", null: false
33
+ t.datetime "updated_at", null: false
34
+ end
35
+
36
+ end
@@ -0,0 +1,7 @@
1
+ FactoryGirl.definition_file_paths << File.join(
2
+ BootstrapLeather::Engine.root.join 'spec/factories'
3
+ )
4
+ FactoryGirl.find_definitions
5
+
6
+ FactoryGirl.create_list(:doo_dad, 5)
7
+ FactoryGirl.create_list(:whatzit, 5)
Binary file
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :doo_dad do
3
+ name { Faker::Name.name }
4
+ body { Faker::Lorem.sentence }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :erbit do
3
+ name { Faker::Name.name }
4
+ description { Faker::Lorem.sentence }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :whatzit do
3
+ name { Faker::Name.name }
4
+ description { Faker::Lorem.sentence }
5
+ end
6
+ end
@@ -0,0 +1,62 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe AlertsHelper, folder: :helpers do
5
+ describe '#flash_class' do
6
+ describe 'with :notice' do
7
+ subject { helper.flash_class(:notice) }
8
+ it { should eq 'info' }
9
+ end
10
+ describe 'with :error' do
11
+ subject { helper.flash_class(:error) }
12
+ it { should eq 'danger' }
13
+ end
14
+ describe 'with :alert' do
15
+ subject { helper.flash_class(:alert) }
16
+ it { should eq 'warning' }
17
+ end
18
+ end
19
+
20
+ describe '#alert' do
21
+ subject { helper.alert 'danger', 'This is the title', 'This is the text' }
22
+ it do
23
+ should have_tag('div', with: { class: 'alert-danger' })
24
+ end
25
+ it do
26
+ should have_tag('h4', with: {
27
+ class: 'alert-heading'
28
+ }, text: /This is the title/)
29
+ end
30
+ it do
31
+ should have_tag('p', text: /This is the text/)
32
+ end
33
+ it do
34
+ should have_tag('button', with: { class: 'close' })
35
+ end
36
+ end
37
+
38
+ describe '#alert_flash_messages' do
39
+ before do
40
+ [:notice, :error, :alert].each do |level|
41
+ @request.flash[level] = "This is the #{level}"
42
+ end
43
+ end
44
+ subject { helper.alert_flash_messages }
45
+ it do
46
+ should have_tag 'div', with: {
47
+ class: 'alert-danger'
48
+ }, text: /This is the error/
49
+ end
50
+ it do
51
+ should have_tag 'div', with: {
52
+ class: 'alert-info'
53
+ }, text: /This is the notice/
54
+ end
55
+ it do
56
+ should have_tag 'div', with: {
57
+ class: 'alert-warning'
58
+ }, text: /This is the alert/
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,41 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe BadgesHelper, folder: :helpers do
5
+ describe '#badge' do
6
+ describe 'with nil' do
7
+ subject { helper.badge nil }
8
+ it { should eq '' }
9
+ end
10
+ describe 'with a number' do
11
+ subject { helper.badge 1 }
12
+ it { should have_tag 'span', with: { class: 'badge' }, text: /1/ }
13
+ end
14
+ describe 'with a string' do
15
+ subject { helper.badge '1' }
16
+ it { should have_tag 'span', with: { class: 'badge' }, text: /1/ }
17
+ end
18
+ describe 'with a type' do
19
+ subject { helper.badge '1', 'success' }
20
+ it do
21
+ should have_tag 'span', with: { class: 'badge-success' }, text: /1/
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#badge_to' do
27
+ subject do
28
+ helper.badge_to 'Link Text', 99, 'http://example.com', class: 'example'
29
+ end
30
+ it do
31
+ should have_tag(
32
+ 'a',
33
+ class: 'example',
34
+ href: 'http://example.com',
35
+ text: /Link Text/
36
+ )
37
+ end
38
+ it { should have_tag 'span', with: { class: 'badge' }, text: /99/ }
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,44 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe CarouselsHelper, folder: :helpers do
5
+ helper IconsHelper
6
+ helper HeadHelper
7
+ helper FootHelper
8
+
9
+ describe '#carousel' do
10
+ subject do
11
+ helper.carousel 'css-id', DooDad.all do |item|
12
+ %(
13
+ <div class='carousel-caption'><h4>#{item.name}</h4></div>
14
+ <p>#{item.body}</p>
15
+ ).html_safe
16
+ end
17
+ end
18
+ it do
19
+ should have_tag 'div', with: {
20
+ class: 'carousel', id: 'css-id'
21
+ }
22
+ end
23
+ it { should have_tag 'div', with: { class: 'item' }, count: 5}
24
+ end
25
+
26
+ describe '#carousel_with_thumbnails' do
27
+ subject do
28
+ helper.carousel_with_thumbnails 'css-id', DooDad.all do |item|
29
+ %(
30
+ <div class='carousel-caption'><h4>#{item.name}</h4></div>
31
+ <p>#{item.body}</p>
32
+ #{image_tag 'src.png', data: { thumbnail: 'thumb.png' }}
33
+ ).html_safe
34
+ end
35
+ end
36
+ it do
37
+ should have_tag 'div', with: {
38
+ class: 'carousel-with-thumbnails', id: 'css-id'
39
+ }
40
+ end
41
+ it { should have_tag 'div', with: { class: 'item' }, count: 5}
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe FootHelper, folder: :helpers do
5
+ describe '#add_footer_javascript' do
6
+ before do
7
+ helper.add_footer_javascript { 'foo' }
8
+ end
9
+ subject { helper.content_for(:footer_javascript) }
10
+ it { should eq 'foo' }
11
+ end
12
+ describe '#render_footer_javascript' do
13
+ before do
14
+ helper.content_for(:footer_javascript) { 'bar' }
15
+ end
16
+ subject { helper.render_footer_javascript }
17
+ it { should match /bar/ }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe GridHelper, folder: :helpers do
5
+ describe '#column_class' do
6
+ subject { helper.column_class 'md', 3 }
7
+ it { should eq 'col-md-3' }
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,82 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe HeadHelper, folder: :helpers do
5
+ describe '#responsive_meta_tag' do
6
+ subject { helper.responsive_meta_tag }
7
+ it { should have_tag 'meta', with: { name: 'viewport' } }
8
+ end
9
+ describe '#add_title' do
10
+ before do
11
+ helper.add_title 'Title'
12
+ end
13
+ subject { helper.content_for(:title) }
14
+ it { should eq 'Title' }
15
+ end
16
+ describe '#add_subtitle' do
17
+ before do
18
+ helper.add_subtitle 'Subtitle'
19
+ end
20
+ subject { helper.content_for(:subtitle) }
21
+ it { should eq 'Subtitle' }
22
+ end
23
+ describe '#render_title' do
24
+ before do
25
+ helper.content_for(:title) { 'Title' }
26
+ helper.content_for(:subtitle) { 'Subtitle' }
27
+ end
28
+ subject { helper.render_title }
29
+ it { should have_tag 'title', text: 'Title: Subtitle: Dummy Site' }
30
+ end
31
+ describe '#add_description' do
32
+ before do
33
+ helper.add_description 'Description'
34
+ end
35
+ subject { helper.content_for(:description) }
36
+ it { should eq 'Description' }
37
+ end
38
+ describe '#render_description' do
39
+ before do
40
+ helper.content_for(:description) { 'Description' }
41
+ end
42
+ subject { helper.render_description }
43
+ it do
44
+ should have_tag 'meta', with: {
45
+ name: 'description', content: 'Description'
46
+ }
47
+ end
48
+ end
49
+ describe '#add_keywords' do
50
+ before do
51
+ helper.add_keywords 'Keywords'
52
+ end
53
+ subject { helper.content_for(:keywords) }
54
+ it { should eq 'Keywords' }
55
+ end
56
+ describe '#render_keywords' do
57
+ before do
58
+ helper.content_for(:keywords) { 'Keywords' }
59
+ end
60
+ subject { helper.render_keywords }
61
+ it do
62
+ should have_tag 'meta', with: {
63
+ name: 'keywords', content: 'Keywords'
64
+ }
65
+ end
66
+ end
67
+ describe '#add_head_css' do
68
+ before do
69
+ helper.add_head_css { 'foo' }
70
+ end
71
+ subject { helper.content_for(:head_css) }
72
+ it { should eq 'foo' }
73
+ end
74
+ describe '#render_head_css' do
75
+ before do
76
+ helper.content_for(:head_css) { 'bar' }
77
+ end
78
+ subject { helper.render_head_css }
79
+ it { should match /bar/ }
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,20 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe HeroUnitHelper, folder: :helpers do
5
+ describe '#add_hero_unit' do
6
+ before do
7
+ helper.add_hero_unit { 'Yay!' }
8
+ end
9
+ subject { helper.content_for(:hero_unit) }
10
+ it { should eq 'Yay!' }
11
+ end
12
+ describe '#render_hero_unit' do
13
+ before do
14
+ helper.content_for(:hero_unit) { 'Yay!' }
15
+ end
16
+ subject { helper.render_hero_unit }
17
+ it { should have_tag 'div', with: { class: 'jumbotron' }, text: /Yay!/ }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,48 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe IconsHelper, folder: :helpers do
5
+ describe '#icon' do
6
+ subject { helper.icon 'check' }
7
+ it { should have_tag 'span', with: { class: 'glyphicon-check' } }
8
+ end
9
+
10
+ describe '#icon_button_to' do
11
+ subject do
12
+ helper.icon_button_to(
13
+ 'success',
14
+ 'check',
15
+ 'Link Text',
16
+ 'http://example.com',
17
+ class: 'example'
18
+ )
19
+ end
20
+ it do
21
+ should have_tag(
22
+ :a,
23
+ class: 'example',
24
+ href: 'http://example.com',
25
+ text: /Link Text/
26
+ )
27
+ end
28
+ it { should have_tag 'span', with: { class: 'glyphicon-check' } }
29
+ end
30
+
31
+ describe '#icon_link_to' do
32
+ subject do
33
+ helper.icon_link_to(
34
+ 'check', 'Link Text', 'http://example.com', class: 'example'
35
+ )
36
+ end
37
+ it do
38
+ should have_tag(
39
+ :a,
40
+ class: 'example',
41
+ href: 'http://example.com',
42
+ text: /Link Text/
43
+ )
44
+ end
45
+ it { should have_tag 'span', with: { class: 'glyphicon-check' } }
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,22 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe ModalsHelper, folder: :helpers do
5
+ describe '#modal' do
6
+ subject do
7
+ helper.modal 'css-id', 'Title' do
8
+ %(Contents Go Here)
9
+ end
10
+ end
11
+ it { should have_tag 'div', with: { class: 'modal', id: 'css-id' } }
12
+ it { should have_tag 'h3', with: { class: 'modal-title' }, text: 'Title'}
13
+ it do
14
+ should have_tag(
15
+ :div,
16
+ with: { class: 'modal-body' },
17
+ text: /Contents Go Here/
18
+ )
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,110 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe NavigationHelper, folder: :helpers do
5
+ describe '#nav_item' do
6
+ subject { helper.nav_item 'Link Text', 'http://example.com' }
7
+ it { should have_tag 'li' }
8
+ it do
9
+ should have_tag(
10
+ 'a',
11
+ with: { href: 'http://example.com' },
12
+ text: /Link Text/
13
+ )
14
+ end
15
+ end
16
+
17
+ describe '#nav_heading' do
18
+ subject { helper.nav_heading 'Heading Text' }
19
+ it do
20
+ should have_tag(
21
+ :li,
22
+ with: { class: 'dropdown-header' },
23
+ text: /Heading Text/
24
+ )
25
+ end
26
+ end
27
+
28
+ describe '#nav_list' do
29
+ subject do
30
+ helper.nav_list do
31
+ %(<li>List Item</li>)
32
+ end
33
+ end
34
+ it do
35
+ should have_tag(
36
+ :ul,
37
+ with: { class: 'nav' },
38
+ text: /List Item/
39
+ )
40
+ end
41
+ end
42
+
43
+ describe '#navbar' do
44
+ subject do
45
+ helper.navbar { 'Contents' }
46
+ end
47
+ it do
48
+ should have_tag 'nav', with: { class: 'navbar' }
49
+ end
50
+ end
51
+
52
+ describe '#navbar_with_container' do
53
+ subject do
54
+ helper.navbar_with_container { 'Contents' }
55
+ end
56
+ it 'puts the container in a navbar' do
57
+ expect(subject).to(
58
+ have_tag('nav', with: { class: 'navbar' }) do
59
+ with_tag 'div', with: { class: 'container' }
60
+ end
61
+ )
62
+ end
63
+ end
64
+
65
+ describe '#navbar_in_container' do
66
+ subject do
67
+ helper.navbar_in_container { 'Contents' }
68
+ end
69
+ it 'puts the navbar in a container' do
70
+ expect(subject).to(
71
+ have_tag('div', with: { class: 'container' }) do
72
+ with_tag 'nav', with: { class: 'navbar' }
73
+ end
74
+ )
75
+ end
76
+ end
77
+
78
+ describe '#dropdown_nav_item' do
79
+ subject do
80
+ helper.dropdown_nav_item 'Heading', '#' do
81
+ helper.nav_list do
82
+ helper.nav_item 'Link', 'http://example.com'
83
+ end
84
+ end
85
+ end
86
+ it 'shows a dropdown item' do
87
+ expect(subject).to(
88
+ have_tag('li', with: { class: 'dropdown' }) do
89
+ with_tag(
90
+ 'a',
91
+ with: { class: 'dropdown-toggle', href: '#' },
92
+ text: /Heading/
93
+ )
94
+ with_tag 'ul', with: { class: 'dropdown-menu' } do
95
+ with_tag 'li' do
96
+ with_tag 'a', with: { href: 'http://example.com' }, text: /Link/
97
+ end
98
+ end
99
+ end
100
+ )
101
+ end
102
+ end
103
+
104
+ describe '#logo_and_title' do
105
+ subject { helper.logo_and_title }
106
+ it { should have_tag 'img', with: { src: '/assets/logo.svg' } }
107
+ it { should match /Dummy Site/ }
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,39 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe TabsHelper, folder: :helpers do
5
+ describe '#add_tab and #render_tabs' do
6
+ before do
7
+ helper.add_tab 'Foo', 'foo' do
8
+ Faker::Lorem.paragraph
9
+ end
10
+ helper.add_tab 'Bar', 'bar' do
11
+ Faker::Lorem.paragraph
12
+ end
13
+ end
14
+ subject { helper.render_tabs }
15
+ it 'shows the tab links' do
16
+ expect(subject).to(
17
+ have_tag('div', with: { class: 'tabs-top' }) do
18
+ with_tag 'ul', with: { class: 'nav-tabs' } do
19
+ with_tag 'li' do
20
+ with_tag 'a', text: /Foo/
21
+ end
22
+ with_tag 'li' do
23
+ with_tag 'a', text: /Bar/
24
+ end
25
+ end
26
+ end
27
+ )
28
+ end
29
+ it 'shows the tabs' do
30
+ expect(subject).to(
31
+ have_tag('div', with: { class: 'tab-content' }) do
32
+ with_tag 'div', with: { id: 'foo' }
33
+ with_tag 'div', with: { id: 'bar' }
34
+ end
35
+ )
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,20 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe ThumbnailsHelper, folder: :helpers do
5
+ describe '#thumbnail' do
6
+ subject do
7
+ helper.thumbnail image_tag '/assets/logo.svg'
8
+ end
9
+ it 'shows a thumbnail' do
10
+ expect(subject).to(
11
+ have_tag('ul', with: { class: 'thumbnails' }) do
12
+ with_tag 'li', with: { class: 'thumbnail' } do
13
+ with_tag 'img', with: { src: '/assets/logo.svg' }
14
+ end
15
+ end
16
+ )
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,43 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe TypographyHelper, folder: :helpers do
5
+ helper HeadHelper
6
+
7
+ describe '#render_h1' do
8
+ before do
9
+ helper.add_title 'Title'
10
+ end
11
+ it 'shows the title' do
12
+ expect(helper.render_h1).to(have_tag 'h1', text: /Title/)
13
+ end
14
+ end
15
+ describe '#render_page_header' do
16
+ before do
17
+ helper.add_title 'Title'
18
+ helper.add_subtitle 'Subtitle'
19
+ end
20
+ it 'shows the title and subtitle' do
21
+ expect(helper.render_page_header).to(
22
+ have_tag('div', with: { class: 'page-header' }) do
23
+ with_tag 'h1', text: /Title/ do
24
+ with_tag 'small', text: /Subtitle/
25
+ end
26
+ end
27
+ )
28
+ end
29
+ end
30
+ describe '#dl' do
31
+ it 'shows a dl' do
32
+ expect(helper.dl( { name: 'Name', body: 'Body' } )).to(
33
+ have_tag('dl') do
34
+ with_tag 'dt', text: /name/
35
+ with_tag 'dd', text: /Name/
36
+ with_tag 'dt', text: /body/
37
+ with_tag 'dd', text: /Body/
38
+ end
39
+ )
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ require 'rails_helper'
2
+
3
+ module BootstrapLeather
4
+ RSpec.describe WidgetsHelper, folder: :helpers do
5
+ helper GridHelper
6
+ describe '#add_widget and #render_widgets' do
7
+ before do
8
+ helper.add_widget do
9
+ Faker::Lorem.paragraph
10
+ end
11
+ end
12
+ subject { helper.render_widgets('md', 3) }
13
+ it 'shows the tab links' do
14
+ expect(subject).to(
15
+ have_tag(:div, with: { class: 'col-md-3' }) do
16
+ with_tag :div, with: { class: 'well' }
17
+ end
18
+ )
19
+ end
20
+ end
21
+ end
22
+ end