restful_query-rails3 0.4
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.
- data/.gitignore +5 -0
- data/History.txt +29 -0
- data/LICENSE +20 -0
- data/README.rdoc +64 -0
- data/Rakefile +30 -0
- data/init.rb +1 -0
- data/lib/restful_query/can_query.rb +38 -0
- data/lib/restful_query/condition.rb +110 -0
- data/lib/restful_query/parser.rb +166 -0
- data/lib/restful_query/sort.rb +72 -0
- data/lib/restful_query.rb +23 -0
- data/lib/sequel/extensions/restful_query.rb +25 -0
- data/rails/init.rb +3 -0
- data/restful_query-rails3.gemspec +72 -0
- data/tasks/restful_query_tasks.rake +4 -0
- data/test/test_helper.rb +35 -0
- data/test/test_restful_query_can_query.rb +20 -0
- data/test/test_restful_query_condition.rb +184 -0
- data/test/test_restful_query_parser.rb +467 -0
- data/test/test_restful_query_sort.rb +72 -0
- metadata +137 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RestfulQuerySortTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "Sort" do
|
6
|
+
context "initializing" do
|
7
|
+
context "with valid column and direction" do
|
8
|
+
setup do
|
9
|
+
@sort = RestfulQuery::Sort.new(:attribute, 'up')
|
10
|
+
end
|
11
|
+
|
12
|
+
should "save column name as string" do
|
13
|
+
assert_equal 'attribute', @sort.column
|
14
|
+
end
|
15
|
+
|
16
|
+
should "interpret direction" do
|
17
|
+
assert_equal 'ASC', @sort.direction
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "with an invalid direction" do
|
22
|
+
should "raise error" do
|
23
|
+
assert_raise(RestfulQuery::InvalidDirection) do
|
24
|
+
RestfulQuery::Sort.new('column', 'blarg')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
context "parse" do
|
32
|
+
context "with a query hash like condition" do
|
33
|
+
setup do
|
34
|
+
@sort = RestfulQuery::Sort.parse('long_name_attribute-down')
|
35
|
+
end
|
36
|
+
|
37
|
+
should "return sort object" do
|
38
|
+
assert @sort.is_a?(RestfulQuery::Sort)
|
39
|
+
end
|
40
|
+
|
41
|
+
should "set column and direction" do
|
42
|
+
assert_equal 'long_name_attribute', @sort.column
|
43
|
+
assert_equal 'DESC', @sort.direction
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context "with a standard SQL like condition" do
|
48
|
+
setup do
|
49
|
+
@sort = RestfulQuery::Sort.parse('long_name_attribute DESC')
|
50
|
+
end
|
51
|
+
|
52
|
+
should "return sort object" do
|
53
|
+
assert @sort.is_a?(RestfulQuery::Sort)
|
54
|
+
end
|
55
|
+
|
56
|
+
should "set column and direction" do
|
57
|
+
assert_equal 'long_name_attribute', @sort.column
|
58
|
+
assert_equal 'DESC', @sort.direction
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context "to_sql" do
|
64
|
+
should "join the column and attribute" do
|
65
|
+
@sort = RestfulQuery::Sort.new(:attribute, 'down')
|
66
|
+
assert_equal 'attribute DESC', @sort.to_sql
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: restful_query-rails3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
version: "0.4"
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Aaron Quint
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-02-16 00:00:00 +01:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: activesupport
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
version: 2.2.0
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: chronic
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 17
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 2
|
48
|
+
- 3
|
49
|
+
version: 0.2.3
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: Shoulda
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 31
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 2
|
64
|
+
- 0
|
65
|
+
version: 1.2.0
|
66
|
+
type: :development
|
67
|
+
version_requirements: *id003
|
68
|
+
description: Rails3 Version of RestfulQuery, provides a simple interface in front of a complex parser to parse specially formatted query hashes into complex SQL queries. It includes ActiveRecord and Sequel extensions.
|
69
|
+
email:
|
70
|
+
executables: []
|
71
|
+
|
72
|
+
extensions: []
|
73
|
+
|
74
|
+
extra_rdoc_files:
|
75
|
+
- LICENSE
|
76
|
+
- README.rdoc
|
77
|
+
files:
|
78
|
+
- .gitignore
|
79
|
+
- History.txt
|
80
|
+
- LICENSE
|
81
|
+
- README.rdoc
|
82
|
+
- Rakefile
|
83
|
+
- init.rb
|
84
|
+
- restful_query-rails3.gemspec
|
85
|
+
- lib/restful_query.rb
|
86
|
+
- lib/restful_query/can_query.rb
|
87
|
+
- lib/restful_query/condition.rb
|
88
|
+
- lib/restful_query/parser.rb
|
89
|
+
- lib/restful_query/sort.rb
|
90
|
+
- lib/sequel/extensions/restful_query.rb
|
91
|
+
- rails/init.rb
|
92
|
+
- tasks/restful_query_tasks.rake
|
93
|
+
- test/test_helper.rb
|
94
|
+
- test/test_restful_query_can_query.rb
|
95
|
+
- test/test_restful_query_condition.rb
|
96
|
+
- test/test_restful_query_parser.rb
|
97
|
+
- test/test_restful_query_sort.rb
|
98
|
+
has_rdoc: true
|
99
|
+
homepage:
|
100
|
+
licenses: []
|
101
|
+
|
102
|
+
post_install_message:
|
103
|
+
rdoc_options:
|
104
|
+
- --charset=UTF-8
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
version: "0"
|
125
|
+
requirements: []
|
126
|
+
|
127
|
+
rubyforge_project: quirkey
|
128
|
+
rubygems_version: 1.3.7
|
129
|
+
signing_key:
|
130
|
+
specification_version: 3
|
131
|
+
summary: Simple ActiveRecord and Sequel queries from a RESTful and safe interface
|
132
|
+
test_files:
|
133
|
+
- test/test_helper.rb
|
134
|
+
- test/test_restful_query_can_query.rb
|
135
|
+
- test/test_restful_query_condition.rb
|
136
|
+
- test/test_restful_query_parser.rb
|
137
|
+
- test/test_restful_query_sort.rb
|