inherited_resources_helpers 0.0.12 → 0.0.13

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.
@@ -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: []