arrest 0.0.61 → 0.0.62
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.
|
@@ -35,9 +35,7 @@ module Arrest
|
|
|
35
35
|
add_attribute(hm_attr)
|
|
36
36
|
|
|
37
37
|
send :define_method, method_name do # e.g. define 'teams' method for notation 'has_many :teams'
|
|
38
|
-
|
|
39
|
-
@has_many_collections[method_name] ||= HasManyCollection.new(self, hm_attr)
|
|
40
|
-
@has_many_collections[method_name]
|
|
38
|
+
HasManyCollection.new(self, hm_attr)
|
|
41
39
|
end
|
|
42
40
|
end
|
|
43
41
|
|
|
@@ -12,6 +12,7 @@ module Arrest
|
|
|
12
12
|
@page = 1
|
|
13
13
|
@page_size = nil
|
|
14
14
|
@per_page = 5
|
|
15
|
+
@sort_hash = {}
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def build attributes = {}
|
|
@@ -103,16 +104,27 @@ module Arrest
|
|
|
103
104
|
self
|
|
104
105
|
end
|
|
105
106
|
|
|
107
|
+
def sort_by(field, order = :asc)
|
|
108
|
+
@sort_hash = {:sort => field.to_sym, :order => order.to_sym}
|
|
109
|
+
self
|
|
110
|
+
end
|
|
111
|
+
|
|
106
112
|
private
|
|
107
113
|
|
|
108
114
|
def children
|
|
109
115
|
if @children == nil
|
|
116
|
+
params = {}
|
|
110
117
|
if @page_size
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
118
|
+
params[:pageSize] = @page_size
|
|
119
|
+
params[:page] = @page
|
|
120
|
+
end
|
|
121
|
+
if @sort_hash
|
|
122
|
+
params.merge!(@sort_hash)
|
|
114
123
|
end
|
|
115
|
-
|
|
124
|
+
|
|
125
|
+
base_url = @parent.resource_location + '/' + @url_part.to_s
|
|
126
|
+
url = build_url(base_url, params)
|
|
127
|
+
|
|
116
128
|
response = resolved_class.by_url(@parent.context, url)
|
|
117
129
|
@total_count = response[:result_count]
|
|
118
130
|
@children = response[:collection]
|
|
@@ -120,6 +132,13 @@ module Arrest
|
|
|
120
132
|
@children
|
|
121
133
|
end
|
|
122
134
|
|
|
135
|
+
def build_url(base_url, params_hash)
|
|
136
|
+
return base_url if params_hash.empty?
|
|
137
|
+
query_str = (base_url.include?('?') ? '&' : '?')
|
|
138
|
+
query_str += params_hash.map{|k,v| "#{k}=#{v}"}.join('&')
|
|
139
|
+
base_url + query_str
|
|
140
|
+
end
|
|
141
|
+
|
|
123
142
|
def resolved_class
|
|
124
143
|
if @clazz == nil
|
|
125
144
|
@clazz = Source.mod.const_get(@clazz_name)
|
|
@@ -96,6 +96,11 @@ module Arrest
|
|
|
96
96
|
self
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
+
def sort_by(field, order = :asc)
|
|
100
|
+
@sort_hash = {:sort => field.to_sym, :order => order.to_sym}
|
|
101
|
+
self
|
|
102
|
+
end
|
|
103
|
+
|
|
99
104
|
private
|
|
100
105
|
|
|
101
106
|
def collection
|
|
@@ -105,6 +110,9 @@ module Arrest
|
|
|
105
110
|
params[:pageSize] = @page_size
|
|
106
111
|
params[:page] = @page
|
|
107
112
|
end
|
|
113
|
+
if @sort_hash
|
|
114
|
+
params.merge!(@sort_hash)
|
|
115
|
+
end
|
|
108
116
|
params.merge!(@filter) # override with params that got passed in
|
|
109
117
|
url = build_url(@base_url, params)
|
|
110
118
|
response = resolved_class.by_url(@context, url)
|
|
@@ -116,7 +124,7 @@ module Arrest
|
|
|
116
124
|
|
|
117
125
|
def build_url(base_url, params_hash)
|
|
118
126
|
return base_url if params_hash.empty?
|
|
119
|
-
query_str = (base_url.include?('?') ? '&' : '?')
|
|
127
|
+
query_str = (base_url.include?('?') ? '&' : '?')
|
|
120
128
|
query_str += params_hash.map{|k,v| "#{k}=#{v}"}.join('&')
|
|
121
129
|
base_url + query_str
|
|
122
130
|
end
|
data/lib/arrest/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: arrest
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.62
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-06-
|
|
12
|
+
date: 2012-06-12 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: json
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &11596480 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *11596480
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: faraday
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &11595980 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: 0.7.5
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *11595980
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: activemodel
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &11595480 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ~>
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '3'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *11595480
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: bundler
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &11595020 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: 1.0.0
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *11595020
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: rake
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &11594640 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :development
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *11594640
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rdoc
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &11594180 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>='
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :development
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *11594180
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: rspec
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &11593680 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ~>
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '2'
|
|
88
88
|
type: :development
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *11593680
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: rr
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &11593260 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,10 +98,10 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :development
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *11593260
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
103
|
name: simplecov
|
|
104
|
-
requirement: &
|
|
104
|
+
requirement: &11592800 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
107
|
- - ! '>='
|
|
@@ -109,10 +109,10 @@ dependencies:
|
|
|
109
109
|
version: '0'
|
|
110
110
|
type: :development
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *11592800
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: rack
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &11609400 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,7 +120,7 @@ dependencies:
|
|
|
120
120
|
version: '0'
|
|
121
121
|
type: :development
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *11609400
|
|
124
124
|
description: Consume a rest API in a AR like fashion
|
|
125
125
|
email:
|
|
126
126
|
- axel.tetzlaff@fortytools.com
|
|
@@ -198,13 +198,4 @@ rubygems_version: 1.8.10
|
|
|
198
198
|
signing_key:
|
|
199
199
|
specification_version: 3
|
|
200
200
|
summary: Another ruby rest client
|
|
201
|
-
test_files:
|
|
202
|
-
- spec/arrest_spec.rb
|
|
203
|
-
- spec/spec_helper.rb
|
|
204
|
-
- spec/support/models/user.rb
|
|
205
|
-
- test/context.rb
|
|
206
|
-
- test/has_attributed.rb
|
|
207
|
-
- test/models.rb
|
|
208
|
-
- test/nested_resource.rb
|
|
209
|
-
- test/unit.rb
|
|
210
|
-
- test/validations.rb
|
|
201
|
+
test_files: []
|