/
test_setup_requirements.rb
71 lines (64 loc) · 1.77 KB
/
test_setup_requirements.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require 'optparse'
options = { :with => [] }
OptionParser.new do |o|
o.on('-w', '--with DEPENDENCIES', 'Define dependencies') do |dep|
options[:with] = dep.split(',').map { |group| group.to_sym }
end
end.parse!
options[:with].each do |dep|
case dep
when :ar23, :'activerecord-2.3'
gem 'activerecord', '~> 2.3'
when :ar3, :'activerecord-3'
gem 'activerecord', '~> 3'
end
end
# Do not load the i18n gem from libraries like active_support, we'll load it from here :)
alias :gem_for_ruby_19 :gem # for 1.9. gives a super ugly seg fault otherwise
def gem(gem_name, *version_requirements)
if gem_name =='i18n'
puts "skipping loading the i18n gem ..."
return
end
super(gem_name, *version_requirements)
end
def setup_mocha
begin
require 'mocha'
rescue LoadError
puts "skipping tests using mocha as mocha can't be found"
end
end
def setup_active_record
begin
require 'active_record'
ActiveRecord::Base.connection
true
rescue LoadError => e
puts "can't use ActiveRecord backend because: #{e.message}"
rescue ActiveRecord::ConnectionNotEstablished
require 'i18n/backend/active_record'
require 'i18n/backend/active_record/store_procs'
connect_active_record
true
end
end
def connect_active_record
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
ActiveRecord::Migration.verbose = false
ActiveRecord::Schema.define(:version => 1) do
create_table :translations do |t|
t.string :locale
t.string :key
t.string :value
t.string :interpolations
t.boolean :is_proc, :default => false
end
end
end
def setup_rufus_tokyo
require 'rubygems'
require 'rufus/tokyo'
rescue LoadError => e
puts "can't use KeyValue backend because: #{e.message}"
end