simple_navigation_bootstrap 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,6 +1,11 @@
1
+ dist: trusty
1
2
  language: ruby
2
3
  cache: bundler
3
4
  sudo: false
4
5
  rvm:
5
- - 2.3.1
6
- - 2.2.5
6
+ - 2.5.1
7
+ - 2.4.4
8
+ - 2.3.7
9
+ - jruby-9.2.0.0
10
+ after_success:
11
+ - bundle exec codeclimate-test-reporter
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 1.1.0 - 2018-08-27
4
+
5
+ * Add magic comment # frozen_string_literal: true
6
+ * Coding style
7
+ * Fix deprecation warning: Extra .css in SCSS file is unnecessary (thanks gltarsa)
8
+
9
+
3
10
  ### 1.0.1 - 2016-06-24
4
11
 
5
12
  * Use \<i\> tag for icons
data/Gemfile CHANGED
@@ -1,14 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in simple_navigation_bootstrap.gemspec
4
6
  gemspec
5
7
 
6
- # Get master branch of simple-navigation to fix 'undefined class ::Rails::Railtie' error
7
- # See: https://github.com/codeplant/simple-navigation/commit/fb2c41511ade34e1ed6857a89ab2c7f1eead3ecb
8
- gem 'simple-navigation', git: 'https://github.com/codeplant/simple-navigation.git'
9
-
10
- # README edition
11
- gem 'gh-preview'
12
-
13
8
  # CodeClimate Test Coverage
14
9
  gem 'codeclimate-test-reporter', group: :test, require: nil
