cockpit 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,30 @@ module Cockpit
11
11
  base.class_eval do
12
12
  has_many :settings, :as => :configurable, :class_name => "::Cockpit::AR::Setting", :dependent => :destroy
13
13
 
14
+ class << self
15
+ def setting_sum(key, conditions = {})
16
+ conditions[:configurable_type] ||= self.sti_classes
17
+ conditions[:key] = key
18
+ Setting.sum(:value, :conditions => conditions)
19
+ end
20
+ alias setting_total setting_sum
21
+
22
+ def setting_average(key, conditions = {})
23
+ conditions[:configurable_type] ||= self.sti_classes
24
+ conditions[:key] = key
25
+ Setting.average(:value, :conditions => conditions)
26
+ end
27
+ alias setting_avg setting_average
28
+
29
+ def method_missing(method, *args, &block)
30
+ if method.to_s =~ /(total|sum|average|avg)_(\w+)/
31
+ self.send("setting_#{$1}", $2, args.extract_options!)
32
+ else
33
+ super(method, *args, &block)
34
+ end
35
+ end
36
+ end
37
+
14
38
  unless respond_to?("get")
15
39
  def get(key)
16
40
  cockpit[key]
@@ -35,7 +59,7 @@ module Cockpit
35
59
  end
36
60
 
37
61
  def parsed_value
38
- JSON.parse(value)['root']
62
+ value#['root']
39
63
  end
40
64
  end
41
65
 
@@ -64,15 +88,15 @@ module Cockpit
64
88
  record.save! if record && record.new_record?
65
89
 
66
90
  setting = find_setting(key)
67
-
68
- attributes = {:value => {'root' => value}.to_json}#.merge(configurable_attributes)
69
-
91
+ #{:value => {'root' => value}.to_json}
92
+ attributes = {:value => value.to_json}.merge(configurable_attributes)
70
93
  if setting
71
94
  setting.update_attributes!(attributes)
72
95
  else
73
96
  setting = Setting.new(attributes)
74
97
  setting.key = key
75
98
  record.settings << setting if record
99
+ setting[:configurable_type] = attributes[:configurable_type]
76
100
  setting.save!
77
101
  end
78
102
 
@@ -118,7 +142,7 @@ module Cockpit
118
142
  def configurable_attributes
119
143
  conditions = {}
120
144
  if record
121
- conditions[:configurable_type] = [record.class.name, record.class.base_class.name]
145
+ conditions[:configurable_type] = record.class.name
122
146
  conditions[:configurable_id] = record.id
123
147
  else
124
148
  conditions[:configurable_type] = nil
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cockpit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lance Pollard
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-21 00:00:00 -05:00
18
+ date: 2010-09-22 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency