Skip to content

Commit 5d2be6d

Browse files
apeirosjavornikolov
authored andcommitted
PLSQL::Package#procedure_defined? to test whether a given procedure is available.
1 parent 69af472 commit 5d2be6d

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

lib/plsql/package.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ def initialize(schema, package, override_schema_name = nil)
3737
@package_objects = {}
3838
end
3939

40+
def procedure_defined?(name)
41+
PLSQL::Procedure.find(@schema, name, @package) ? true : false
42+
end
43+
4044
private
4145

4246
def method_missing(method, *args, &block)

spec/plsql/package_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@
4747
expect(plsql.test_package.test_procedure('xxx')).to eq('XXX')
4848
end
4949

50+
it "should report an existing procedure as existing" do
51+
plsql.test_package.procedure_defined?(:test_procedure).should == true
52+
end
53+
54+
it "should report an inexistent procedure as not existing" do
55+
plsql.test_package.procedure_defined?(:inexistent_procedure).should == false
56+
end
57+
5058
describe "variables" do
5159
it "should set and get package variable value" do
5260
plsql.test_package.test_variable = 1

0 commit comments

Comments
 (0)