extended_inherited_resources 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{extended_inherited_resources}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["josevalim", "stevo"]
@@ -33,10 +33,26 @@ module InheritedResources
33
33
  # @projects ||= end_of_association_chain.paginate(params[:page]).all
34
34
  # end
35
35
  #
36
+
37
+ def setup_searchlogic(param)
38
+ if param
39
+ param=:search unless param.is_a? Symbol
40
+ instance_variable_set("@search",end_of_association_chain.searchlogic(params[param]))
41
+ end
42
+ end
43
+
44
+ def config_hash
45
+ self.class.resources_configuration[:self]
46
+ end
47
+
36
48
  def collection
37
- get_collection_ivar || set_collection_ivar(end_of_association_chain.find(:all))
49
+ setup_searchlogic(config_hash[:searchlogic])
50
+ end_of_chain = config_hash[:searchlogic] ? @search : end_of_association_chain
51
+ end_of_chain = (per_page = config_hash[:pagination]) ? end_of_chain.paginate(:page => params[:page], :per_page => per_page) : end_of_chain.find(:all)
52
+ get_collection_ivar || set_collection_ivar(end_of_chain)
38
53
  end
39
54
 
55
+
40
56
  # This is how the resource is loaded.
41
57
  #
42
58
  # You might want to overwrite this method when you are using permalink.
@@ -36,7 +36,7 @@ module InheritedResources
36
36
  options.symbolize_keys!
37
37
  options.assert_valid_keys(:resource_class, :collection_name, :instance_name,
38
38
  :class_name, :route_prefix, :route_collection_name,
39
- :route_instance_name, :singleton, :redirects)
39
+ :route_instance_name, :singleton, :redirects, :searchlogic, :pagination)
40
40
 
41
41
  self.resource_class = options.delete(:resource_class) if options.key?(:resource_class)
42
42
  self.resource_class = options.delete(:class_name).constantize if options.key?(:class_name)
@@ -56,6 +56,9 @@ module InheritedResources
56
56
  self.redirects = {:create => self.redirects, :update => self.redirects}
57
57
  end
58
58
 
59
+ config[:searchlogic] = options.delete(:searchlogic) if options.key?(:searchlogic)
60
+ config[:pagination] = options.delete(:pagination) if options.key?(:pagination)
61
+
59
62
  options.each do |key, value|
60
63
  config[key] = value.to_sym
61
64
  end
@@ -255,11 +258,15 @@ module InheritedResources
255
258
 
256
259
  config[:route_collection_name] = config[:collection_name]
257
260
  config[:route_instance_name] = config[:instance_name]
261
+
262
+ config[:pagination] ||= 25
263
+ config[:searchlogic] ||= false
264
+
258
265
 
259
266
  # Deal with namespaced controllers
260
267
  namespaces = self.controller_path.split('/')[0..-2]
261
268
  config[:route_prefix] = namespaces.join('_') unless namespaces.empty?
262
-
269
+
263
270
  self.redirects ||= {}
264
271
  self.redirects[:create] ||= :index
265
272
  self.redirects[:update] ||= :index
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
7
+ - 2
8
8
  - 0
9
- version: 0.1.0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - josevalim