Module: MyTimeline::SettingsExt

Defined in:
lib/my_timeline/settings_ext.rb

Class Method Summary collapse

Class Method Details

.extend_rails_settingsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/my_timeline/settings_ext.rb', line 5

def self.extend_rails_settings

  RailsSettings::SettingObject.class_eval do
    self.table_name = "my_timeline_settings"

    MyTimeline.config_object = ::RailsSettings::Configuration.new(MyTimeline.user_class) do |s|
      s.key :core
    end

    MyTimeline.user_class.class_eval do
      self.send :include, ::RailsSettings::Base
      self.send :extend,  ::RailsSettings::Scopes

      def self.settings_attr_accessor(*args)
        args.each do |method_name|
          eval "
            def #{method_name}
              self.settings(:core).send(:#{method_name})
            end
            def #{method_name}=(value)
              self.settings(:core).send(:#{method_name}=, value)
            end
          "
        end
      end

      settings_attr_accessor :time_zone

    end unless MyTimeline.user_class == MyTimeline::UserStub
  end
end