acts_as_fu 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/acts_as_fu/base.rb +28 -24
  2. metadata +1 -1
@@ -4,34 +4,37 @@ RAILS_ROOT = File.join(File.dirname(__FILE__), '..') unless defined?(RAILS_ROOT)
4
4
  RAILS_ENV = 'test' unless defined?(RAILS_ENV)
5
5
 
6
6
  module ActsAsFu
7
- class << self
8
- attr_reader :log
9
-
10
- def connect!(config={})
11
- @log = ""
12
- ActiveRecord::Base.logger = Logger.new(StringIO.new(log))
13
- ActiveRecord::Base.connection.disconnect! rescue nil
14
- ActiveRecord::Base.establish_connection(config)
7
+
8
+ class Connection < ActiveRecord::Base
9
+ cattr_accessor :connected
10
+ cattr_reader :log
11
+ self.abstract_class = true
12
+
13
+ def self.connect!(config={})
14
+ @@log = ""
15
+ self.logger = Logger.new(StringIO.new(log))
16
+ self.connection.disconnect! rescue nil
17
+ self.establish_connection(config)
15
18
  end
16
19
  end
17
-
20
+
18
21
  def build_model(name, options={}, &block)
19
22
  connect! unless connected?
20
-
23
+
21
24
  super_class = options[:superclass] || begin
22
- ActiveRecord::Base.connection.create_table(name, :force => true) { }
23
- ActiveRecord::Base
25
+ ActsAsFu::Connection.connection.create_table(name, :force => true) { }
26
+ ActsAsFu::Connection
24
27
  end
25
-
28
+
26
29
  set_class!(name, super_class, &block)
27
30
  end
28
-
31
+
29
32
  private
30
-
33
+
31
34
  def set_class!(name, super_class, &block)
32
35
  klass_name = name.to_s.classify
33
36
  Object.send(:remove_const, klass_name) rescue nil
34
-
37
+
35
38
  klass = Class.new(super_class)
36
39
  Object.const_set(klass_name, klass)
37
40
 
@@ -40,29 +43,30 @@ module ActsAsFu
40
43
  end
41
44
 
42
45
  def connect!
43
- ActsAsFu.connect!({
46
+ ActsAsFu::Connection.connect!({
44
47
  :adapter => "sqlite3",
45
48
  :database => ":memory:"
46
49
  })
50
+ ActsAsFu::Connection.connected = true
47
51
  end
48
-
52
+
49
53
  def connected?
50
- ActiveRecord::Base.connected?
54
+ ActsAsFu::Connection.connected
51
55
  end
52
-
56
+
53
57
  def model_eval(klass, &block)
54
58
  class << klass
55
59
  def method_missing_with_columns(sym, *args, &block)
56
- ActiveRecord::Base.connection.change_table(name.tableize) do |t|
60
+ ActsAsFu::Connection.connection.change_table(name.tableize) do |t|
57
61
  t.send(sym, *args)
58
62
  end
59
63
  end
60
-
64
+
61
65
  alias_method_chain :method_missing, :columns
62
66
  end
63
-
67
+
64
68
  klass.class_eval(&block) if block_given?
65
-
69
+
66
70
  class << klass
67
71
  alias_method :method_missing, :method_missing_without_columns
68
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Nakajima