pg_examiner 0.4.0 → 0.4.1
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/pg_examiner/result/function.rb +9 -1
- data/lib/pg_examiner/version.rb +1 -1
- data/spec/function_spec.rb +42 -2
- 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: 36c51dbbc8e2fccfd5eee408216749e98c20086d
|
4
|
+
data.tar.gz: 373bfeb979ed1012d4a05daf1dd5d4720b8c8a65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 982b849a8951bf7f9b783cf6ccb9e29d78d55c52a8d0158ec0f15dd474a1986a43a2b88931e0aff1a80915cb7683d82fd1e71b09c192374bb38c8a4650d5aa9c
|
7
|
+
data.tar.gz: 79cb8766ad4867ea4170dc6e5445ed86f849bba61e900982800a4a4355aa600fae7779f7c7176190fa3481375b649db028d4a175b1b79eb81cd466cbdb3dba0b
|
@@ -3,11 +3,12 @@
|
|
3
3
|
module PGExaminer
|
4
4
|
class Result
|
5
5
|
class Function < Item
|
6
|
+
EXCESS_WHITESPACE_REGEX = /\s+/.freeze
|
7
|
+
|
6
8
|
def diffable_attrs
|
7
9
|
{
|
8
10
|
"name" => "name",
|
9
11
|
"proargmodes" => "argument modes",
|
10
|
-
"definition" => "function definition",
|
11
12
|
}
|
12
13
|
end
|
13
14
|
|
@@ -16,9 +17,16 @@ module PGExaminer
|
|
16
17
|
"argument_types" => "argument types",
|
17
18
|
"return_type" => "return type",
|
18
19
|
"language" => "language",
|
20
|
+
"definition" => "function definition",
|
19
21
|
}
|
20
22
|
end
|
21
23
|
|
24
|
+
def definition
|
25
|
+
s = @row['definition'].strip
|
26
|
+
s.gsub!(EXCESS_WHITESPACE_REGEX, ' ')
|
27
|
+
s
|
28
|
+
end
|
29
|
+
|
22
30
|
def argument_types
|
23
31
|
@argument_types ||= @row['proargtypes'].split.map do |oid|
|
24
32
|
result.pg_type.find{|t| t['oid'] == oid}['name']
|
data/lib/pg_examiner/version.rb
CHANGED
data/spec/function_spec.rb
CHANGED
@@ -76,8 +76,8 @@ describe PGExaminer do
|
|
76
76
|
b.should_not == d
|
77
77
|
c.should_not == d
|
78
78
|
|
79
|
-
a.diff(b).should == {"schemas"=>{"public"=>{"functions"=>{"add"=>{"function definition"=>{"CREATE OR REPLACE FUNCTION public.add(one integer, two integer)
|
80
|
-
a.diff(c).should == {"schemas"=>{"public"=>{"functions"=>{"add"=>{"function definition"=>{"CREATE OR REPLACE FUNCTION public.add(one integer, two integer)
|
79
|
+
a.diff(b).should == {"schemas"=>{"public"=>{"functions"=>{"add"=>{"function definition"=>{"CREATE OR REPLACE FUNCTION public.add(one integer, two integer) RETURNS integer LANGUAGE sql AS $function$ SELECT one + two $function$"=>"CREATE OR REPLACE FUNCTION public.add(one integer, two integer, three integer) RETURNS integer LANGUAGE sql AS $function$ SELECT one + two $function$"}, "argument types"=>{["int4", "int4"]=>["int4", "int4", "int4"]}}}}}}
|
80
|
+
a.diff(c).should == {"schemas"=>{"public"=>{"functions"=>{"add"=>{"function definition"=>{"CREATE OR REPLACE FUNCTION public.add(one integer, two integer) RETURNS integer LANGUAGE sql AS $function$ SELECT one + two $function$"=>"CREATE OR REPLACE FUNCTION public.add(one integer, two integer, three integer[]) RETURNS integer LANGUAGE sql AS $function$ SELECT one + two $function$"}, "argument types"=>{["int4", "int4"]=>["int4", "int4", "_int4"]}}}}}}
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should be able to differentiate between functions by their argument defaults" do
|
@@ -255,4 +255,44 @@ describe PGExaminer do
|
|
255
255
|
a.should_not == c
|
256
256
|
a.should_not == d
|
257
257
|
end
|
258
|
+
|
259
|
+
it "should ignore whitespace in function definitions" do
|
260
|
+
a = examine <<-SQL_FUNCTION
|
261
|
+
CREATE FUNCTION add(one integer, two integer) RETURNS integer
|
262
|
+
AS $$
|
263
|
+
SELECT one + two
|
264
|
+
$$
|
265
|
+
LANGUAGE SQL;
|
266
|
+
SQL_FUNCTION
|
267
|
+
|
268
|
+
b = examine <<-SQL_FUNCTION
|
269
|
+
CREATE FUNCTION add(one integer, two integer) RETURNS integer
|
270
|
+
AS $$
|
271
|
+
SELECT one + two
|
272
|
+
$$
|
273
|
+
LANGUAGE SQL;
|
274
|
+
SQL_FUNCTION
|
275
|
+
|
276
|
+
c = examine <<-SQL_FUNCTION
|
277
|
+
CREATE FUNCTION add(one integer, two integer) RETURNS integer
|
278
|
+
AS $$
|
279
|
+
SELECT one + two
|
280
|
+
$$
|
281
|
+
LANGUAGE SQL;
|
282
|
+
SQL_FUNCTION
|
283
|
+
|
284
|
+
d = examine <<-SQL_FUNCTION
|
285
|
+
CREATE FUNCTION add(one integer, two integer) RETURNS integer
|
286
|
+
AS $$
|
287
|
+
SELECT one + two
|
288
|
+
|
289
|
+
|
290
|
+
$$
|
291
|
+
LANGUAGE SQL;
|
292
|
+
SQL_FUNCTION
|
293
|
+
|
294
|
+
a.should == b
|
295
|
+
a.should == c
|
296
|
+
a.should == d
|
297
|
+
end
|
258
298
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_examiner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Hanks
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|