gretel 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gretel/crumbs.rb CHANGED
@@ -20,29 +20,32 @@ module Gretel
20
20
  all[name] = block
21
21
  end
22
22
 
23
- def get_crumb(name, object = nil)
23
+ def get_crumb(name, *params)
24
24
  raise "Crumb '#{name}' not found." unless all[name]
25
25
 
26
- @object = object # share the object so we can call it from link() and parent()
26
+ @params = params # share the params so we can call it from link() and parent()
27
27
  @link = nil
28
28
  @parent = nil
29
29
 
30
- all[name].call(object)
30
+ all[name].call(*params)
31
31
  Gretel::Crumb.new(@link, @parent)
32
32
  end
33
33
 
34
- def link(text, url)
35
- text = text.call(@object) if text.is_a?(Proc)
36
- url = url.call(@object) if url.is_a?(Proc)
34
+ def link(text, url, options = {})
35
+ text = text.call(*@params) if text.is_a?(Proc)
36
+ url = url.call(*@params) if url.is_a?(Proc)
37
37
 
38
- @link = Gretel::Link.new(text, url)
38
+ @link = Gretel::Link.new(text, url, options)
39
39
  end
40
40
 
41
- def parent(name, object = nil)
42
- name = name.call(@object) if name.is_a?(Proc)
43
- object = object.call(@object) if object.is_a?(Proc)
41
+ def parent(name, *params)
42
+ name = name.call(*@params) if name.is_a?(Proc)
44
43
 
45
- @parent = Gretel::Parent.new(name, object)
44
+ params.each_with_index do |param, i|
45
+ params[i] = param.call(&@params) if param.is_a?(Proc)
46
+ end
47
+
48
+ @parent = Gretel::Parent.new(name, *params)
46
49
  end
47
50
  end
48
51
  end
@@ -10,14 +10,14 @@ module Gretel
10
10
 
11
11
  def breadcrumb(*args)
12
12
  options = args.extract_options!
13
- name, object = args[0], args[1]
13
+ name, params = args[0], args[1..-1]
14
14
 
15
15
  if name
16
16
  @_breadcrumb_name = name
17
- @_breadcrumb_object = object
17
+ @_breadcrumb_params = params
18
18
  else
19
19
  if @_breadcrumb_name
20
- crumb = breadcrumb_for(@_breadcrumb_name, @_breadcrumb_object, options)
20
+ crumb = breadcrumb_for(@_breadcrumb_name, *@_breadcrumb_params, options)
21
21
  elsif options[:show_root_alone]
22
22
  crumb = breadcrumb_for(:root, options)
23
23
  end
@@ -36,21 +36,21 @@ module Gretel
36
36
  options[:link_last] = true
37
37
  separator = (options[:separator] || ">").html_safe
38
38
 
39
- name, object = args[0], args[1]
39
+ name, params = args[0], args[1..-1]
40
40
 
41
- crumb = Crumbs.get_crumb(name, object)
42
- out = link_to_if(link_last, crumb.link.text, crumb.link.url)
41
+ crumb = Crumbs.get_crumb(name, *params)
42
+ out = link_to_if(link_last, crumb.link.text, crumb.link.url, crumb.link.options)
43
43
 
44
44
  while parent = crumb.parent
45
45
  last_parent = parent.name
46
- crumb = Crumbs.get_crumb(parent.name, parent.object)
47
- out = link_to(crumb.link.text, crumb.link.url) + " " + separator + " " + out
46
+ crumb = Crumbs.get_crumb(parent.name, *parent.params)
47
+ out = link_to(crumb.link.text, crumb.link.url, crumb.link.options) + " " + separator + " " + out
48
48
  end
49
49
 
50
50
  # TODO: Refactor this
51
51
  if options[:autoroot] && name != :root && last_parent != :root
52
52
  crumb = Crumbs.get_crumb(:root)
53
- out = link_to(crumb.link.text, crumb.link.url) + " " + separator + " " + out
53
+ out = link_to(crumb.link.text, crumb.link.url, crumb.link.options) + " " + separator + " " + out
54
54
  end
55
55
 
56
56
  out
data/lib/gretel/link.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module Gretel
2
2
  class Link
3
- attr_accessor :text, :url
3
+ attr_accessor :options, :text, :url
4
4
 
5
- def initialize(text, url)
6
- @text, @url = text, url
5
+ def initialize(text, url, options = {})
6
+ @text, @url, @options = text, url, options
7
7
  end
8
8
  end
9
9
  end
data/lib/gretel/parent.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module Gretel
2
2
  class Parent
3
- attr_accessor :name, :object
3
+ attr_accessor :name, :params
4
4
 
5
- def initialize(name, object)
6
- @name, @object = name, object
5
+ def initialize(name, *params)
6
+ @name, @params = name, params
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gretel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 0
9
- - 4
10
- version: 1.0.4
8
+ - 5
9
+ version: 1.0.5
11
10
  platform: ruby
12
11
  authors:
13
12
  - Lasse Bunk
@@ -15,7 +14,8 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-09-20 00:00:00 Z
17
+ date: 2012-01-06 00:00:00 +01:00
18
+ default_executable:
19
19
  dependencies: []
20
20
 
21
21
  description: Gretel is a Ruby on Rails plugin that makes it easy yet flexible to create breadcrumbs.
@@ -34,7 +34,7 @@ files:
34
34
  - lib/gretel/helper_methods.rb
35
35
  - lib/gretel/link.rb
36
36
  - lib/gretel/parent.rb
37
- - lib/gretel.rb
37
+ has_rdoc: true
38
38
  homepage: http://github.com/lassebunk/gretel
39
39
  licenses: []
40
40
 
@@ -44,27 +44,23 @@ rdoc_options: []
44
44
  require_paths:
45
45
  - lib
46
46
  required_ruby_version: !ruby/object:Gem::Requirement
47
- none: false
48
47
  requirements:
49
48
  - - ">="
50
49
  - !ruby/object:Gem::Version
51
- hash: 3
52
50
  segments:
53
51
  - 0
54
52
  version: "0"
55
53
  required_rubygems_version: !ruby/object:Gem::Requirement
56
- none: false
57
54
  requirements:
58
55
  - - ">="
59
56
  - !ruby/object:Gem::Version
60
- hash: 3
61
57
  segments:
62
58
  - 0
63
59
  version: "0"
64
60
  requirements: []
65
61
 
66
62
  rubyforge_project:
67
- rubygems_version: 1.8.10
63
+ rubygems_version: 1.3.6
68
64
  signing_key:
69
65
  specification_version: 3
70
66
  summary: Flexible Ruby on Rails breadcrumbs plugin.
data/lib/gretel.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'gretel/crumb'
2
- require 'gretel/crumbs'
3
- require 'gretel/helper_methods'
4
- require 'gretel/link'
5
- require 'gretel/parent'
6
-
7
- ActionController::Base.send :include, Gretel::HelperMethods