crumbs 1.2.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -5
- data/lib/crumbs/action_controller/base.rb +2 -11
- data/lib/crumbs/controller.rb +21 -0
- data/lib/crumbs/proxy.rb +9 -0
- data/lib/crumbs/version.rb +1 -1
- data/lib/crumbs.rb +21 -1
- data/lib/generators/crumbs/templates/crumbs.rb +1 -1
- data/test/dummy/app/controllers/pages_controller.rb +0 -6
- data/test/dummy/config/initializers/crumbs.rb +19 -0
- data/test/dummy/log/test.log +2346 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0CfsnjV9PTgwlR5hr0ZJ0lNFInsx4qr_zgDnI8wYXdA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3_I2jn5YxLciv3GtK_auIHda4TWNhZGieWePNoABWag.cache +3 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8pLqt1nXpM0CADV6_EF0KDbq4JiQCmjMIxj6pPZgm40.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9_0iCm3DZpig3DFydwsV8-3vCsUegD9B-YR_kxfWuxg.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DtXc_gTNuqlMogm9DYo1deRm00jNXPf0fyilnnre4mo.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KuObwG9-kiiTC9uTe_Y_WcDUv6iru-sTemI6-k4K-VI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NB1P923S_ERHEViNCpWJ8SWQPVGhGQbnoEZDFXAsMkU.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NRB4IoGG5vlEQSlxE-fq7JjM5DiMsZgx53bfpX9Qa-Q.cache +3 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PeALxNvJVmSUZlRLwsDzjXcHYkYl7swdEPX25zaZ4Sk.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SaR332UYmMwbCg2uCE2kc8IdAy0fz1Z0rzVjjdcHBfc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UWBHdOtGfj0EG8YqQJFo4VXX78gdxQ9UKQckSjlh2Xk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fg8Lpn3VSU1Cz0bY6ek8PqNXJKwHE4tH-_pxSZSVHoc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/j633CDb2pirQ_kRgsBIUuO9xrlJnPoE5wSh_Sk7a0B8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oL3tj9Cx76XI84KeuRvNWkE8SRDP7uTSGgeKXBJfwi4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/p8gRJoCgrplMxf3cIeQwVnrXECPodO1XmZT3b9iaId0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wZymCZN9x4UDexGqYG57Pp_5dfraxUy5TuEtv9bQzaE.cache +0 -0
- metadata +42 -7
- data/lib/crumbs/definitions.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a340edbee8381a599cfed3c3c5f495b0bf0bd156
|
4
|
+
data.tar.gz: 3d74d95648151946cc7bf9c11de2d7e3f0dcc63f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1628bf8db851169079ee1dfdd3ab1435dbdc60989bd1c8629a2225ecbee046e68812069be363155c680d54061ee78705470470c57ebb8d4e58f594cf9e811fa3
|
7
|
+
data.tar.gz: 24e176e3328621d1cf08c47b386a281c9ee618baa886186b0d733a752104eb33d2fa9cfd0fd35cecec26a7c3cc2ef6225bfa307dfc4f6c780cf3b69388066ea0
|
data/README.md
CHANGED
@@ -18,12 +18,12 @@ $ bundle
|
|
18
18
|
|
19
19
|
## Configuration
|
20
20
|
|
21
|
-
Generate the
|
21
|
+
Generate the initialization file:
|
22
22
|
```
|
23
23
|
rails g crumbs:install
|
24
24
|
```
|
25
25
|
|
26
|
-
The defaults values are:
|
26
|
+
The defaults configuration values are:
|
27
27
|
```ruby
|
28
28
|
Crumbs.configure do |config|
|
29
29
|
config.show_last = false
|
@@ -32,14 +32,24 @@ end
|
|
32
32
|
|
33
33
|
## Usage
|
34
34
|
|
35
|
-
In your
|
35
|
+
In your initialization file add crumbs referencing the controller and action with the dsl:
|
36
36
|
```ruby
|
37
|
-
|
37
|
+
Crumbs.define do
|
38
|
+
controller :site do
|
39
|
+
action :home, 'Home'
|
40
|
+
end
|
41
|
+
end
|
38
42
|
```
|
39
43
|
|
40
44
|
You can use a lambda, proc or block too, will receive the corresponding url parameters:
|
41
45
|
```ruby
|
42
|
-
|
46
|
+
Crumbs.define do
|
47
|
+
controller :site do
|
48
|
+
action :product do |params|
|
49
|
+
Product.find(params[:id]).name
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
43
53
|
```
|
44
54
|
|
45
55
|
Then in your views would be available a crumbs variable:
|
@@ -26,7 +26,7 @@ module Crumbs
|
|
26
26
|
@crumbs = []
|
27
27
|
paths.each do |path|
|
28
28
|
params = Rails.application.routes.recognize_path("#{request.base_url}#{path}") rescue next
|
29
|
-
if name = Crumbs
|
29
|
+
if name = Crumbs.find(params[:controller], params[:action], params)
|
30
30
|
if index = find_referer_index(path)
|
31
31
|
path = session[:referers][index][:fullpath]
|
32
32
|
end
|
@@ -41,16 +41,7 @@ module Crumbs
|
|
41
41
|
paths.include? referer[:path]
|
42
42
|
end
|
43
43
|
end
|
44
|
-
|
45
|
-
module ClassMethods
|
46
|
-
|
47
|
-
protected
|
48
|
-
|
49
|
-
def crumb(action, name=nil, &block)
|
50
|
-
Crumbs::Definitions.add controller_path, action.to_s, (block_given? ? block : name)
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
44
|
end
|
45
|
+
|
55
46
|
end
|
56
47
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Crumbs
|
2
|
+
class Controller
|
3
|
+
|
4
|
+
def initialize(controller)
|
5
|
+
@controller = controller
|
6
|
+
end
|
7
|
+
|
8
|
+
def action(action, name=nil, &block)
|
9
|
+
controller = @controller.to_s
|
10
|
+
action = action.to_s
|
11
|
+
name = (block_given? ? block : name)
|
12
|
+
all = Crumbs.all
|
13
|
+
if all.has_key? controller
|
14
|
+
all[controller][action] = name
|
15
|
+
else
|
16
|
+
all[controller] = { action => name }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
data/lib/crumbs/proxy.rb
ADDED
data/lib/crumbs/version.rb
CHANGED
data/lib/crumbs.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'crumbs/action_controller/base'
|
2
|
-
require 'crumbs/
|
2
|
+
require 'crumbs/proxy'
|
3
|
+
require 'crumbs/controller'
|
3
4
|
require 'crumbs/railtie'
|
4
5
|
|
5
6
|
module Crumbs
|
@@ -17,5 +18,24 @@ module Crumbs
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
21
|
+
def define(&block)
|
22
|
+
Proxy.new.instance_eval &block
|
23
|
+
end
|
24
|
+
|
25
|
+
def find(controller, action, params)
|
26
|
+
if all.has_key? controller and all[controller].has_key? action
|
27
|
+
name = all[controller][action]
|
28
|
+
if name.is_a? Proc
|
29
|
+
name.call params
|
30
|
+
else
|
31
|
+
name
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def all
|
37
|
+
@all ||= {}
|
38
|
+
end
|
39
|
+
|
20
40
|
end
|
21
41
|
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
Crumbs.
|
1
|
+
Crumbs.define do
|
2
2
|
end
|
@@ -1,11 +1,5 @@
|
|
1
1
|
class PagesController < ApplicationController
|
2
2
|
|
3
|
-
crumb :home, 'Home'
|
4
|
-
crumb(:static) { 'Static' }
|
5
|
-
crumb :i18n do I18n.t('hello') end
|
6
|
-
crumb :nested, ->(params) { 'Nested' }
|
7
|
-
crumb :param, proc { |params| "Param#{params[:param]}" }
|
8
|
-
|
9
3
|
def home
|
10
4
|
render :crumbs
|
11
5
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Crumbs.define do
|
2
|
+
|
3
|
+
controller :pages do
|
4
|
+
action :home, 'Home'
|
5
|
+
action :static do
|
6
|
+
'Static'
|
7
|
+
end
|
8
|
+
action :i18n do
|
9
|
+
I18n.t('hello')
|
10
|
+
end
|
11
|
+
action :nested do |params|
|
12
|
+
'Nested'
|
13
|
+
end
|
14
|
+
action :param do |params|
|
15
|
+
"Param#{params[:param]}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|