sorting_table_for 0.1.0

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.
@@ -0,0 +1,92 @@
1
+ test:
2
+ date:
3
+ formats:
4
+ default: "%Y-%m-%d"
5
+ short: "%b %d"
6
+ long: "%B %d, %Y"
7
+
8
+ day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
9
+ abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
10
+
11
+ month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
12
+ abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
13
+ order:
14
+ - :year
15
+ - :month
16
+ - :day
17
+
18
+ time:
19
+ formats:
20
+ default: "%a, %d %b %Y %H:%M:%S %z"
21
+ short: "%d %b %H:%M"
22
+ long: "%B %d, %Y %H:%M"
23
+ am: "am"
24
+ pm: "pm"
25
+
26
+ number:
27
+ format:
28
+ separator: "."
29
+ delimiter: ","
30
+ precision: 3
31
+ significant: false
32
+ strip_insignificant_zeros: false
33
+
34
+ currency:
35
+ format:
36
+ format: "%u%n"
37
+ unit: "$"
38
+ separator: "."
39
+ delimiter: ","
40
+ precision: 2
41
+ significant: false
42
+ strip_insignificant_zeros: false
43
+
44
+ sorting_table_for:
45
+ total_entries: "Total Entries %{value}"
46
+ columns:
47
+ bool_true: 'True'
48
+ bool_false: 'False'
49
+
50
+ fakes:
51
+ index:
52
+ edit: 'Edit'
53
+ delete: 'Delete'
54
+ header:
55
+ username: 'Usernames'
56
+ firstname: 'Firstnames'
57
+ lastname: 'Lastnames'
58
+ position: 'Positions'
59
+ salary: 'Salary'
60
+ price: 'Prices'
61
+ active: 'Actives'
62
+ created_at: 'Created at'
63
+ updated_at: 'Updated at'
64
+ edit: 'Edit users'
65
+ delete: 'Delete users'
66
+ my_fake: 'Hello fake'
67
+
68
+
69
+ fake_scope:
70
+ my_test: 'Hello'
71
+
72
+ test_name: 'i18n name'
73
+ fakes_controller:
74
+ fake_action:
75
+ name: 'fake name'
76
+ my_test: 'say %{value}'
77
+ my_add:
78
+ name: 'fake add'
79
+
80
+ user:
81
+ fake_namespace:
82
+ fakes_controller:
83
+ fake_action:
84
+ name: 'fake'
85
+
86
+ fake_namespace:
87
+ fakes_controller:
88
+ fake_action:
89
+ name: 'fake namespace'
90
+
91
+ fake_action:
92
+ name: 'fake action'
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
3
+
4
+ describe SortingTableModelScope do
5
+
6
+ describe "# default usage" do
7
+
8
+ it "should do nothing with no option" do
9
+ User.sorting_table.all.should == User.all
10
+ end
11
+
12
+ it "should do nothing with option nil" do
13
+ User.sorting_table(nil).all.should == User.all
14
+ end
15
+
16
+ it "should do nothing with all options nil" do
17
+ User.sorting_table(nil, nil, nil).all.should == User.all
18
+ end
19
+
20
+ it "should raise an error with 4 arguments" do
21
+ expect {
22
+ User.sorting_table(nil, nil, nil, nil).all
23
+ }.to raise_error { ArgumentError }
24
+ end
25
+
26
+ it "should works with other scope" do
27
+ User.good_position.sorting_table.set_limit(2).all.should == User.find(:all, :conditions => 'position > 3', :limit => 2)
28
+ end
29
+
30
+ it "should not erase other order" do
31
+ User.sorting_table(nil, :firstname, :desc).find(:all, :order => 'lastname asc').should == User.find(:all, :order => 'lastname asc, firstname desc')
32
+ end
33
+
34
+ end
35
+
36
+ describe "# params usage" do
37
+
38
+ it "should works with correct params" do
39
+ User.sorting_table({ "table_sort" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
40
+ end
41
+
42
+ it "should do nothing with wrong column" do
43
+ User.sorting_table({ "table_sort" => { "test" => "asc" } }).all.should == User.all
44
+ end
45
+
46
+ it "should do nothing with wrong direction" do
47
+ User.sorting_table({ "table_sort" => { "username" => "test" } }).all.should == User.all
48
+ end
49
+
50
+ it "should do nothing with wrong arguments" do
51
+ User.sorting_table({ "table_sort" => { "price" => nil } }).all.should == User.all
52
+ end
53
+
54
+ it "should do nothing with wrong arguments (2)" do
55
+ User.sorting_table({ "table_sort" => nil }).all.should == User.all
56
+ end
57
+
58
+ it "should order by params not option" do
59
+ User.sorting_table({ "table_sort" => { "username" => "asc" } }, :firstname, :desc).all.should == User.find(:all, :order => 'username asc')
60
+ end
61
+
62
+ it "should works with custom param name" do
63
+ SortingTableFor::TableBuilder.params_sort_table = :sort_my_test
64
+ User.sorting_table({ "sort_my_test" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
65
+ end
66
+
67
+ end
68
+
69
+ describe "# options usage" do
70
+
71
+ it "should works with option" do
72
+ User.sorting_table(nil, :username, :desc).all.should == User.find(:all, :order => 'username desc')
73
+ end
74
+
75
+ it "should set option asc if not given" do
76
+ User.sorting_table(nil, :username).all.should == User.find(:all, :order => 'username asc')
77
+ end
78
+
79
+ it "should do nothing with wrong column" do
80
+ User.sorting_table(nil, :test).all.should == User.all
81
+ end
82
+
83
+ it "should do nothing with wring direction" do
84
+ User.sorting_table(nil, :username, :test).all.should == User.all
85
+ end
86
+
87
+ end
88
+
89
+ end
@@ -0,0 +1,70 @@
1
+ require 'rubygems'
2
+
3
+ begin
4
+ require File.dirname(__FILE__) + '/../../../../spec/spec_helper'
5
+ rescue LoadError
6
+ puts "You need to install rspec in your base app"
7
+ exit
8
+ end
9
+
10
+ puts "Launching spec for Rails #{Rails.version}"
11
+
12
+ if ::SortingTableFor::Tools::rails3?
13
+ RSpec.configure do |config|
14
+ config.include Webrat::Matchers, :type => :views
15
+ end
16
+ end
17
+
18
+ ##
19
+ ## Load fixtures
20
+ ##
21
+
22
+ ActiveRecord::Base.logger = false
23
+ #ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), 'debug.log'))
24
+
25
+ configuration = YAML.load_file(File.join(File.dirname(__FILE__), 'db', 'database.yml'))
26
+ ActiveRecord::Base.establish_connection(configuration[ENV["DB"] || "sqlite3"])
27
+
28
+ ActiveRecord::Base.silence do
29
+ ActiveRecord::Migration.verbose = false
30
+ load(File.join(File.dirname(__FILE__), "db", "schema.rb"))
31
+ end
32
+
33
+ ##
34
+ ## Load I18n locales
35
+ ##
36
+
37
+ if ::SortingTableFor::Tools::rails3?
38
+ I18n.load_path = Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'locales', 'test_rails3.yml')]
39
+ else
40
+ I18n.load_path = Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'locales', 'test.yml')]
41
+ end
42
+ I18n.locale = :test
43
+ I18n.default_locale = :test
44
+
45
+ ##
46
+ ## Init plugin
47
+ ##
48
+
49
+ require File.join(File.dirname(__FILE__), '..', 'init.rb')
50
+
51
+ ##
52
+ ## Spec Helper
53
+ ##
54
+
55
+ module SortingTableForSpecHelper
56
+ include ActiveSupport
57
+ include SortingTableFor
58
+
59
+ def have_comp_tag(selector, options = {})
60
+ if ::SortingTableFor::Tools::rails3?
61
+ if options.has_key? :text
62
+ options[:content] = options[:text]
63
+ options.delete :text
64
+ end
65
+ return have_selector(selector, options)
66
+ end
67
+ have_tag(selector, options)
68
+ end
69
+
70
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sorting_table_for
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Thomas Floch
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-30 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: A Rails table builder made to easily create table or sort a table. The syntax is simple to write and easy to read.
23
+ email: thomas.floch@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/model/sorting_table_model_scope.rb
32
+ - lib/sorting_table_for/i18n.rb
33
+ - lib/sorting_table_for/table_builder.rb
34
+ - lib/sorting_table_for/tools.rb
35
+ - lib/sorting_table_for.rb
36
+ - spec/db/database.yml
37
+ - spec/db/schema.rb
38
+ - spec/fixtures/user.rb
39
+ - spec/helpers/builder_spec.rb
40
+ - spec/helpers/cell_value_spec.rb
41
+ - spec/helpers/column_spec.rb
42
+ - spec/helpers/header_spec.rb
43
+ - spec/helpers/i18n_spec.rb
44
+ - spec/locales/test.yml
45
+ - spec/locales/test_rails3.yml
46
+ - spec/model/sorting_table_model_scope_spec.rb
47
+ - spec/spec_helper.rb
48
+ - MIT-LICENSE
49
+ - Rakefile
50
+ - README.mdown
51
+ - init.rb
52
+ has_rdoc: true
53
+ homepage: http://github.com/arkownz/sorting_table_for
54
+ licenses: []
55
+
56
+ post_install_message:
57
+ rdoc_options: []
58
+
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ hash: 3
67
+ segments:
68
+ - 0
69
+ version: "0"
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 19
76
+ segments:
77
+ - 1
78
+ - 3
79
+ - 4
80
+ version: 1.3.4
81
+ requirements: []
82
+
83
+ rubyforge_project: sorting_table_for
84
+ rubygems_version: 1.3.7
85
+ signing_key:
86
+ specification_version: 3
87
+ summary: A Rails table builder made to easily create and sort a table
88
+ test_files: []
89
+