Skip to content

Commit

Permalink
Further work on one-time initialization, most tests still passing.
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnLockwood committed Jul 21, 2012
1 parent c91f2f4 commit 29b448e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
12 changes: 12 additions & 0 deletions app/models/config_manager2.rb
Expand Up @@ -10,6 +10,7 @@ def self.included(base)
module ClassMethods
def acts_as_settable
add_finder()
add_settable_init()
end

def setting(name, type=:object, default=nil)
Expand All @@ -33,6 +34,17 @@ def add_finder()
end
end

def add_settable_init()
self.send(:define_method, "settable_init") do | *args |
args.each do |key, value|
s = setting_for_name(key)
if not s.nil?
s.set_typed_value(val)
end
end
end
end

def add_setting_reader(setting)
key = setting.setting_name
self.send(:define_method, key) do
Expand Down
7 changes: 1 addition & 6 deletions app/models/user.rb
Expand Up @@ -58,12 +58,7 @@ def self.salt

def initialize(*args)
super
args.each do |key, value|
s = setting_for_name(key)
if not s.nil?
s.set_typed_value(val)
end
end
settable_init(*args)
end

def self.authenticate(login, pass)
Expand Down

0 comments on commit 29b448e

Please sign in to comment.