data/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  [![GitHub license](https://img.shields.io/github/license/jbox-web/simple_navigation_bootstrap.svg)](https://github.com/jbox-web/simple_navigation_bootstrap/blob/master/LICENSE)
4
4
  [![GitHub release](https://img.shields.io/github/release/jbox-web/simple_navigation_bootstrap.svg)](https://github.com/jbox-web/simple_navigation_bootstrap/releases/latest)
5
+ [![Gem](https://img.shields.io/gem/v/simple_navigation_bootstrap.svg)](https://rubygems.org/gems/simple_navigation_bootstrap/versions/1.0.1)
6
+ [![Gem](https://img.shields.io/gem/dtv/simple_navigation_bootstrap.svg)](https://rubygems.org/gems/simple_navigation_bootstrap/versions/1.0.1)
5
7
  [![Build Status](https://travis-ci.org/jbox-web/simple_navigation_bootstrap.svg?branch=master)](https://travis-ci.org/jbox-web/simple_navigation_bootstrap)
6
8
  [![Code Climate](https://codeclimate.com/github/jbox-web/simple_navigation_bootstrap/badges/gpa.svg)](https://codeclimate.com/github/jbox-web/simple_navigation_bootstrap)
7
9
  [![Test Coverage](https://codeclimate.com/github/jbox-web/simple_navigation_bootstrap/badges/coverage.svg)](https://codeclimate.com/github/jbox-web/simple_navigation_bootstrap/coverage)
8
- [![Dependency Status](https://gemnasium.com/badges/github.com/jbox-web/simple_navigation_bootstrap.svg)](https://gemnasium.com/github.com/jbox-web/simple_navigation_bootstrap)
9
10
 
10
- This gem adds Bootstrap renderers for Simple Navigation. For now, it is include renderers for:
11
+ This gem adds Bootstrap renderers for [Simple Navigation](https://github.com/codeplant/simple-navigation). For now, it is include renderers for:
11
12
 
12
13
  * [Bootstrap 2 navigation](http://getbootstrap.com/2.3.2/components.html#navbar)
13
14
  * [Bootstrap 3 navigation](http://getbootstrap.com/components/#navbar)
@@ -15,9 +16,11 @@ This gem adds Bootstrap renderers for Simple Navigation. For now, it is include
15
16
  With these renderers you will be able create **any Bootstrap navigation elements**, such as: **submenu**, **navbar-text**, **divider**, **header**.
16
17
  As well as add **icons** to menu elements, such as: Glyphicons, Font Awesome icons, even custom icons. Also you have **split** option for main menu containing submenu.
17
18
 
18
- *This gem is fork of [ShPakvel/simple\_navigation\_renderers](https://github.com/ShPakvel/simple_navigation_renderers).*
19
+ *This gem is a fork of [ShPakvel/simple\_navigation\_renderers](https://github.com/ShPakvel/simple_navigation_renderers).*
19
20
  *After a year of waiting for [PR merge](https://github.com/ShPakvel/simple_navigation_renderers/pull/14) without any news from the author, I decided to fork it.*
20
21
 
22
+ **This gem is compatible with SimpleNavigation 4.x.**
23
+
21
24
  ## Installation
22
25
 
23
26
  Add this line to your application's Gemfile:
@@ -75,7 +78,7 @@ Lets look at the example:
75
78
 
76
79
  ```ruby
77
80
  SimpleNavigation::Configuration.run do |navigation|
78
- navigation.renderer = SimpleNavigationRenderers::Bootstrap3
81
+ navigation.renderer = SimpleNavigationBootstrap::Bootstrap3
79
82
 
80
83
  navigation.items do |primary|
81
84
  primary.item :news, { icon: 'fa fa-fw fa-bullhorn', text: 'News' }, news_index_path
@@ -103,13 +106,13 @@ end
103
106
 
104
107
  Specific options used in the example:
105
108
 
106
- Option | Description
107
- ---------------|--------------
108
- `:split` | Use it to split first level item link with caret. If you add `split: true` option to item, then caret itself will toggle first level submenu and link will have standard behaviour, instead of toggle submenu. You can use `:split` only with first level items, for the rest it will not do anything.
109
- `:navbar_text` | Use it as `navbar_text: true` to add Bootstrap `navbar-text`.
110
- `:divider` | Use it to add Bootstrap menu divider. if you add `divider: true` option to first level item, then it will create li-tag with `divider-vertical` Bootstrap 2 class. (You can add `divider-vertical` class to Bootstrap 3 - see below). For the second level item and deeper it will create `li` tag with class `divider` (which exists in both, Bootstrap 2 and 3).
111
- `:header` | Use it as `header: true` to add Bootstrap menu header. You can use `:header` only with submenus, for the first level items it will not do anything.
112
- `:name hash` | Use it in place of `:name` if you want. Hash can have three keys: `:text`, `:icon` and `:title`, which is only recognized. You can use it together or separatly, but at least one of `:text` and `:icon` parameters should be provided.
109
+ | Option | Description
110
+ |---------------|--------------
111
+ |`:split` | Use it to split first level item link with caret. If you add `split: true` option to item, then caret itself will toggle first level submenu and link will have standard behaviour, instead of toggle submenu. You can use `:split` only with first level items, for the rest it will not do anything.
112
+ |`:navbar_text` | Use it as `navbar_text: true` to add Bootstrap `navbar-text`.
113
+ |`:divider` | Use it to add Bootstrap menu divider. if you add `divider: true` option to first level item, then it will create li-tag with `divider-vertical` Bootstrap 2 class. (You can add `divider-vertical` class to Bootstrap 3 - see below). For the second level item and deeper it will create `li` tag with class `divider` (which exists in both, Bootstrap 2 and 3).
114
+ |`:header` | Use it as `header: true` to add Bootstrap menu header. You can use `:header` only with submenus, for the first level items it will not do anything.
115
+ |`:name hash` | Use it in place of `:name` if you want. Hash can have three keys: `:text`, `:icon` and `:title`, which is only recognized. You can use it together or separately, but at least one of `:text` and `:icon` parameters should be provided.
113
116
 
114
117
  Example for `:name hash`:
115
118
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
  require 'simple-navigation'
3
- require 'simple_navigation_bootstrap/errors'
4
- require 'simple_navigation_bootstrap/rendered_item'
5
- require 'simple_navigation_bootstrap/bootstrap_base'
6
- require 'simple_navigation_bootstrap/bootstrap2'
7
- require 'simple_navigation_bootstrap/bootstrap3'
8
- require 'simple_navigation_bootstrap/engine' if defined? Rails::Engine
9
5
 
10
6
  module SimpleNavigationBootstrap
7
+ require 'simple_navigation_bootstrap/errors'
8
+ require 'simple_navigation_bootstrap/rendered_item'
9
+ require 'simple_navigation_bootstrap/bootstrap_base'
10
+ require 'simple_navigation_bootstrap/bootstrap2'
11
+ require 'simple_navigation_bootstrap/bootstrap3'
12
+ require 'simple_navigation_bootstrap/engine' if defined? Rails::Engine
11
13
  end
12
14
 
13
15
  SimpleNavigation.register_renderer(bootstrap2: SimpleNavigationBootstrap::Bootstrap2)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  class Bootstrap2 < SimpleNavigation::Renderer::Base
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  class Bootstrap3 < SimpleNavigation::Renderer::Base
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  module BootstrapBase
3
5
 
@@ -32,7 +34,7 @@ module SimpleNavigationBootstrap
32
34
 
33
35
 
34
36
  def container_class(level)
35
- remove_navigation_class = options.delete(:remove_navigation_class){ false }
37
+ remove_navigation_class = options.delete(:remove_navigation_class) { false }
36
38
  if level == 1
37
39
  remove_navigation_class ? '' : ['nav', navigation_class].compact
38
40
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  class Engine < ::Rails::Engine
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  # Exception raised when you set Hash without both 'text' and 'icon' parameters as Item 'name' parameter
3
5
  class InvalidHash < StandardError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  class RenderedItem
3
5
  extend Forwardable
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleNavigationBootstrap
2
4
  # Returns the version of the currently loaded Rails as a <tt>Gem::Version</tt>
3
5
  def self.gem_version
@@ -6,8 +8,8 @@ module SimpleNavigationBootstrap
6
8
 
7
9
  module VERSION
8
10
  MAJOR = 1
9
- MINOR = 0
10
- TINY = 1
11
+ MINOR = 1
12
+ TINY = 0
11
13
  PRE = nil
12
14
 
13
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
@@ -1,5 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
3
4
  require 'simple_navigation_bootstrap/version'
4
5
 
5
6
  Gem::Specification.new do |s|
@@ -9,21 +10,20 @@ Gem::Specification.new do |s|
9
10
  s.authors = ['Pavel Shpak', 'Nicolas Rodriguez']
10
11
  s.email = ['shpakvel@gmail.com', 'nrodriguez@jbox-web.com']
11
12
  s.homepage = 'https://github.com/jbox-web/simple_navigation_bootstrap'
12
- s.summary = %q{A Ruby gem that adds Bootstrap renderers for SimpleNavigation}
13
- s.description = %q{This gem adds Bootstrap2 and Bootstrap3 renderers for SimpleNavigation}
13
+ s.summary = 'A Ruby gem that adds Bootstrap renderers for SimpleNavigation'
14
+ s.description = 'This gem adds Bootstrap2 and Bootstrap3 renderers for SimpleNavigation'
14
15
  s.license = 'MIT'
15
16
 
16
17
  s.add_runtime_dependency 'simple-navigation', '~> 4.0'
17
18
 
18
19
  s.add_development_dependency 'actionpack'
19
20
  s.add_development_dependency 'actionview'
21
+ s.add_development_dependency 'rake'
20
22
  s.add_development_dependency 'rspec'
21
23
  s.add_development_dependency 'simplecov'
22
- s.add_development_dependency 'bundler', '~> 1.3'
23
- s.add_development_dependency 'rake'
24
24
 
25
25
  s.files = `git ls-files`.split("\n")
26
26
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
28
28
  s.require_paths = ['lib']
29
29
  end
@@ -2,52 +2,51 @@ require 'spec_helper'
2
2
 
3
3
  describe SimpleNavigationBootstrap::Bootstrap2 do
4
4
 
5
- describe '#render' do
5
+ let(:bootstrap_menu) { build_menu(version: 2) }
6
6
 
7
+ describe '#render' do
7
8
  it "wraps main menu in ul-tag with 'nav' class" do
8
- check_selector build_menu(version: 2), 'ul.nav.navbar-nav', 0
9
- check_selector build_menu(version: 2), 'ul.nav'
9
+ check_selector bootstrap_menu, 'ul.nav.navbar-nav', 0
10
+ check_selector bootstrap_menu, 'ul.nav'
10
11
  end
11
12
 
12
-
13
13
  context "when ':header' option provided" do
14
14
  context "for the first level item" do
15
15
  it "does not set up 'dropdown-header' or 'nav-header' class on li-tag" do
16
- check_selector build_menu(version: 2), 'ul.nav > li.to_check_header.nav-header', 0
16
+ check_selector bootstrap_menu, 'ul.nav > li.to_check_header.nav-header', 0
17
17
  end
18
18
 
19
19
  it "creates link-tag for the item (standard item)" do
20
- check_selector build_menu(version: 2), 'ul.nav > li.to_check_header > a'
20
+ check_selector bootstrap_menu, 'ul.nav > li.to_check_header > a'
21
21
  end
22
22
  end
23
23
 
24
24
  context "for the second level item and deeper" do
25
25
  it "sets up 'nav-header' class on li-tag" do
26
- check_selector build_menu(version: 2), 'ul.dropdown-menu > li.to_check_header2.nav-header'
26
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.nav-header'
27
27
  end
28
28
 
29
29
  it "does not create link-tag for the item (standard item), but puts only item 'name'" do
30
- check_selector build_menu(version: 2), 'ul.dropdown-menu > li.to_check_header2.nav-header > a', 0
31
- check_title build_menu(version: 2), 'ul.dropdown-menu > li.to_check_header2.nav-header', 'Misc. Pages'
30
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.nav-header > a', 0
31
+ check_title bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.nav-header', 'Misc. Pages'
32
32
  end
33
33
  end
34
34
  end
35
35
 
36
-
37
36
  context "when ':navbar_text' option provided" do
38
37
  it "creates p-tag with class 'navbar-text' and item 'name' as a content instead of link-tag for the item (standard item)" do
39
- check_selector build_menu(version: 2), 'ul > li.to_check_navbar_text > a', 0
40
- check_title build_menu(version: 2), 'ul > li.to_check_navbar_text > p.navbar-text', 'Signed in as Pavel Shpak'
38
+ check_selector bootstrap_menu, 'ul > li.to_check_navbar_text > a', 0
39
+ check_title bootstrap_menu, 'ul > li.to_check_navbar_text > p.navbar-text', 'Signed in as Pavel Shpak'
41
40
  end
42
41
  end
43
42
 
44
-
45
43
  context "when container is empty" do
44
+ let(:bootstrap_menu) { build_menu(version: 2, menu_name: :empty_menu, menu_opts: { skip_if_empty: true }) }
45
+
46
46
  it 'return empty list' do
47
- check_selector build_menu(version: 2, menu_name: :empty_menu, menu_opts: { skip_if_empty: true }), 'ul > li', 0
47
+ check_selector bootstrap_menu, 'ul > li', 0
48
48
  end
49
49
  end
50
-
51
50
  end
52
51
 
53
52
  end
@@ -2,183 +2,176 @@ require 'spec_helper'
2
2
 
3
3
  describe SimpleNavigationBootstrap::Bootstrap3 do
4
4
 
5
- describe '#render' do
5
+ let(:bootstrap_menu) { build_menu(version: 3) }
6
6
 
7
+ describe '#render' do
7
8
  it "wraps main menu in ul-tag with 'nav navbar-nav' classes" do
8
- check_selector build_menu(version: 3), 'ul.nav.navbar-nav'
9
+ check_selector bootstrap_menu, 'ul.nav.navbar-nav'
9
10
  end
10
11
 
11
-
12
12
  it "sets up 'active' class on selected items (on li-tags)" do
13
- check_selector build_menu(version: 3), 'ul.nav.navbar-nav > li.active > a[href="news_index_path"]'
13
+ check_selector bootstrap_menu, 'ul.nav.navbar-nav > li.active > a[href="news_index_path"]'
14
14
  end
15
15
 
16
-
17
16
  it "wraps submenu in ul-tag 'dropdown-menu' class" do
18
- check_selector build_menu(version: 3), 'ul > li > ul.dropdown-menu > li > ul.dropdown-menu'
17
+ check_selector bootstrap_menu, 'ul > li > ul.dropdown-menu > li > ul.dropdown-menu'
19
18
  end
20
19
 
21
-
22
20
  context "for the first level submenu (the second level menu)" do
23
21
  it "sets up 'dropdown' class on li-tag which contains that submenu" do
24
- check_selector build_menu(version: 3), 'ul > li.dropdown'
22
+ check_selector bootstrap_menu, 'ul > li.dropdown'
25
23
  end
26
24
 
27
25
  it "sets up 'dropdown-toggle' class on link-tag which is used for toggle that submenu" do
28
- check_selector build_menu(version: 3), 'ul > li.dropdown > a.dropdown-toggle'
26
+ check_selector bootstrap_menu, 'ul > li.dropdown > a.dropdown-toggle'
29
27
  end
30
28
 
31
29
  it "sets up 'data-toggle' attribute to 'dropdown' on link-tag which is used for toggle that submenu" do
32
- check_selector build_menu(version: 3), 'ul > li.dropdown > a[data-toggle=dropdown]'
30
+ check_selector bootstrap_menu, 'ul > li.dropdown > a[data-toggle=dropdown]'
33
31
  end
34
32
 
35
33
  it "sets up 'data-target' attribute to '#' on link-tag which is used for toggle that submenu" do
36
- check_selector build_menu(version: 3), 'ul > li.dropdown > a[data-target="#"]'
34
+ check_selector bootstrap_menu, 'ul > li.dropdown > a[data-target="#"]'
37
35
  end
38
36
 
39
37
  it "sets up 'href' attribute to '#' on link-tag which is used for toggle that submenu" do
40
- check_selector build_menu(version: 3), 'ul > li.dropdown > a[href="#"]'
38
+ check_selector bootstrap_menu, 'ul > li.dropdown > a[href="#"]'
41
39
  end
42
40
 
43
41
  it "puts b-tag with 'caret' class in li-tag which contains that submenu" do
44
- check_selector build_menu(version: 3), 'ul > li.dropdown > a[href="#"] > b.caret'
42
+ check_selector bootstrap_menu, 'ul > li.dropdown > a[href="#"] > b.caret'
45
43
  end
46
44
  end
47
45
 
48
-
49
46
  context "for nested submenu (the third level menu and deeper)" do
50
47
  it "sets up 'dropdown-submenu' class on li-tag which contains that submenu" do
51
- check_selector build_menu(version: 3), 'ul > li > ul.dropdown-menu > li.dropdown-submenu'
48
+ check_selector bootstrap_menu, 'ul > li > ul.dropdown-menu > li.dropdown-submenu'
52
49
  end
53
50
  end
54
51
 
55
-
56
52
  context "when ':split' option provided" do
57
53
  context "for the first level item which contains submenu" do
58
54
  it "splits item on two li-tags (left and right) and right li-tag will contain the first level submenu (second level menu)" do
59
- check_selector build_menu(version: 3), 'ul > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu'
55
+ check_selector bootstrap_menu, 'ul > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu'
60
56
  end
61
57
 
62
58
  it "sets up 'pull-right' class on ul-tag which is the submenu" do
63
- check_selector build_menu(version: 3), 'ul > li > ul.dropdown-menu.pull-right'
59
+ check_selector bootstrap_menu, 'ul > li > ul.dropdown-menu.pull-right'
64
60
  end
65
61
  end
66
62
 
67
63
  context "for the second level item and deeper which contains submenu" do
68
64
  it "does not splits item on two li-tags" do
69
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
70
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.dropdown-submenu > ul.dropdown-menu'
65
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
66
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.dropdown-submenu > ul.dropdown-menu'
71
67
  end
72
68
 
73
69
  it "does not sets up 'pull-right' class on ul-tag which is the submenu" do
74
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li > ul.dropdown-menu.pull-right', 0
70
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li > ul.dropdown-menu.pull-right', 0
75
71
  end
76
72
  end
77
73
 
78
74
  context "for item which does not contain submenu" do
79
75
  it "does not splits item on two li-tags" do
80
- check_selector build_menu(version: 3), 'ul > li.to_check_split.dropdown-split-left + li.dropdown.dropdown-split-right', 0
81
- check_selector build_menu(version: 3), 'ul > li.to_check_split'
76
+ check_selector bootstrap_menu, 'ul > li.to_check_split.dropdown-split-left + li.dropdown.dropdown-split-right', 0
77
+ check_selector bootstrap_menu, 'ul > li.to_check_split'
82
78
  end
83
79
  end
84
80
  end
85
81
 
86
-
87
82
  context "when ':split' option is not provided" do
83
+ let(:bootstrap_menu) { build_menu(version: 3, menu_name: :unsplited_menu) }
84
+
88
85
  context "for the first level item which contains submenu" do
89
86
  it "does not splits item on two li-tags (left and right) and right li-tag will contain the first level submenu (second level menu)" do
90
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
87
+ check_selector bootstrap_menu, 'ul > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
91
88
  end
92
89
 
93
90
  it "does not sets up 'pull-right' class on ul-tag which is the submenu" do
94
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul > li > ul.dropdown-menu.pull-right', 0
91
+ check_selector bootstrap_menu, 'ul > li > ul.dropdown-menu.pull-right', 0
95
92
  end
96
93
  end
97
94
 
98
95
  context "for the second level item and deeper which contains submenu" do
99
96
  it "does not splits item on two li-tags" do
100
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul.dropdown-menu > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
101
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul.dropdown-menu > li.dropdown-submenu > ul.dropdown-menu'
97
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.dropdown-split-left + li.dropdown.dropdown-split-right > ul.dropdown-menu', 0
98
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.dropdown-submenu > ul.dropdown-menu'
102
99
  end
103
100
 
104
101
  it "does not sets up 'pull-right' class on ul-tag which is the submenu" do
105
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul.dropdown-menu > li > ul.dropdown-menu.pull-right', 0
102
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li > ul.dropdown-menu.pull-right', 0
106
103
  end
107
104
  end
108
105
 
109
106
  context "for item which does not contain submenu" do
110
107
  it "does not splits item on two li-tags" do
111
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul > li.to_check_split.dropdown-split-left + li.dropdown.dropdown-split-right', 0
112
- check_selector build_menu(version: 3, menu_name: :unsplited_menu), 'ul > li.to_check_split'
108
+ check_selector bootstrap_menu, 'ul > li.to_check_split.dropdown-split-left + li.dropdown.dropdown-split-right', 0
109
+ check_selector bootstrap_menu, 'ul > li.to_check_split'
113
110
  end
114
111
  end
115
112
  end
116
113
 
117
-
118
114
  context "when ':navbar_text' option provided" do
119
115
  it "creates p-tag with class 'navbar-text' and item 'name' as a content instead of link-tag for the item (standard item)" do
120
- check_selector build_menu(version: 3), 'ul > li.to_check_navbar_text > a', 0
121
- check_title build_menu(version: 3), 'ul > li.to_check_navbar_text > p.navbar-text', 'Signed in as Pavel Shpak'
116
+ check_selector bootstrap_menu, 'ul > li.to_check_navbar_text > a', 0
117
+ check_title bootstrap_menu, 'ul > li.to_check_navbar_text > p.navbar-text', 'Signed in as Pavel Shpak'
122
118
  end
123
119
  end
124
120
 
125
-
126
121
  context "when ':divider' option provided" do
127
122
  it "does not create link-tag for the item (standard item)" do
128
- check_selector build_menu(version: 3), 'ul > li.divider-vertical + li > a[href="divider_before_info_index_path"]', 0
129
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.divider + li > a[href="divider_before_misc_info_pages"]', 0
130
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.divider + li > a[href="divider_before_contact_info_page"]', 0
123
+ check_selector bootstrap_menu, 'ul > li.divider-vertical + li > a[href="divider_before_info_index_path"]', 0
124
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.divider + li > a[href="divider_before_misc_info_pages"]', 0
125
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.divider + li > a[href="divider_before_contact_info_page"]', 0
131
126
  end
132
127
 
133
128
  context "for the first level item" do
134
129
  it "adds li-tag with class 'divider-vertical'" do
135
- check_selector build_menu(version: 3), 'ul > li.divider-vertical + li > a[href="info_index_path"]'
130
+ check_selector bootstrap_menu, 'ul > li.divider-vertical + li > a[href="info_index_path"]'
136
131
  end
137
132
  end
138
133
 
139
134
  context "for the second level item and deeper" do
140
135
  it "adds li-tag with class 'divider'" do
141
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.divider + li > a[href="misc_info_pages"]'
142
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.divider + li > a[href="contact_info_page"]'
136
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.divider + li > a[href="misc_info_pages"]'
137
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.divider + li > a[href="contact_info_page"]'
143
138
  end
144
139
  end
145
140
  end
146
141
 
147
-
148
142
  context "when ':header' option provided" do
149
143
  context "for the first level item" do
150
144
  it "does not set up 'dropdown-header' or 'nav-header' class on li-tag" do
151
- check_selector build_menu(version: 3), 'ul.nav.navbar-nav > li.to_check_header.dropdown-header', 0
145
+ check_selector bootstrap_menu, 'ul.nav.navbar-nav > li.to_check_header.dropdown-header', 0
152
146
  end
153
147
 
154
148
  it "creates link-tag for the item (standard item)" do
155
- check_selector build_menu(version: 3), 'ul.nav.navbar-nav > li.to_check_header > a'
149
+ check_selector bootstrap_menu, 'ul.nav.navbar-nav > li.to_check_header > a'
156
150
  end
157
151
  end
158
152
 
159
153
  context "for the second level item and deeper" do
160
154
  it "sets up 'dropdown-header' class on li-tag" do
161
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.to_check_header2.dropdown-header'
155
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.dropdown-header'
162
156
  end
163
157
 
164
158
  it "does not create link-tag for the item (standard item), but puts only item 'name'" do
165
- check_selector build_menu(version: 3), 'ul.dropdown-menu > li.to_check_header2.dropdown-header > a', 0
166
- check_title build_menu(version: 3), 'ul.dropdown-menu > li.to_check_header2.dropdown-header', 'Misc. Pages'
159
+ check_selector bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.dropdown-header > a', 0
160
+ check_title bootstrap_menu, 'ul.dropdown-menu > li.to_check_header2.dropdown-header', 'Misc. Pages'
167
161
  end
168
162
  end
169
163
  end
170
164
 
171
-
172
165
  context "when 'hash' provided in place of 'name'" do
173
166
  context "with ':icon' parameter" do
174
167
  it "adds i-tag with classes from the parameter" do
175
- check_selector build_menu(version: 3), 'ul > li > a > i.fa.fa-fw.fa-bullhorn'
168
+ check_selector bootstrap_menu, 'ul > li > a > i.fa.fa-fw.fa-bullhorn'
176
169
  end
177
170
  end
178
171
 
179
172
  context "with ':title' parameter" do
180
173
  it "sets up 'title' attribute on icon's i-tag to the parameter value" do
181
- check_selector build_menu(version: 3), 'ul > li > a > i.fa.fa-fw.fa-book[title="Info"]'
174
+ check_selector bootstrap_menu, 'ul > li > a > i.fa.fa-fw.fa-book[title="Info"]'
182
175
  end
183
176
  end
184
177
 
@@ -197,13 +190,13 @@ describe SimpleNavigationBootstrap::Bootstrap3 do
197
190
  end
198
191
  end
199
192
 
200
-
201
193
  context "when container is empty" do
194
+ let(:bootstrap_menu) { build_menu(version: 3, menu_name: :empty_menu, menu_opts: { skip_if_empty: true }) }
195
+
202
196
  it 'return empty list' do
203
- check_selector build_menu(version: 3, menu_name: :empty_menu, menu_opts: { skip_if_empty: true }), 'ul > li', 0
197
+ check_selector bootstrap_menu, 'ul > li', 0
204
198
  end
205
199
  end
206
-
207
200
  end
208
201
 
209
202
  end