sunstone 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/lib/arel/collectors/sunstone.rb +5 -2
- data/lib/arel/visitors/sunstone.rb +14 -24
- data/lib/sunstone/connection.rb +2 -1
- data/sunstone.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 567a0950650c172c56b5c8d23061ff04efe5ecc2
|
4
|
+
data.tar.gz: 95cd7fcc96e4aaefb0ce439548fb2e5eb9d2aff1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82626c3c9861b180c9021eb845d2988e467a7564e0f9f5c040e202eb6ff996670d777f7f636924b8f2dc1d4738600b03381d2495c769e8a8288db534a8feccd8
|
7
|
+
data.tar.gz: fd7e2ec407a4f2ae055a710613c3e1ae35d486679d2299bfe29f3a661e13396f687d597e8eecec056a42b418bf8138a02f0454a7a97f0f6c7b9e93b9c8a99ad4
|
@@ -2,7 +2,7 @@ module Arel
|
|
2
2
|
module Collectors
|
3
3
|
class Sunstone < Arel::Collectors::Bind
|
4
4
|
|
5
|
-
attr_accessor :request_type, :table, :where, :limit, :offset, :order, :operation, :columns
|
5
|
+
attr_accessor :request_type, :table, :where, :limit, :offset, :order, :operation, :columns, :updates
|
6
6
|
|
7
7
|
def substitute_binds hash, bvs
|
8
8
|
if hash.is_a?(Array)
|
@@ -36,7 +36,7 @@ module Arel
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
def compile bvs
|
39
|
+
def compile bvs, conn = nil
|
40
40
|
path = "/#{table}"
|
41
41
|
|
42
42
|
case operation
|
@@ -63,6 +63,9 @@ module Arel
|
|
63
63
|
end
|
64
64
|
|
65
65
|
request = request_type.new(path)
|
66
|
+
if updates
|
67
|
+
request.body = {table.singularize => substitute_binds(updates.clone, bvs)}.to_json
|
68
|
+
end
|
66
69
|
|
67
70
|
request
|
68
71
|
end
|
@@ -64,6 +64,19 @@ module Arel
|
|
64
64
|
|
65
65
|
collector
|
66
66
|
end
|
67
|
+
|
68
|
+
def visit_Arel_Nodes_InsertStatement o, collector
|
69
|
+
collector.request_type = Net::HTTP::Post
|
70
|
+
collector.table = o.relation.name
|
71
|
+
collector.operation = :insert
|
72
|
+
|
73
|
+
if o.values
|
74
|
+
collector.updates = o.values.right.map { |x| visit(x, collector) }.zip(o.values.left).to_h
|
75
|
+
end
|
76
|
+
|
77
|
+
collector
|
78
|
+
end
|
79
|
+
|
67
80
|
|
68
81
|
|
69
82
|
#
|
@@ -114,23 +127,6 @@ module Arel
|
|
114
127
|
# collector
|
115
128
|
# end
|
116
129
|
#
|
117
|
-
# def visit_Arel_Nodes_InsertStatement o, collector
|
118
|
-
# collector << "INSERT INTO "
|
119
|
-
# collector = visit o.relation, collector
|
120
|
-
# if o.columns.any?
|
121
|
-
# collector << " (#{o.columns.map { |x|
|
122
|
-
# quote_column_name x.name
|
123
|
-
# }.join ', '})"
|
124
|
-
# end
|
125
|
-
#
|
126
|
-
# if o.values
|
127
|
-
# maybe_visit o.values, collector
|
128
|
-
# elsif o.select
|
129
|
-
# maybe_visit o.select, collector
|
130
|
-
# else
|
131
|
-
# collector
|
132
|
-
# end
|
133
|
-
# end
|
134
130
|
#
|
135
131
|
# def visit_Arel_Nodes_Exists o, collector
|
136
132
|
# collector << "EXISTS ("
|
@@ -179,7 +175,6 @@ module Arel
|
|
179
175
|
# end
|
180
176
|
#
|
181
177
|
# def visit_Arel_Nodes_Values o, collector
|
182
|
-
# collector << "VALUES ("
|
183
178
|
#
|
184
179
|
# len = o.expressions.length - 1
|
185
180
|
# o.expressions.zip(o.columns).each_with_index { |(value, attr), i|
|
@@ -193,11 +188,9 @@ module Arel
|
|
193
188
|
# end
|
194
189
|
# }
|
195
190
|
#
|
196
|
-
# collector << ")"
|
197
191
|
# end
|
198
192
|
#
|
199
|
-
|
200
|
-
|
193
|
+
#
|
201
194
|
#
|
202
195
|
# def visit_Arel_Nodes_Bin o, collector
|
203
196
|
# visit o.expr, collector
|
@@ -425,9 +418,6 @@ module Arel
|
|
425
418
|
end
|
426
419
|
|
427
420
|
def visit_Arel_Nodes_Avg o, collector
|
428
|
-
# puts o.inspect
|
429
|
-
# #<Arel::Nodes::Avg:0x007fd863f55df0 @expressions=["rate_per_sqft_per_year"], @alias="avg_id", @distinct=false>
|
430
|
-
|
431
421
|
collector.operation = :average
|
432
422
|
if o.expressions.first.is_a?(Arel::Attributes::Attribute)
|
433
423
|
relation = o.expressions.first.relation
|
data/lib/sunstone/connection.rb
CHANGED
@@ -115,7 +115,7 @@ module Sunstone
|
|
115
115
|
if response['X-42Floors-API-Version-Deprecated']
|
116
116
|
logger.warn("DEPRECATION WARNING: API v#{API_VERSION} is being phased out")
|
117
117
|
end
|
118
|
-
|
118
|
+
|
119
119
|
validate_response_code(response)
|
120
120
|
|
121
121
|
# Get the cookies
|
@@ -132,6 +132,7 @@ module Sunstone
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
+
|
135
136
|
|
136
137
|
return_value
|
137
138
|
end
|
data/sunstone.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sunstone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Bracy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|