forked from pat/thinking-sphinx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sphinx_helper.rb
54 lines (45 loc) · 1.41 KB
/
sphinx_helper.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
require 'active_record'
require 'active_record/connection_adapters/mysql2_adapter'
require 'active_record/connection_adapters/postgresql_adapter'
require 'yaml'
class SphinxHelper
attr_accessor :host, :username, :password, :socket
attr_reader :path
def initialize
@host = 'localhost'
@username = 'root'
@password = ''
if File.exist?('spec/fixtures/database.yml')
config = YAML.load(File.open('spec/fixtures/database.yml'))
@host = config['host']
@username = config['username']
@password = config['password']
@socket = config['socket']
end
@path = File.expand_path(File.dirname(__FILE__))
end
def setup_mysql
ActiveRecord::Base.establish_connection(
:adapter => mysql_adapter,
:database => 'thinking_sphinx',
:username => @username,
:password => @password,
:host => @host,
:socket => @socket
)
ActiveRecord::Base.logger = Logger.new(File.open('tmp/activerecord.log', 'a'))
structure = File.open('spec/fixtures/structure.sql') { |f| f.read.chomp }
structure.split(';').each { |table|
ActiveRecord::Base.connection.execute table
}
File.open('spec/fixtures/data.sql') { |f|
while line = f.gets
ActiveRecord::Base.connection.execute line unless line.blank?
end
}
end
private
def mysql_adapter
defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'
end
end