aboutsummaryrefslogtreecommitdiffstats
path: root/spec/support/guards.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/guards.rb')
-rw-r--r--spec/support/guards.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/support/guards.rb b/spec/support/guards.rb
new file mode 100644
index 0000000000..cfa4b7b79a
--- /dev/null
+++ b/spec/support/guards.rb
@@ -0,0 +1,28 @@
+module AdapterGuards
+ def adapter_is(*names)
+ names = names.map(&:to_s)
+ names.each{|name| verify_adapter_name(name)}
+ yield if names.include? adapter_name
+ end
+
+ def adapter_is_not(*names)
+ names = names.map(&:to_s)
+ names.each{|name| verify_adapter_name(name)}
+ yield unless names.include? adapter_name
+ end
+
+ def adapter_name
+ name = ActiveRecord::Base.configurations["unit"][:adapter]
+ name = 'oracle' if name == 'oracle_enhanced'
+ verify_adapter_name(name)
+ name
+ end
+
+ def verify_adapter_name(name)
+ raise "Invalid adapter name: #{name}" unless valid_adapters.include?(name.to_s)
+ end
+
+ def valid_adapters
+ %w[mysql postgresql sqlite3 oracle]
+ end
+end \ No newline at end of file