Module: PostJson::SettingsMethods::ClassMethods

Defined in:
lib/post_json/concerns/settings_methods.rb

Instance Method Summary collapse

Instance Method Details

#create_dynamic_index_milliseconds_thresholdObject



102
103
104
# File 'lib/post_json/concerns/settings_methods.rb', line 102

def create_dynamic_index_milliseconds_threshold
  read_settings_attribute('create_dynamic_index_milliseconds_threshold')
end

#create_dynamic_index_milliseconds_threshold=(millisecs) ⇒ Object



106
107
108
# File 'lib/post_json/concerns/settings_methods.rb', line 106

def create_dynamic_index_milliseconds_threshold=(millisecs)
  write_settings_attribute('create_dynamic_index_milliseconds_threshold', millisecs)
end

#created_at_attribute_nameObject



62
63
64
# File 'lib/post_json/concerns/settings_methods.rb', line 62

def created_at_attribute_name
  read_settings_attribute('created_at_attribute_name')
end

#created_at_attribute_name=(attribute_name) ⇒ Object



66
67
68
# File 'lib/post_json/concerns/settings_methods.rb', line 66

def created_at_attribute_name=(attribute_name)
  write_settings_attribute('created_at_attribute_name', attribute_name)
end

#include_version_numberObject



78
79
80
# File 'lib/post_json/concerns/settings_methods.rb', line 78

def include_version_number
  read_settings_attribute('include_version_number')
end

#include_version_number=(value) ⇒ Object



82
83
84
# File 'lib/post_json/concerns/settings_methods.rb', line 82

def include_version_number=(value)
  write_settings_attribute('include_version_number', value)
end

#metaObject



43
44
45
# File 'lib/post_json/concerns/settings_methods.rb', line 43

def meta
  HashWithIndifferentAccess.new(read_settings_attribute('meta'))
end

#meta=(hash) ⇒ Object



47
48
49
# File 'lib/post_json/concerns/settings_methods.rb', line 47

def meta=(hash)
  write_settings_attribute('meta', HashWithIndifferentAccess.new(hash))
end

#persisted_settingsObject



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/post_json/concerns/settings_methods.rb', line 10

def persisted_settings
  if settings.new_record?
    existing = ModelSettings.by_collection(collection_name).first
    if existing
      updates = settings.changes.inject({}) {|result, (k,v)| result[k] = v[1]; result}
      existing.update_attributes(updates)
      @settings = existing
    else
      settings.save!
    end
  end
  settings
end

#read_settings_attribute(attribute_name) ⇒ Object



29
30
31
32
# File 'lib/post_json/concerns/settings_methods.rb', line 29

def read_settings_attribute(attribute_name)
  attribute_name = attribute_name.to_s
  settings[attribute_name]
end

#reload_settings!Object



24
25
26
27
# File 'lib/post_json/concerns/settings_methods.rb', line 24

def reload_settings!
  @settings = nil
  settings
end

#settingsObject



6
7
8
# File 'lib/post_json/concerns/settings_methods.rb', line 6

def settings
  @settings ||= ModelSettings.by_collection(collection_name).first_or_initialize(collection_name: collection_name)
end

#updated_at_attribute_nameObject



70
71
72
# File 'lib/post_json/concerns/settings_methods.rb', line 70

def updated_at_attribute_name
  read_settings_attribute('updated_at_attribute_name')
end

#updated_at_attribute_name=(attribute_name) ⇒ Object



74
75
76
# File 'lib/post_json/concerns/settings_methods.rb', line 74

def updated_at_attribute_name=(attribute_name)
  write_settings_attribute('updated_at_attribute_name', attribute_name)
end

#use_dynamic_indexObject



94
95
96
# File 'lib/post_json/concerns/settings_methods.rb', line 94

def use_dynamic_index
  read_settings_attribute('use_dynamic_index')
end

#use_dynamic_index=(value) ⇒ Object



98
99
100
# File 'lib/post_json/concerns/settings_methods.rb', line 98

def use_dynamic_index=(value)
  write_settings_attribute('use_dynamic_index', value)
end

#use_timestampsObject Also known as: record_timestamps



51
52
53
# File 'lib/post_json/concerns/settings_methods.rb', line 51

def use_timestamps
  read_settings_attribute('use_timestamps')
end

#use_timestamps=(value) ⇒ Object Also known as: record_timestamps=



55
56
57
# File 'lib/post_json/concerns/settings_methods.rb', line 55

def use_timestamps=(value)
  write_settings_attribute('use_timestamps', value)
end

#version_attribute_nameObject



86
87
88
# File 'lib/post_json/concerns/settings_methods.rb', line 86

def version_attribute_name
  read_settings_attribute('version_attribute_name')
end

#version_attribute_name=(attribute_name) ⇒ Object



90
91
92
# File 'lib/post_json/concerns/settings_methods.rb', line 90

def version_attribute_name=(attribute_name)
  write_settings_attribute('version_attribute_name', attribute_name)
end

#write_settings_attribute(attribute_name, value) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/post_json/concerns/settings_methods.rb', line 34

def write_settings_attribute(attribute_name, value)
  attribute_name = attribute_name.to_s
  if settings[attribute_name] != value
    settings[attribute_name] = value 
    settings.save! 
  end
  value
end