gretel 3.0.6 → 3.0.7
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 +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +5 -1
- data/CHANGELOG.md +3 -0
- data/README.md +4 -2
- data/gemfiles/Gemfile-rails.3.2.x +17 -0
- data/gemfiles/Gemfile-rails.4.0.x +17 -0
- data/gemfiles/Gemfile-rails.4.1.x +17 -0
- data/lib/gretel.rb +5 -1
- data/lib/gretel/renderer.rb +4 -2
- data/lib/gretel/version.rb +1 -1
- data/test/dummy/config/application.rb +3 -48
- data/test/dummy/config/environments/development.rb +0 -35
- data/test/dummy/config/environments/production.rb +0 -65
- data/test/dummy/config/environments/test.rb +0 -35
- data/test/dummy/config/routes.rb +4 -4
- data/test/helper_methods_test.rb +82 -62
- metadata +14 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c41db63d201de11de1dbc6d9b9c2a172418ffa20
|
4
|
+
data.tar.gz: 48db9abfdc31f7900b0f32afdc9536fd2839efdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa877e11f8c2037c68f9f01c9722101161163747e017e7be78606b56e7504d2a6bcbc253bb97144ab77c0d5ccd70a81a4323fe82ee2f0d4bc2b5d32ba79e21bb
|
7
|
+
data.tar.gz: 4e6d5c1f40b484fe1ac448fda62654756b17efbc1bb7a262a69229571de91a86512104e9aeec70a0f655259e2ba61e2971fcd0fb8f17f0672c10a04bfae08182
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -2,7 +2,11 @@ language: ruby
|
|
2
2
|
rvm:
|
3
3
|
- 2.0.0
|
4
4
|
- 1.9.3
|
5
|
+
gemfile:
|
6
|
+
- gemfiles/Gemfile-rails.3.2.x
|
7
|
+
- gemfiles/Gemfile-rails.4.0.x
|
8
|
+
- gemfiles/Gemfile-rails.4.1.x
|
5
9
|
before_script:
|
6
10
|
- "cd test/dummy; rake db:migrate; rake db:test:prepare; cd ../.."
|
7
11
|
notifications:
|
8
|
-
email: false
|
12
|
+
email: false
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 3.0.7
|
4
|
+
* Pretext and posttext classes are now customizable with `<%= breadcrumbs pretext_class: "some-class" %>` and `<%= breadcrumbs posttext_class: "some-other-class" %>`.
|
5
|
+
|
3
6
|
## Version 3.0.6
|
4
7
|
* Pretext and posttext are now enclosed in spans with `<span class="pretext">` and `<span class="posttext">`.
|
5
8
|
* Semantic breadcrumbs are now rendered in spans instead of divs to enable easier styling.
|
data/README.md
CHANGED
@@ -106,8 +106,10 @@ Option | Description
|
|
106
106
|
:link_current | Whether the current crumb should be linked to. | False
|
107
107
|
:semantic | Whether it should generate [semantic breadcrumbs](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=185417). | False
|
108
108
|
:id | ID for the breadcrumbs container. | None
|
109
|
-
:class | CSS class for the breadcrumbs container.
|
110
|
-
:current_class | CSS class for the current link or span.
|
109
|
+
:class | CSS class for the breadcrumbs container. Can be set to `nil` for no class. | `"breadcrumbs"`
|
110
|
+
:current_class | CSS class for the current link or span. Can be set to `nil` for no class. | `"current"`
|
111
|
+
:pretext_class | CSS class for the pretext, if given. Can be set to `nil` for no class. | `"pretext"`
|
112
|
+
:posttext_class | CSS class for the posttext, if given. Can be set to `nil` for no class. | `"posttext"`
|
111
113
|
:container_tag | Tag type that contains the breadcrumbs. | `:div`
|
112
114
|
:fragment_tag | Tag type to contain each breadcrumb fragment/link. | None
|
113
115
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "gretel", :path => ".."
|
4
|
+
|
5
|
+
gem "rails", "~> 3.2.0"
|
6
|
+
gem "sqlite3"
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
gem "jquery-rails"
|
10
|
+
|
11
|
+
# Declare any dependencies that are still in development here instead of in
|
12
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
13
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
14
|
+
# your gem to rubygems.org.
|
15
|
+
|
16
|
+
# To use debugger
|
17
|
+
# gem 'debugger'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "gretel", :path => ".."
|
4
|
+
|
5
|
+
gem "rails", "~> 4.0.0"
|
6
|
+
gem "sqlite3"
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
gem "jquery-rails"
|
10
|
+
|
11
|
+
# Declare any dependencies that are still in development here instead of in
|
12
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
13
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
14
|
+
# your gem to rubygems.org.
|
15
|
+
|
16
|
+
# To use debugger
|
17
|
+
# gem 'debugger'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "gretel", :path => ".."
|
4
|
+
|
5
|
+
gem "rails", "~> 4.1.0"
|
6
|
+
gem "sqlite3"
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
gem "jquery-rails"
|
10
|
+
|
11
|
+
# Declare any dependencies that are still in development here instead of in
|
12
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
13
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
14
|
+
# your gem to rubygems.org.
|
15
|
+
|
16
|
+
# To use debugger
|
17
|
+
# gem 'debugger'
|
data/lib/gretel.rb
CHANGED
@@ -16,7 +16,11 @@ module Gretel
|
|
16
16
|
# breadcrumbs set in engines.
|
17
17
|
def breadcrumb_paths
|
18
18
|
@breadcrumb_paths ||= begin
|
19
|
-
|
19
|
+
engines = Rails::Application::Railties.respond_to?(:engines) ?
|
20
|
+
Rails::Application::Railties.engines :
|
21
|
+
Rails::Engine.subclasses.map(&:instance)
|
22
|
+
|
23
|
+
engine_roots = engines.map { |e| e.config.root }
|
20
24
|
|
21
25
|
[*engine_roots, Rails.root].map do |root|
|
22
26
|
[root.join("config", "breadcrumbs.rb"),
|
data/lib/gretel/renderer.rb
CHANGED
@@ -11,6 +11,8 @@ module Gretel
|
|
11
11
|
semantic: false,
|
12
12
|
class: "breadcrumbs",
|
13
13
|
current_class: "current",
|
14
|
+
pretext_class: "pretext",
|
15
|
+
posttext_class: "posttext",
|
14
16
|
id: nil
|
15
17
|
}
|
16
18
|
|
@@ -179,13 +181,13 @@ module Gretel
|
|
179
181
|
html_fragments = []
|
180
182
|
|
181
183
|
if options[:pretext].present?
|
182
|
-
html_fragments << content_tag(:span, options[:pretext], class:
|
184
|
+
html_fragments << content_tag(:span, options[:pretext], class: options[:pretext_class])
|
183
185
|
end
|
184
186
|
|
185
187
|
html_fragments << fragments.join(options[:separator])
|
186
188
|
|
187
189
|
if options[:posttext].present?
|
188
|
-
html_fragments << content_tag(:span, options[:posttext], class:
|
190
|
+
html_fragments << content_tag(:span, options[:posttext], class: options[:posttext_class])
|
189
191
|
end
|
190
192
|
|
191
193
|
html = html_fragments.join(" ").html_safe
|
data/lib/gretel/version.rb
CHANGED
@@ -7,53 +7,8 @@ require "gretel"
|
|
7
7
|
|
8
8
|
module Dummy
|
9
9
|
class Application < Rails::Application
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# Custom directories with classes and modules you want to be autoloadable.
|
15
|
-
# config.autoload_paths += %W(#{config.root}/extras)
|
16
|
-
|
17
|
-
# Only load the plugins named here, in the order given (default is alphabetical).
|
18
|
-
# :all can be used as a placeholder for all plugins not explicitly named.
|
19
|
-
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
20
|
-
|
21
|
-
# Activate observers that should always be running.
|
22
|
-
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
23
|
-
|
24
|
-
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
25
|
-
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
26
|
-
# config.time_zone = 'Central Time (US & Canada)'
|
27
|
-
|
28
|
-
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
29
|
-
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
30
|
-
# config.i18n.default_locale = :de
|
31
|
-
|
32
|
-
# Configure the default encoding used in templates for Ruby 1.9.
|
33
|
-
config.encoding = "utf-8"
|
34
|
-
|
35
|
-
# Configure sensitive parameters which will be filtered from the log file.
|
36
|
-
config.filter_parameters += [:password]
|
37
|
-
|
38
|
-
# Enable escaping HTML in JSON.
|
39
|
-
config.active_support.escape_html_entities_in_json = true
|
40
|
-
|
41
|
-
# Use SQL instead of Active Record's schema dumper when creating the database.
|
42
|
-
# This is necessary if your schema can't be completely dumped by the schema dumper,
|
43
|
-
# like if you have constraints or database-specific column types
|
44
|
-
# config.active_record.schema_format = :sql
|
45
|
-
|
46
|
-
# Enforce whitelist mode for mass assignment.
|
47
|
-
# This will create an empty whitelist of attributes available for mass-assignment for all models
|
48
|
-
# in your app. As such, your models will need to explicitly whitelist or blacklist accessible
|
49
|
-
# parameters by using an attr_accessible or attr_protected declaration.
|
50
|
-
config.active_record.whitelist_attributes = true
|
51
|
-
|
52
|
-
# Enable the asset pipeline
|
53
|
-
config.assets.enabled = true
|
54
|
-
|
55
|
-
# Version of your assets, change this if you want to expire all your assets
|
56
|
-
config.assets.version = '1.0'
|
10
|
+
config.secret_token = "secret token"
|
11
|
+
config.active_support.deprecation = :log
|
12
|
+
config.eager_load = false
|
57
13
|
end
|
58
14
|
end
|
59
|
-
|
@@ -1,37 +1,2 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
3
|
-
|
4
|
-
# In the development environment your application's code is reloaded on
|
5
|
-
# every request. This slows down response time but is perfect for development
|
6
|
-
# since you don't have to restart the web server when you make code changes.
|
7
|
-
config.cache_classes = false
|
8
|
-
|
9
|
-
# Log error messages when you accidentally call methods on nil.
|
10
|
-
config.whiny_nils = true
|
11
|
-
|
12
|
-
# Show full error reports and disable caching
|
13
|
-
config.consider_all_requests_local = true
|
14
|
-
config.action_controller.perform_caching = false
|
15
|
-
|
16
|
-
# Don't care if the mailer can't send
|
17
|
-
config.action_mailer.raise_delivery_errors = false
|
18
|
-
|
19
|
-
# Print deprecation notices to the Rails logger
|
20
|
-
config.active_support.deprecation = :log
|
21
|
-
|
22
|
-
# Only use best-standards-support built into browsers
|
23
|
-
config.action_dispatch.best_standards_support = :builtin
|
24
|
-
|
25
|
-
# Raise exception on mass assignment protection for Active Record models
|
26
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
27
|
-
|
28
|
-
# Log the query plan for queries taking more than this (works
|
29
|
-
# with SQLite, MySQL, and PostgreSQL)
|
30
|
-
config.active_record.auto_explain_threshold_in_seconds = 0.5
|
31
|
-
|
32
|
-
# Do not compress assets
|
33
|
-
config.assets.compress = false
|
34
|
-
|
35
|
-
# Expands the lines which load the assets
|
36
|
-
config.assets.debug = true
|
37
2
|
end
|
@@ -1,67 +1,2 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
3
|
-
|
4
|
-
# Code is not reloaded between requests
|
5
|
-
config.cache_classes = true
|
6
|
-
|
7
|
-
# Full error reports are disabled and caching is turned on
|
8
|
-
config.consider_all_requests_local = false
|
9
|
-
config.action_controller.perform_caching = true
|
10
|
-
|
11
|
-
# Disable Rails's static asset server (Apache or nginx will already do this)
|
12
|
-
config.serve_static_assets = false
|
13
|
-
|
14
|
-
# Compress JavaScripts and CSS
|
15
|
-
config.assets.compress = true
|
16
|
-
|
17
|
-
# Don't fallback to assets pipeline if a precompiled asset is missed
|
18
|
-
config.assets.compile = false
|
19
|
-
|
20
|
-
# Generate digests for assets URLs
|
21
|
-
config.assets.digest = true
|
22
|
-
|
23
|
-
# Defaults to nil and saved in location specified by config.assets.prefix
|
24
|
-
# config.assets.manifest = YOUR_PATH
|
25
|
-
|
26
|
-
# Specifies the header that your server uses for sending files
|
27
|
-
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
28
|
-
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
29
|
-
|
30
|
-
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
31
|
-
# config.force_ssl = true
|
32
|
-
|
33
|
-
# See everything in the log (default is :info)
|
34
|
-
# config.log_level = :debug
|
35
|
-
|
36
|
-
# Prepend all log lines with the following tags
|
37
|
-
# config.log_tags = [ :subdomain, :uuid ]
|
38
|
-
|
39
|
-
# Use a different logger for distributed setups
|
40
|
-
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
41
|
-
|
42
|
-
# Use a different cache store in production
|
43
|
-
# config.cache_store = :mem_cache_store
|
44
|
-
|
45
|
-
# Enable serving of images, stylesheets, and JavaScripts from an asset server
|
46
|
-
# config.action_controller.asset_host = "http://assets.example.com"
|
47
|
-
|
48
|
-
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
|
49
|
-
# config.assets.precompile += %w( search.js )
|
50
|
-
|
51
|
-
# Disable delivery errors, bad email addresses will be ignored
|
52
|
-
# config.action_mailer.raise_delivery_errors = false
|
53
|
-
|
54
|
-
# Enable threaded mode
|
55
|
-
# config.threadsafe!
|
56
|
-
|
57
|
-
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
58
|
-
# the I18n.default_locale when a translation can not be found)
|
59
|
-
config.i18n.fallbacks = true
|
60
|
-
|
61
|
-
# Send deprecation notices to registered listeners
|
62
|
-
config.active_support.deprecation = :notify
|
63
|
-
|
64
|
-
# Log the query plan for queries taking more than this (works
|
65
|
-
# with SQLite, MySQL, and PostgreSQL)
|
66
|
-
# config.active_record.auto_explain_threshold_in_seconds = 0.5
|
67
2
|
end
|
@@ -1,37 +1,2 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
3
|
-
|
4
|
-
# The test environment is used exclusively to run your application's
|
5
|
-
# test suite. You never need to work with it otherwise. Remember that
|
6
|
-
# your test database is "scratch space" for the test suite and is wiped
|
7
|
-
# and recreated between test runs. Don't rely on the data there!
|
8
|
-
config.cache_classes = true
|
9
|
-
|
10
|
-
# Configure static asset server for tests with Cache-Control for performance
|
11
|
-
config.serve_static_assets = true
|
12
|
-
config.static_cache_control = "public, max-age=3600"
|
13
|
-
|
14
|
-
# Log error messages when you accidentally call methods on nil
|
15
|
-
config.whiny_nils = true
|
16
|
-
|
17
|
-
# Show full error reports and disable caching
|
18
|
-
config.consider_all_requests_local = true
|
19
|
-
config.action_controller.perform_caching = false
|
20
|
-
|
21
|
-
# Raise exceptions instead of rendering exception templates
|
22
|
-
config.action_dispatch.show_exceptions = false
|
23
|
-
|
24
|
-
# Disable request forgery protection in test environment
|
25
|
-
config.action_controller.allow_forgery_protection = false
|
26
|
-
|
27
|
-
# Tell Action Mailer not to deliver emails to the real world.
|
28
|
-
# The :test delivery method accumulates sent emails in the
|
29
|
-
# ActionMailer::Base.deliveries array.
|
30
|
-
config.action_mailer.delivery_method = :test
|
31
|
-
|
32
|
-
# Raise exception on mass assignment protection for Active Record models
|
33
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
34
|
-
|
35
|
-
# Print deprecation notices to the stderr
|
36
|
-
config.active_support.deprecation = :stderr
|
37
2
|
end
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
Dummy::Application.routes.draw do
|
2
2
|
root to: "dummy#dummy"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
get "about" => "dummy#dummy", as: :about
|
5
|
+
get "about/contact" => "dummy#dummy", as: :contact
|
6
|
+
get "about/contact/form" => "dummy#dummy", as: :contact_form
|
7
7
|
|
8
8
|
resources :projects do
|
9
9
|
resources :issues
|
10
10
|
end
|
11
|
-
end
|
11
|
+
end
|
data/test/helper_methods_test.rb
CHANGED
@@ -2,140 +2,160 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class HelperMethodsTest < ActionView::TestCase
|
4
4
|
include Gretel::ViewHelpers
|
5
|
+
|
6
|
+
self.fixture_path = File.expand_path("../../test/fixtures", __FILE__)
|
5
7
|
fixtures :all
|
8
|
+
|
6
9
|
helper :application
|
7
10
|
|
8
11
|
setup do
|
9
12
|
Gretel.reset!
|
10
13
|
end
|
11
14
|
|
15
|
+
def itemscope_value
|
16
|
+
ActionView::Helpers::TagHelper::BOOLEAN_ATTRIBUTES.include?("itemscope") ?
|
17
|
+
"itemscope" : ""
|
18
|
+
end
|
19
|
+
|
12
20
|
# Breadcrumb generation
|
13
21
|
|
14
|
-
test "
|
22
|
+
test "basic breadcrumb" do
|
15
23
|
breadcrumb :basic
|
16
|
-
|
24
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span></div>},
|
17
25
|
breadcrumbs.to_s
|
18
26
|
end
|
19
27
|
|
20
|
-
test "
|
28
|
+
test "breadcrumb with root" do
|
21
29
|
breadcrumb :with_root
|
22
|
-
|
30
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span></div>},
|
23
31
|
breadcrumbs.to_s
|
24
32
|
end
|
25
33
|
|
26
|
-
test "
|
34
|
+
test "breadcrumb with parent" do
|
27
35
|
breadcrumb :with_parent
|
28
|
-
|
36
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about">About</a> › <span class="current">Contact</span></div>},
|
29
37
|
breadcrumbs.to_s
|
30
38
|
end
|
31
39
|
|
32
|
-
test "
|
40
|
+
test "breadcrumb with autopath" do
|
33
41
|
breadcrumb :with_autopath, projects(:one)
|
34
|
-
|
42
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">Test Project</span></div>},
|
35
43
|
breadcrumbs.to_s
|
36
44
|
end
|
37
45
|
|
38
|
-
test "
|
46
|
+
test "breadcrumb with parent object" do
|
39
47
|
breadcrumb :with_parent_object, issues(:one)
|
40
|
-
|
48
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/projects/1">Test Project</a> › <span class="current">Test Issue</span></div>},
|
41
49
|
breadcrumbs.to_s
|
42
50
|
end
|
43
51
|
|
44
|
-
test "
|
52
|
+
test "multiple links" do
|
45
53
|
breadcrumb :multiple_links
|
46
|
-
|
54
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about/contact">Contact</a> › <span class="current">Contact form</span></div>},
|
47
55
|
breadcrumbs.to_s
|
48
56
|
end
|
49
57
|
|
50
|
-
test "
|
58
|
+
test "multiple links with parent" do
|
51
59
|
breadcrumb :multiple_links_with_parent
|
52
|
-
|
60
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about">About</a> › <a href="/about/contact">Contact</a> › <span class="current">Contact form</span></div>},
|
53
61
|
breadcrumbs.to_s
|
54
62
|
end
|
55
63
|
|
56
|
-
test "
|
64
|
+
test "semantic breadcrumb" do
|
57
65
|
breadcrumb :with_root
|
58
|
-
|
66
|
+
assert_dom_equal %Q{<div class="breadcrumbs"><span itemscope="#{itemscope_value}" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/" itemprop="url"><span itemprop="title">Home</span></a></span> › <span itemscope="#{itemscope_value}" itemtype="http://data-vocabulary.org/Breadcrumb"><span class="current" itemprop="title">About</span></span></div>},
|
59
67
|
breadcrumbs(semantic: true).to_s
|
60
68
|
end
|
61
69
|
|
62
70
|
test "doesn't show root alone" do
|
63
71
|
breadcrumb :root
|
64
|
-
|
72
|
+
assert_dom_equal "", breadcrumbs.to_s
|
65
73
|
end
|
66
74
|
|
67
75
|
test "displays single fragment" do
|
68
76
|
breadcrumb :root
|
69
|
-
|
77
|
+
assert_dom_equal %{<div class="breadcrumbs"><span class="current">Home</span></div>},
|
70
78
|
breadcrumbs(display_single_fragment: true).to_s
|
71
79
|
end
|
72
80
|
|
73
81
|
test "displays single non-root fragment" do
|
74
82
|
breadcrumb :basic
|
75
|
-
|
83
|
+
assert_dom_equal %{<div class="breadcrumbs"><span class="current">About</span></div>},
|
76
84
|
breadcrumbs(autoroot: false, display_single_fragment: true).to_s
|
77
85
|
end
|
78
86
|
|
79
|
-
test "
|
80
|
-
|
87
|
+
test "no breadcrumb" do
|
88
|
+
assert_dom_equal "", breadcrumbs.to_s
|
81
89
|
end
|
82
90
|
|
83
91
|
test "links current breadcrumb" do
|
84
92
|
breadcrumb :with_root
|
85
|
-
|
93
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about" class="current">About</a></div>},
|
86
94
|
breadcrumbs(link_current: true).to_s
|
87
95
|
end
|
88
96
|
|
89
|
-
test "
|
97
|
+
test "pretext" do
|
90
98
|
breadcrumb :basic
|
91
|
-
|
99
|
+
assert_dom_equal %{<div class="breadcrumbs"><span class="pretext">You are here:</span> <a href="/">Home</a> › <span class="current">About</span></div>},
|
92
100
|
breadcrumbs(pretext: "You are here:").to_s
|
93
101
|
end
|
94
102
|
|
95
|
-
test "
|
103
|
+
test "posttext" do
|
96
104
|
breadcrumb :basic
|
97
|
-
|
105
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span> <span class="posttext">text after breadcrumbs</span></div>},
|
98
106
|
breadcrumbs(posttext: "text after breadcrumbs").to_s
|
99
107
|
end
|
100
108
|
|
101
109
|
test "autoroot disabled" do
|
102
110
|
breadcrumb :basic
|
103
|
-
|
111
|
+
assert_dom_equal "", breadcrumbs(autoroot: false).to_s
|
104
112
|
end
|
105
113
|
|
106
|
-
test "
|
114
|
+
test "separator" do
|
107
115
|
breadcrumb :with_root
|
108
|
-
|
116
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> » <span class="current">About</span></div>},
|
109
117
|
breadcrumbs(separator: " » ").to_s
|
110
118
|
end
|
111
119
|
|
112
|
-
test "
|
120
|
+
test "element id" do
|
113
121
|
breadcrumb :basic
|
114
|
-
|
122
|
+
assert_dom_equal %{<div class="breadcrumbs" id="custom_id"><a href="/">Home</a> › <span class="current">About</span></div>},
|
115
123
|
breadcrumbs(id: "custom_id").to_s
|
116
124
|
end
|
117
125
|
|
118
|
-
test "
|
126
|
+
test "custom container class" do
|
119
127
|
breadcrumb :basic
|
120
|
-
|
128
|
+
assert_dom_equal %{<div class="custom_class"><a href="/">Home</a> › <span class="current">About</span></div>},
|
121
129
|
breadcrumbs(class: "custom_class").to_s
|
122
130
|
end
|
123
131
|
|
124
|
-
test "
|
132
|
+
test "custom current class" do
|
125
133
|
breadcrumb :basic
|
126
|
-
|
134
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="custom_current_class">About</span></div>},
|
127
135
|
breadcrumbs(current_class: "custom_current_class").to_s
|
128
136
|
end
|
129
137
|
|
138
|
+
test "custom pretext class" do
|
139
|
+
breadcrumb :basic
|
140
|
+
assert_dom_equal %{<div class="breadcrumbs"><span class="custom_pretext_class">You are here:</span> <a href="/">Home</a> › <span class="current">About</span></div>},
|
141
|
+
breadcrumbs(pretext: "You are here:", pretext_class: "custom_pretext_class").to_s
|
142
|
+
end
|
143
|
+
|
144
|
+
test "custom posttext class" do
|
145
|
+
breadcrumb :basic
|
146
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span> <span class="custom_posttext_class">after breadcrumbs</span></div>},
|
147
|
+
breadcrumbs(posttext: "after breadcrumbs", posttext_class: "custom_posttext_class").to_s
|
148
|
+
end
|
149
|
+
|
130
150
|
test "unsafe html" do
|
131
151
|
breadcrumb :with_unsafe_html
|
132
|
-
|
152
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">Test <strong>bold text</strong></span></div>},
|
133
153
|
breadcrumbs.to_s
|
134
154
|
end
|
135
155
|
|
136
156
|
test "safe html" do
|
137
157
|
breadcrumb :with_safe_html
|
138
|
-
|
158
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">Test <strong>bold text</strong></span></div>},
|
139
159
|
breadcrumbs.to_s
|
140
160
|
end
|
141
161
|
|
@@ -213,53 +233,53 @@ class HelperMethodsTest < ActionView::TestCase
|
|
213
233
|
end
|
214
234
|
end
|
215
235
|
|
216
|
-
|
236
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/about">Test</a> › <span class="current">Other Link</span></div>},
|
217
237
|
breadcrumbs(autoroot: false).to_s
|
218
238
|
end
|
219
239
|
|
220
240
|
test "without link" do
|
221
241
|
breadcrumb :without_link
|
222
|
-
|
242
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › Also without link › <span class="current">Without link</span></div>},
|
223
243
|
breadcrumbs.to_s
|
224
244
|
end
|
225
245
|
|
226
246
|
test "view context" do
|
227
247
|
breadcrumb :using_view_helper
|
228
|
-
|
248
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">TestTest</span></div>},
|
229
249
|
breadcrumbs.to_s
|
230
250
|
end
|
231
251
|
|
232
252
|
test "multiple arguments" do
|
233
253
|
breadcrumb :with_multiple_arguments, "One", "Two", "Three"
|
234
|
-
|
254
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about">First OneOne then TwoTwo then ThreeThree</a> › <span class="current">One and Two and Three</span></div>},
|
235
255
|
breadcrumbs.to_s
|
236
256
|
end
|
237
257
|
|
238
258
|
test "from views folder" do
|
239
259
|
breadcrumb :from_views
|
240
|
-
|
260
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">Breadcrumb From View</span></div>},
|
241
261
|
breadcrumbs.to_s
|
242
262
|
end
|
243
263
|
|
244
264
|
test "with_breadcrumb" do
|
245
265
|
breadcrumb :basic
|
246
266
|
|
247
|
-
|
267
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span></div>},
|
248
268
|
breadcrumbs.to_s
|
249
269
|
|
250
270
|
with_breadcrumb(:with_parent_object, issues(:one)) do
|
251
|
-
|
271
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/projects/1">Test Project</a> › <span class="current">Test Issue</span></div>},
|
252
272
|
breadcrumbs.to_s
|
253
273
|
end
|
254
274
|
|
255
|
-
|
275
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span></div>},
|
256
276
|
breadcrumbs.to_s
|
257
277
|
end
|
258
278
|
|
259
279
|
test "calling breadcrumbs helper twice" do
|
260
280
|
breadcrumb :with_parent
|
261
281
|
2.times do
|
262
|
-
|
282
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/about">About</a> › <span class="current">Contact</span></div>},
|
263
283
|
breadcrumbs.to_s
|
264
284
|
end
|
265
285
|
end
|
@@ -294,7 +314,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
294
314
|
|
295
315
|
test "inferred breadcrumb" do
|
296
316
|
breadcrumb Project.first
|
297
|
-
|
317
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">Test Project</span></div>},
|
298
318
|
breadcrumbs.to_s
|
299
319
|
end
|
300
320
|
|
@@ -302,43 +322,43 @@ class HelperMethodsTest < ActionView::TestCase
|
|
302
322
|
|
303
323
|
test "default style" do
|
304
324
|
breadcrumb :basic
|
305
|
-
|
325
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <span class="current">About</span></div>},
|
306
326
|
breadcrumbs.to_s
|
307
327
|
end
|
308
328
|
|
309
329
|
test "ordered list style" do
|
310
330
|
breadcrumb :basic
|
311
|
-
|
331
|
+
assert_dom_equal %{<ol class="breadcrumbs"><li><a href="/">Home</a></li><li class="current">About</li></ol>},
|
312
332
|
breadcrumbs(style: :ol).to_s
|
313
333
|
end
|
314
334
|
|
315
335
|
test "unordered list style" do
|
316
336
|
breadcrumb :basic
|
317
|
-
|
337
|
+
assert_dom_equal %{<ul class="breadcrumbs"><li><a href="/">Home</a></li><li class="current">About</li></ul>},
|
318
338
|
breadcrumbs(style: :ul).to_s
|
319
339
|
end
|
320
340
|
|
321
341
|
test "bootstrap style" do
|
322
342
|
breadcrumb :basic
|
323
|
-
|
343
|
+
assert_dom_equal %{<ol class="breadcrumb"><li><a href="/">Home</a></li><li class="active">About</li></ol>},
|
324
344
|
breadcrumbs(style: :bootstrap).to_s
|
325
345
|
end
|
326
346
|
|
327
347
|
test "foundation5 style" do
|
328
348
|
breadcrumb :basic
|
329
|
-
|
349
|
+
assert_dom_equal %{<ul class="breadcrumbs"><li><a href="/">Home</a></li><li class="current">About</li></ul>},
|
330
350
|
breadcrumbs(style: :foundation5).to_s
|
331
351
|
end
|
332
352
|
|
333
353
|
test "custom container and fragment tags" do
|
334
354
|
breadcrumb :basic
|
335
|
-
|
355
|
+
assert_dom_equal %{<c class="breadcrumbs"><f><a href="/">Home</a></f> › <f class="current">About</f></c>},
|
336
356
|
breadcrumbs(container_tag: :c, fragment_tag: :f).to_s
|
337
357
|
end
|
338
358
|
|
339
359
|
test "custom semantic container and fragment tags" do
|
340
360
|
breadcrumb :basic
|
341
|
-
|
361
|
+
assert_dom_equal %Q{<c class="breadcrumbs"><f itemscope="#{itemscope_value}" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/" itemprop="url"><span itemprop="title">Home</span></a></f> › <f class="current" itemscope="#{itemscope_value}" itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">About</span></f></c>},
|
342
362
|
breadcrumbs(container_tag: :c, fragment_tag: :f, semantic: true).to_s
|
343
363
|
end
|
344
364
|
|
@@ -354,7 +374,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
354
374
|
|
355
375
|
breadcrumb :basic
|
356
376
|
|
357
|
-
|
377
|
+
assert_dom_equal %{<one class="breadcrumbs"><two><a href="/">Home</a></two><two class="current">About</two></one>},
|
358
378
|
breadcrumbs(style: :test_style).to_s
|
359
379
|
end
|
360
380
|
|
@@ -376,7 +396,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
376
396
|
end
|
377
397
|
|
378
398
|
breadcrumb :about
|
379
|
-
|
399
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <span class="current">About (loaded)</span></div>}, breadcrumbs.to_s
|
380
400
|
|
381
401
|
sleep 1 # File change interval is 1 second
|
382
402
|
|
@@ -392,7 +412,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
392
412
|
end
|
393
413
|
|
394
414
|
breadcrumb :about
|
395
|
-
|
415
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/test">Home (reloaded)</a> › <span class="current">About (reloaded)</span></div>}, breadcrumbs.to_s
|
396
416
|
end
|
397
417
|
|
398
418
|
test "reload configuration when file is added" do
|
@@ -421,7 +441,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
421
441
|
end
|
422
442
|
|
423
443
|
breadcrumb :about
|
424
|
-
|
444
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <span class="current">About (loaded)</span></div>}, breadcrumbs.to_s
|
425
445
|
end
|
426
446
|
|
427
447
|
test "reload configuration when file is deleted" do
|
@@ -449,7 +469,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
449
469
|
end
|
450
470
|
|
451
471
|
breadcrumb :contact
|
452
|
-
|
472
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <a href="/about">About (loaded)</a> › <span class="current">Contact (loaded)</span></div>}, breadcrumbs.to_s
|
453
473
|
|
454
474
|
File.delete path.join("pages.rb")
|
455
475
|
|
@@ -459,7 +479,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
459
479
|
end
|
460
480
|
|
461
481
|
breadcrumb :about
|
462
|
-
|
482
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <span class="current">About (loaded)</span></div>}, breadcrumbs.to_s
|
463
483
|
end
|
464
484
|
|
465
485
|
test "reloads only in development environment" do
|
@@ -479,7 +499,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
479
499
|
end
|
480
500
|
|
481
501
|
breadcrumb :about
|
482
|
-
|
502
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <span class="current">About (loaded)</span></div>}, breadcrumbs.to_s
|
483
503
|
|
484
504
|
sleep 1
|
485
505
|
|
@@ -495,7 +515,7 @@ class HelperMethodsTest < ActionView::TestCase
|
|
495
515
|
end
|
496
516
|
|
497
517
|
breadcrumb :about
|
498
|
-
|
518
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home (loaded)</a> › <span class="current">About (loaded)</span></div>}, breadcrumbs.to_s
|
499
519
|
end
|
500
520
|
|
501
521
|
private
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gretel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lasse Bunk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: Gretel is a Ruby on Rails plugin that makes it easy yet flexible to create
|
@@ -46,13 +46,16 @@ executables: []
|
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
|
-
-
|
50
|
-
-
|
49
|
+
- .gitignore
|
50
|
+
- .travis.yml
|
51
51
|
- CHANGELOG.md
|
52
52
|
- Gemfile
|
53
53
|
- LICENSE.txt
|
54
54
|
- README.md
|
55
55
|
- Rakefile
|
56
|
+
- gemfiles/Gemfile-rails.3.2.x
|
57
|
+
- gemfiles/Gemfile-rails.4.0.x
|
58
|
+
- gemfiles/Gemfile-rails.4.1.x
|
56
59
|
- gretel.gemspec
|
57
60
|
- lib/generators/gretel/USAGE
|
58
61
|
- lib/generators/gretel/install_generator.rb
|
@@ -124,17 +127,17 @@ require_paths:
|
|
124
127
|
- lib
|
125
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
129
|
requirements:
|
127
|
-
- -
|
130
|
+
- - '>='
|
128
131
|
- !ruby/object:Gem::Version
|
129
132
|
version: '0'
|
130
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
134
|
requirements:
|
132
|
-
- -
|
135
|
+
- - '>='
|
133
136
|
- !ruby/object:Gem::Version
|
134
137
|
version: '0'
|
135
138
|
requirements: []
|
136
139
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
140
|
+
rubygems_version: 2.1.10
|
138
141
|
signing_key:
|
139
142
|
specification_version: 4
|
140
143
|
summary: Flexible Ruby on Rails breadcrumbs plugin.
|