inherited_resources_helpers 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,13 +12,19 @@ module InheritedResources
12
12
  Base.class_eval do
13
13
  class << self
14
14
  def inherited_with_helpers(base)
15
+ inherited_without_helpers(base)
15
16
  base.send :include, Helpers::Resources
16
17
  base.send :include, Helpers::ResourcesUrlFor
17
18
  base.send :include, Helpers::Accessors
18
- inherited_without_helpers(base)
19
19
  end
20
20
  alias_method_chain :inherited, :helpers # TODO ugh.
21
21
  end
22
22
  end
23
+
24
+ UrlHelpers.module_eval do
25
+ def generate_url_and_path_helpers(prefix, name, resource_segments, resource_ivars)
26
+ # FIXME ... we define our own helpers for now, should merge with inherited_resources.
27
+ end
28
+ end
23
29
  end
24
30
 
@@ -27,23 +27,29 @@ module InheritedResources
27
27
  super(*resources)
28
28
  end
29
29
 
30
- def parent_index_url(options = {})
31
- polymorphic_url(parent_resources[0..-2] << parent_resources.last.class.base_class, options)
30
+ def index_parent_url(*resources)
31
+ resources = normalize_parent_resources_for_url(resources) { parent_resources[0..-2] << parent_resources.last.class.base_class }
32
+ polymorphic_url(*resources)
32
33
  end
33
34
 
34
- def parent_new_url(options = {})
35
- polymorphic_url(parent_resources[0..-2].unshift(:new) << parent_resources.last.class.name.underscore, options)
35
+ def new_parent_url(*resources)
36
+ resources, options = *normalize_parent_resources_for_url(resources) { parent_resources[0..-2] << parent_resources.last.class.name.underscore }
37
+ resources.unshift(:new)
38
+ polymorphic_url(resources, options)
36
39
  end
37
40
 
38
- def parent_show_url(options = {})
39
- polymorphic_url(parent_resources, options)
41
+ def show_parent_url(*resources)
42
+ resources = normalize_parent_resources_for_url(resources) { parent_resources }
43
+ polymorphic_url(*resources)
40
44
  end
41
45
 
42
- def parent_edit_url(options = {})
43
- polymorphic_url(parent_resources.unshift(:edit), options)
46
+ def edit_parent_url(*resources)
47
+ resources, options = normalize_parent_resources_for_url(resources) { parent_resources }
48
+ resources.unshift(:edit)
49
+ polymorphic_url(resources, options)
44
50
  end
45
51
 
46
- [:parent_index, :parent_new, :parent_show, :parent_edit].each do |action|
52
+ [:index_parent, :new_parent, :show_parent, :edit_parent].each do |action|
47
53
  define_method(:"#{action}_path") do |*args|
48
54
  send(:"#{action}_url", *args << args.extract_options!.reverse_merge(:routing_type => :path))
49
55
  end
@@ -58,12 +64,6 @@ module InheritedResources
58
64
  alias :destroy_url :show_url
59
65
  alias :destroy_path :show_path
60
66
 
61
- alias :parent_resources_url :parent_index_url
62
- alias :parent_resources_path :parent_index_path
63
-
64
- alias :parent_resource_url :parent_show_url
65
- alias :parent_resource_path :parent_show_path
66
-
67
67
  protected
68
68
 
69
69
  def normalize_resources_for_url(args, &default)
@@ -79,6 +79,20 @@ module InheritedResources
79
79
  end
80
80
  [args, options]
81
81
  end
82
+
83
+ def normalize_parent_resources_for_url(args, &default)
84
+ options = args.extract_options!
85
+ args = if args.empty?
86
+ default.call
87
+ elsif args.first.is_a?(Array)
88
+ args.first
89
+ else
90
+ resources = self.parent_resources.dup
91
+ resources.pop if resources.last.new_record?
92
+ resources + args
93
+ end
94
+ [args, options]
95
+ end
82
96
  end
83
97
  end
84
98
  end
@@ -1,3 +1,3 @@
1
1
  module InheritedResourcesHelpers
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.13'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inherited_resources_helpers
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 12
10
- version: 0.0.12
9
+ - 13
10
+ version: 0.0.13
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sven Fuchs
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-19 00:00:00 +02:00
18
+ date: 2010-10-21 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -33,7 +33,7 @@ dependencies:
33
33
  type: :development
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- name: active_support
36
+ name: activesupport
37
37
  prerelease: false
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
@@ -47,7 +47,7 @@ dependencies:
47
47
  type: :development
48
48
  version_requirements: *id002
49
49
  - !ruby/object:Gem::Dependency
50
- name: active_record
50
+ name: activerecord
51
51
  prerelease: false
52
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
53
  none: false
@@ -61,7 +61,7 @@ dependencies:
61
61
  type: :development
62
62
  version_requirements: *id003
63
63
  - !ruby/object:Gem::Dependency
64
- name: action_controller
64
+ name: actionpack
65
65
  prerelease: false
66
66
  requirement: &id004 !ruby/object:Gem::Requirement
67
67
  none: false
@@ -116,6 +116,20 @@ dependencies:
116
116
  version: "0"
117
117
  type: :development
118
118
  version_requirements: *id007
119
+ - !ruby/object:Gem::Dependency
120
+ name: sqlite3-ruby
121
+ prerelease: false
122
+ requirement: &id008 !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ hash: 3
128
+ segments:
129
+ - 0
130
+ version: "0"
131
+ type: :development
132
+ version_requirements: *id008
119
133
  description: "[description]"
120
134
  email: svenfuchs@artweb-design.de
121
135
  executables: []