acts_as_readonlyable 0.0.6 → 0.0.7

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_readonlyable.rb +13 -10
  2. metadata +2 -2
@@ -11,11 +11,12 @@ module ActiveRecord::Acts::ActsAsReadonlyable
11
11
  module ClassMethods
12
12
 
13
13
  def acts_as_readonlyable(*readonly_dbs)
14
- @readonly_dbs = readonly_dbs.flatten.collect(&:to_s)
15
- @readonly_models = readonly_classes(@readonly_dbs)
16
- if @readonly_models.empty?
14
+ readonly_dbs = readonly_dbs.flatten.collect(&:to_s)
15
+ readonly_models = readonly_classes(readonly_dbs)
16
+ if readonly_models.empty?
17
17
  logger.warn("Read only mode is not activated for #{ self }")
18
- else
18
+ else
19
+ define_readonly_model_method(readonly_models)
19
20
  self.extend(FinderClassOverrides)
20
21
  end
21
22
  self.send(:include, FinderInstanceOverrides)
@@ -40,12 +41,18 @@ module ActiveRecord::Acts::ActsAsReadonlyable
40
41
  end
41
42
 
42
43
  def define_readonly_class(db)
43
- eval <<-CLASS_DEF
44
+ eval %Q!
44
45
  class ActiveRecord::#{ readonly_class_name(db) } < ActiveRecord::Base
45
46
  self.abstract_class = true
46
47
  establish_connection configurations[RAILS_ENV]['#{ db }']
47
48
  end
48
- CLASS_DEF
49
+ !
50
+ end
51
+
52
+ def define_readonly_model_method(readonly_models)
53
+ (class << self; self; end).class_eval do
54
+ define_method(:readonly_model) { readonly_models[rand(readonly_models.size)] }
55
+ end
49
56
  end
50
57
 
51
58
  module FinderClassOverrides
@@ -113,10 +120,6 @@ module ActiveRecord::Acts::ActsAsReadonlyable
113
120
 
114
121
  end
115
122
 
116
- def readonly_model
117
- @readonly_models[rand(@readonly_models.size)]
118
- end
119
-
120
123
  end
121
124
 
122
125
  module FinderInstanceOverrides
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: acts_as_readonlyable
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.6
7
- date: 2007-06-07 00:00:00 -04:00
6
+ version: 0.0.7
7
+ date: 2007-06-12 00:00:00 -04:00
8
8
  summary: acts_as_readonlyable allows to add read-only slaves DBs to models
9
9
  require_paths:
10
10
  - lib