auto_breadcrumbs 0.2.1 → 0.2.5
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db5a5d9098b01750c0510c78e3807fee42dc50bd
|
4
|
+
data.tar.gz: b0df76255442bb13f15820b8581feca85e21f12d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28cb5e660fda4d610091970c33cbd29c08c6ae6455982e19d7a42c5e31902c37f2c79cf47a93e0d84f08327c3d831a229b6270b144f9be1268852c4087adbc0a
|
7
|
+
data.tar.gz: 5f00dbea9aa60a5d5ed1d12c8da2698d1de08e98bfdfd0bf29c8c536b1866b9b83d6d7151f5ca3c423e66d777fb452d46a63669b0ce17308c37f7afe4bccb3cc
|
data/README.md
CHANGED
@@ -57,6 +57,9 @@ en:
|
|
57
57
|
|
58
58
|
For example, if you go to `/users/1/edit` it will show breadcrums like `Home / Users / Settings`.
|
59
59
|
|
60
|
+
In case when translations are absent it will try to build breadcrumbs automatically depending on resource and action names.
|
61
|
+
For example, if you visit `/countries/new` it will show breadcrums `Home / Countries / New`.
|
62
|
+
|
60
63
|
## Customization
|
61
64
|
|
62
65
|
For more information about customization of breadcrumbs visit [breadcrumbs_on_rails](https://github.com/weppos/breadcrumbs_on_rails).
|
@@ -6,6 +6,9 @@ module AutoBreadcrumbs
|
|
6
6
|
|
7
7
|
included do
|
8
8
|
before_filter :add_breadcrumb_on_action, except: :destroy
|
9
|
+
|
10
|
+
helper_method :resource_translation
|
11
|
+
helper_method :action_translation
|
9
12
|
end
|
10
13
|
|
11
14
|
private
|
@@ -14,28 +17,23 @@ module AutoBreadcrumbs
|
|
14
17
|
add_breadcrumb breadcrumbs_t('root'), :root_path
|
15
18
|
|
16
19
|
unless request.path == root_path
|
17
|
-
add_breadcrumb(
|
20
|
+
add_breadcrumb(resource_translation, index_path) if index_path
|
18
21
|
add_breadcrumb(action_translation) unless params[:action] == 'index'
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
rescue I18n::MissingTranslationData
|
26
|
-
params[:controller].split('_').map(&:capitalize).join(' ')
|
27
|
-
end
|
25
|
+
def resource_translation
|
26
|
+
breadcrumbs_t("controllers.#{ params[:controller] }.index") ||
|
27
|
+
params[:controller].humanize
|
28
28
|
end
|
29
29
|
|
30
30
|
def action_translation
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
breadcrumbs_t("actions.#{ breadcrumbs_action_name }")
|
35
|
-
end
|
31
|
+
breadcrumbs_t("controllers.#{ params[:controller] }.#{ breadcrumbs_action_name }") ||
|
32
|
+
breadcrumbs_t("actions.#{ breadcrumbs_action_name }") ||
|
33
|
+
breadcrumbs_action_name.humanize
|
36
34
|
end
|
37
35
|
|
38
|
-
def
|
36
|
+
def index_path
|
39
37
|
url_for(controller: params[:controller]) rescue nil
|
40
38
|
end
|
41
39
|
|
@@ -51,11 +49,7 @@ module AutoBreadcrumbs
|
|
51
49
|
end
|
52
50
|
|
53
51
|
def breadcrumbs_t(path)
|
54
|
-
I18n.t('auto_breadcrumbs.' << path)
|
55
|
-
end
|
56
|
-
|
57
|
-
def breadcrumbs_t!(path)
|
58
|
-
I18n.t!('auto_breadcrumbs.' << path)
|
52
|
+
I18n.t('auto_breadcrumbs.' << path, default: '').presence
|
59
53
|
end
|
60
54
|
end
|
61
55
|
end
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -12,7 +12,7 @@ feature 'Rendering breadcrumbs' do
|
|
12
12
|
# Country name page -----------------------------------------------------------------------------
|
13
13
|
|
14
14
|
let(:country_name_page) { BreadcrumbPage.new(index: country_names_path) }
|
15
|
-
let(:country_name_index_breadcrumbs) { root_breadcrumbs + ['Country
|
15
|
+
let(:country_name_index_breadcrumbs) { root_breadcrumbs + ['Country names'] }
|
16
16
|
|
17
17
|
# City page -------------------------------------------------------------------------------------
|
18
18
|
|
@@ -30,6 +30,7 @@ feature 'Rendering breadcrumbs' do
|
|
30
30
|
show: user_path('id'),
|
31
31
|
edit: edit_user_path('id'),
|
32
32
|
dup: dup_user_path('id'),
|
33
|
+
ban: ban_user_path('id'),
|
33
34
|
sync: sync_users_path
|
34
35
|
}
|
35
36
|
let(:user_index_breadcrumbs) { root_breadcrumbs + [locale['controllers']['users']['index']] }
|
@@ -37,6 +38,7 @@ feature 'Rendering breadcrumbs' do
|
|
37
38
|
let(:user_edit_breadcrumbs) { user_index_breadcrumbs + [locale['controllers']['users']['edit']] }
|
38
39
|
let(:user_dup_breadcrumbs) { user_index_breadcrumbs + [locale['controllers']['users']['dup']] }
|
39
40
|
let(:user_sync_breadcrumbs) { user_index_breadcrumbs + [locale['controllers']['users']['sync']] }
|
41
|
+
let(:user_ban_breadcrumbs) { user_index_breadcrumbs + ['Ban'] }
|
40
42
|
|
41
43
|
# -----------------------------------------------------------------------------------------------
|
42
44
|
|
@@ -73,5 +75,8 @@ feature 'Rendering breadcrumbs' do
|
|
73
75
|
|
74
76
|
user_page.visit_page(:sync)
|
75
77
|
expect(user_page.breadcrumbs).to eq(user_sync_breadcrumbs)
|
78
|
+
|
79
|
+
user_page.visit_page(:ban)
|
80
|
+
expect(user_page.breadcrumbs).to eq(user_ban_breadcrumbs)
|
76
81
|
end
|
77
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auto_breadcrumbs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evgeny Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: breadcrumbs_on_rails
|