OSDN Git Service

migrate email.yml to configuration.yml
authorAkihiro Ono <akihiro.ase@gmail.com>
Sun, 2 Oct 2011 07:04:20 +0000 (16:04 +0900)
committerAkihiro Ono <akihiro.ase@gmail.com>
Sun, 2 Oct 2011 07:04:20 +0000 (16:04 +0900)
vendor/plugins/redmine_le/app/models/redmine_le_setting.rb

index 3f04383..537407f 100644 (file)
@@ -2,7 +2,7 @@ class RedmineLeSetting < ActiveRecord::Base
   unloadable\r
 \r
   @@skip_callbacks = false\r
-  EMAIL_YAML = RAILS_ROOT + "/config/email.yml"\r
+  CONFIG_YAML = RAILS_ROOT + "/config/configuration.yml"\r
 \r
   belongs_to :auth_source\r
 \r
@@ -68,9 +68,13 @@ class RedmineLeSetting < ActiveRecord::Base
     admin_password && Base64.encode64(admin_password).chomp\r
   end\r
 \r
+  def config\r
+    @config ||= File.file?(CONFIG_YAML) ? YAML.load_file(CONFIG_YAML) : {}\r
+  end\r
+\r
   def smtp_settings\r
-    @email_config ||= File.file?(EMAIL_YAML) ? YAML.load_file(EMAIL_YAML) : {}\r
-    conf = @email_config[RAILS_ENV] ||= {}\r
+    conf = config["default"] ||= {}\r
+    conf = conf["email_delivery"] ||= {}\r
     conf["delivery_method"] ||= :smtp\r
     conf["smtp_settings"] ||= {}\r
   end\r
@@ -88,11 +92,11 @@ class RedmineLeSetting < ActiveRecord::Base
   end\r
 \r
   def smtp_port\r
-    smtp_settings["port"] ||= 25\r
+    smtp_settings["port"]\r
   end\r
 \r
   def smtp_port=(value)\r
-    set_smtp_setting("port", value.to_i)\r
+    set_smtp_setting("port", value.to_i.nonzero?)\r
   end\r
 \r
   def smtp_user\r
@@ -145,13 +149,15 @@ class RedmineLeSetting < ActiveRecord::Base
       Setting.mail_from = @smtp_sender\r
     end\r
 \r
-    smtp_settings["domain"] ||= "localhost"\r
+    self.smtp_port ||= 25\r
+\r
     if smtp_user.blank? || smtp_password.blank?\r
       %w[authentication user_name password].each {|key|\r
         smtp_settings.delete(key)\r
       }\r
     else\r
       smtp_settings["authentication"] = :login\r
+      smtp_settings["domain"] ||= "localhost"\r
     end\r
 \r
     self.class.replace_xml(\r
@@ -161,7 +167,7 @@ class RedmineLeSetting < ActiveRecord::Base
       ["//smtpAuthUsername", smtp_user],\r
       ["//smtpAuthPassword", smtp_password]\r
     )\r
-    self.class.write_file(EMAIL_YAML, YAML.dump(@email_config))\r
+    self.class.write_file(CONFIG_YAML, YAML.dump(config))\r
     @smtp_settings_changed = nil\r
   end\r
 \r
@@ -242,6 +248,6 @@ class RedmineLeSetting < ActiveRecord::Base
     v = "@smtp_#{key}_was"\r
     v = instance_variable_get(v) || instance_variable_set(v, smtp_settings[key])\r
     @smtp_settings_changed = true if v != value\r
-    smtp_settings[key] = value\r
+    value.blank? ? smtp_settings.delete(key) : (smtp_settings[key] = value)\r
   end\r
 end\r