acts_as_fu 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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