gretel 1.0.4 → 1.0.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.
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