sorting_table_for 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -56,6 +56,24 @@ module SortingTableForSpecHelper
56
56
  include ActiveSupport
57
57
  include SortingTableFor
58
58
 
59
+ def routes_rails2
60
+ ActionController::Routing::Routes.clear!
61
+ ActionController::Routing::Routes.draw do |map|
62
+ map.resources :sorting_table_for_users, :member => { :edit_password => :get }
63
+ end
64
+ end
65
+
66
+ def routes_rails3
67
+ Rails.application.routes.clear!
68
+ Rails.application.routes.draw do
69
+ resources :sorting_table_for_users do
70
+ member do
71
+ get :edit_password
72
+ end
73
+ end
74
+ end
75
+ end
76
+
59
77
  def have_comp_tag(selector, options = {})
60
78
  if ::SortingTableFor::Tools::rails3?
61
79
  if options.has_key? :text
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorting_table_for
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 0
9
- version: 0.2.0
4
+ prerelease:
5
+ version: 0.2.1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Thomas Floch
@@ -27,14 +23,16 @@ extensions: []
27
23
  extra_rdoc_files:
28
24
  - README.mdown
29
25
  files:
30
- - lib/model/sorting_table_model_scope.rb
26
+ - lib/sorting_table_for/format_cell.rb
27
+ - lib/sorting_table_for/format_line.rb
31
28
  - lib/sorting_table_for/i18n.rb
29
+ - lib/sorting_table_for/model_scope.rb
32
30
  - lib/sorting_table_for/table_builder.rb
33
31
  - lib/sorting_table_for/tools.rb
34
32
  - lib/sorting_table_for.rb
35
33
  - spec/db/database.yml
36
34
  - spec/db/schema.rb
37
- - spec/fixtures/user.rb
35
+ - spec/fixtures/sorting_table_for_user.rb
38
36
  - spec/helpers/builder_spec.rb
39
37
  - spec/helpers/caption_spec.rb
40
38
  - spec/helpers/cell_value_spec.rb
@@ -71,23 +69,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
69
  requirements:
72
70
  - - ">="
73
71
  - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
72
  version: "0"
77
73
  required_rubygems_version: !ruby/object:Gem::Requirement
78
74
  none: false
79
75
  requirements:
80
76
  - - ">="
81
77
  - !ruby/object:Gem::Version
82
- segments:
83
- - 1
84
- - 3
85
- - 4
86
78
  version: 1.3.4
87
79
  requirements: []
88
80
 
89
81
  rubyforge_project: sorting_table_for
90
- rubygems_version: 1.3.7
82
+ rubygems_version: 1.5.2
91
83
  signing_key:
92
84
  specification_version: 3
93
85
  summary: A Rails table builder made to easily create and sort a table
@@ -1,72 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module SortingTableModelScope
4
-
5
- # Include the methods in models
6
- def self.included(base)
7
- base.extend(SingletonMethods)
8
- end
9
-
10
- module SingletonMethods
11
-
12
- # Return a scope of the object with an order
13
- #
14
- # === Usage
15
- #
16
- # sorting_table(the params) - Sorting by the given parameters
17
- # sorting_table(the params, column name) - Sort by the column name with direction ascending, if no parameters
18
- # sorting_table(the params, column name, direction) - Sort by the column name with the given direction, if no parameters
19
- #
20
- # === Exemples
21
- #
22
- # User.sorting_table(params)
23
- # User.sorting_table(params, :username)
24
- # User.sorting_table(params, :username, :desc)
25
- #
26
- def sorting_table(*args)
27
- raise ArgumentError, 'sorting_table: Too many arguments (max : 3)' if args.size > 3
28
- sort_table_param = get_sorting_table_params(args)
29
- return scoped({}) if !sort_table_param and args.size == 1
30
- sort, direction = get_sort_and_direction(sort_table_param, args)
31
- return scoped({}) if !sort or !valid_column?(sort) or !valid_direction?(direction)
32
- scoped({ :order => "#{sort} #{direction}" })
33
- end
34
-
35
- private
36
-
37
- # Return the params for sorting table
38
- def get_sorting_table_params(args)
39
- return nil unless args.first.is_a? Hash
40
- return nil unless args.first.has_key? SortingTableFor::TableBuilder.params_sort_table.to_s
41
- args.first[SortingTableFor::TableBuilder.params_sort_table.to_s]
42
- end
43
-
44
- # Parse the params and return the column name and the direction
45
- def get_sort_and_direction(sort_table_param, args)
46
- if sort_table_param
47
- key = sort_table_param.keys.first rescue nil
48
- value = sort_table_param.values.first rescue nil
49
- return nil if !key.is_a?(String) or !value.is_a?(String)
50
- return key, value
51
- end
52
- return nil if args.size < 2
53
- return args[1], 'asc' if args.size == 2
54
- return args[1], args[2]
55
- end
56
-
57
- # Return true if the column name exist
58
- def valid_column?(column)
59
- column_names.include? column.to_s.downcase
60
- end
61
-
62
- # Return true if the direction exist
63
- def valid_direction?(direction)
64
- %[asc desc].include? direction.to_s.downcase
65
- end
66
-
67
- end
68
- end
69
-
70
- if defined? ActiveRecord
71
- ActiveRecord::Base.send :include, SortingTableModelScope
72
- end