arel_extensions 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -1
- data/.travis/oracle/download.js +1 -1
- data/.travis/oracle/download.sh +13 -0
- data/.travis/oracle/install.sh +4 -2
- data/lib/arel_extensions/nodes/blank.rb +9 -0
- data/lib/arel_extensions/string_functions.rb +4 -0
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors/mssql.rb +7 -0
- data/lib/arel_extensions/visitors/oracle.rb +8 -1
- data/lib/arel_extensions/visitors/to_sql.rb +10 -0
- data/test/with_ar/all_agnostic_test.rb +2 -0
- 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: 2aee321fcafb1aa18404760b6ea01de96837b0bf
|
4
|
+
data.tar.gz: 008c6af57efc1775384616d797c96eb2895481b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daa6d2206846f0eb7d28de5a4392888630d3120a2913b572cb4250609617574983cb708dfc38b1e8a28c39e72aaeaddb18826e379e4b9bc3098c2904d1ad48e6
|
7
|
+
data.tar.gz: 09080c3f2ae5800ee9722804630450274b61887c5816a52bf42d2580e94e332843607958e6830f35cf30724bf36ca5680dce5cdc6b91a7a91b081e2329e2a02e
|
data/.travis.yml
CHANGED
data/.travis/oracle/download.js
CHANGED
@@ -89,7 +89,7 @@ Phantom.createAsync({ parameters: { 'ssl-protocol': 'tlsv1' } }).then(function (
|
|
89
89
|
'--cookie-jar', env['COOKIES'],
|
90
90
|
'--data', '@-',
|
91
91
|
'--location',
|
92
|
-
'--output',
|
92
|
+
'--output', env['ORACLE_DOWNLOAD_FILE'],
|
93
93
|
'--user-agent', env['USER_AGENT'],
|
94
94
|
form.action
|
95
95
|
]];
|
data/.travis/oracle/download.sh
CHANGED
@@ -1,12 +1,25 @@
|
|
1
1
|
#!/bin/sh -e
|
2
|
+
# vim: set et sw=2 ts=2:
|
2
3
|
|
3
4
|
[ -n "$ORACLE_COOKIE" ] || { echo "Missing ORACLE_COOKIE environment variable!"; exit 1; }
|
4
5
|
[ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
|
5
6
|
|
7
|
+
ORACLE_DOWNLOAD_FILE="$(basename "$ORACLE_FILE")"
|
8
|
+
|
9
|
+
if [ -n "$ORACLE_DOWNLOAD_DIR" ]; then
|
10
|
+
mkdir -p "$ORACLE_DOWNLOAD_DIR"
|
11
|
+
ORACLE_DOWNLOAD_FILE="$(readlink -f "$ORACLE_DOWNLOAD_DIR")/$ORACLE_DOWNLOAD_FILE"
|
12
|
+
fi
|
13
|
+
|
14
|
+
if [ "${*#*--unless-exists}" != "$*" ] && [ -f "$ORACLE_DOWNLOAD_FILE" ]; then
|
15
|
+
exit 0
|
16
|
+
fi
|
17
|
+
|
6
18
|
cd "$(dirname "$(readlink -f "$0")")"
|
7
19
|
|
8
20
|
npm install bluebird node-phantom-simple
|
9
21
|
|
22
|
+
export ORACLE_DOWNLOAD_FILE
|
10
23
|
export COOKIES='cookies.txt'
|
11
24
|
export USER_AGENT='Mozilla/5.0'
|
12
25
|
|
data/.travis/oracle/install.sh
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
#!/bin/sh -e
|
2
|
+
# vim: set et sw=2 ts=2:
|
2
3
|
|
4
|
+
[ -z "$ORACLE_DOWNLOAD_DIR" ] || ORACLE_DOWNLOAD_DIR="$(readlink -f "$ORACLE_DOWNLOAD_DIR")/"
|
3
5
|
[ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
|
4
6
|
[ -n "$ORACLE_HOME" ] || { echo "Missing ORACLE_HOME environment variable!"; exit 1; }
|
5
7
|
|
6
|
-
ORACLE_RPM="$(basename $ORACLE_FILE .zip)"
|
8
|
+
ORACLE_RPM="$(basename "$ORACLE_FILE" .zip)"
|
7
9
|
|
8
10
|
cd "$(dirname "$(readlink -f "$0")")"
|
9
11
|
|
@@ -18,7 +20,7 @@ test -f /sbin/chkconfig ||
|
|
18
20
|
|
19
21
|
test -d /var/lock/subsys || sudo mkdir /var/lock/subsys
|
20
22
|
|
21
|
-
unzip -j "$(basename $ORACLE_FILE)" "*/$ORACLE_RPM"
|
23
|
+
unzip -j "${ORACLE_DOWNLOAD_DIR}$(basename "$ORACLE_FILE")" "*/$ORACLE_RPM"
|
22
24
|
sudo rpm --install --nodeps --nopre "$ORACLE_RPM"
|
23
25
|
|
24
26
|
echo 'OS_AUTHENT_PREFIX=""' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
|
@@ -168,6 +168,13 @@ module ArelExtensions
|
|
168
168
|
collector
|
169
169
|
end
|
170
170
|
|
171
|
+
def visit_ArelExtensions_Nodes_NotBlank o, collector
|
172
|
+
collector << 'CASE WHEN LEN(LTRIM(RTRIM(ISNULL('
|
173
|
+
collector = visit o.left, collector
|
174
|
+
collector << ", '')))) = 0 THEN 0 ELSE 1 END"
|
175
|
+
collector
|
176
|
+
end
|
177
|
+
|
171
178
|
def visit_ArelExtensions_Nodes_Format o, collector
|
172
179
|
f = o.iso_format.dup
|
173
180
|
Arel::Visitors::MSSQL::DATE_FORMAT_DIRECTIVES.each { |d, r| f.gsub!(d, r) }
|
@@ -126,7 +126,7 @@ module ArelExtensions
|
|
126
126
|
|
127
127
|
def visit_ArelExtensions_Nodes_Rand o, collector
|
128
128
|
collector << "DBMS_RANDOM.VALUE("
|
129
|
-
if
|
129
|
+
if o.left && o.right
|
130
130
|
collector = visit o.left, collector
|
131
131
|
collector << Arel::Visitors::Oracle::COMMA
|
132
132
|
collector = visit o.right, collector
|
@@ -208,6 +208,13 @@ module ArelExtensions
|
|
208
208
|
collector
|
209
209
|
end
|
210
210
|
|
211
|
+
def visit_ArelExtensions_Nodes_NotBlank o, collector
|
212
|
+
collector << '(CASE WHEN ('
|
213
|
+
collector = visit o.left, collector
|
214
|
+
collector << " = '') THEN 0 ELSE 1 END)"
|
215
|
+
collector
|
216
|
+
end
|
217
|
+
|
211
218
|
def visit_ArelExtensions_Nodes_DateAdd o, collector
|
212
219
|
collector << '('
|
213
220
|
collector = visit o.left, collector
|
@@ -161,6 +161,16 @@ module ArelExtensions
|
|
161
161
|
collector
|
162
162
|
end
|
163
163
|
|
164
|
+
|
165
|
+
def visit_ArelExtensions_Nodes_NotBlank o, collector
|
166
|
+
collector << 'LENGTH(TRIM(COALESCE('
|
167
|
+
collector = visit o.left, collector
|
168
|
+
collector << Arel::Visitors::ToSql::COMMA
|
169
|
+
collector = visit Arel::Nodes.build_quoted(''), collector
|
170
|
+
collector << "))) > 0"
|
171
|
+
collector
|
172
|
+
end
|
173
|
+
|
164
174
|
def visit_ArelExtensions_Nodes_Format o, collector
|
165
175
|
case o.col_type
|
166
176
|
when :date, :datetime
|
@@ -245,8 +245,10 @@ module ArelExtensions
|
|
245
245
|
def test_blank
|
246
246
|
if @env_db == 'postgresql'
|
247
247
|
assert_includes [false, 'f'], t(@myung, @name.blank) # depends of adapter
|
248
|
+
assert_includes [true, 't'], t(@myung, @name.not_blank) # depends of adapter
|
248
249
|
else
|
249
250
|
assert_equal 0, t(@myung, @name.blank)
|
251
|
+
assert_equal 1, t(@myung, @name.not_blank)
|
250
252
|
end
|
251
253
|
skip "Oracle requires cast for CLOB" if @env_db == 'oracle' # comments is CLOB, CHAR expected
|
252
254
|
if @env_db == 'postgresql'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arel_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yann Azoury
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-11-
|
13
|
+
date: 2016-11-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: arel
|