webget_ramp 1.7.1.6 → 1.7.1.7
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.
- data/lib/webget_ramp/active_record/save_extensions.rb +16 -0
- data/lib/webget_ramp/hash.rb +27 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
@@ -5,6 +5,8 @@ module ActiveRecord::SaveExtensions
|
|
5
5
|
# This solves an issue we found with Rails associations not saving.
|
6
6
|
#
|
7
7
|
# By Andrew Carpenter (acarpen@wested.org)
|
8
|
+
#
|
9
|
+
# Deprecated, superceded by #save_redux!
|
8
10
|
|
9
11
|
def save_false_then_reload!
|
10
12
|
transaction do
|
@@ -15,5 +17,19 @@ module ActiveRecord::SaveExtensions
|
|
15
17
|
return true
|
16
18
|
end
|
17
19
|
|
20
|
+
|
21
|
+
# Save the record without validation, then reload, then save with validtion.
|
22
|
+
# This ensure that rails brings back the correct associations to validate.
|
23
|
+
# This solves an issue we found with Rails associations not saving.
|
24
|
+
|
25
|
+
def save_redux!
|
26
|
+
transaction do
|
27
|
+
save(false)
|
28
|
+
reload
|
29
|
+
save!
|
30
|
+
end
|
31
|
+
return true
|
32
|
+
end
|
33
|
+
|
18
34
|
end
|
19
35
|
ActiveRecord::Base.send(:include, ActiveRecord::SaveExtensions)
|
data/lib/webget_ramp/hash.rb
CHANGED
@@ -126,7 +126,33 @@ class Hash
|
|
126
126
|
# Hash#pivot aggregates values for a hash of hashes,
|
127
127
|
# for example to calculate subtotals and groups.
|
128
128
|
#
|
129
|
-
#
|
129
|
+
# Suppose you have data arranged by companies, roles, and headcounts.
|
130
|
+
|
131
|
+
# data = {
|
132
|
+
# "Apple" => {"Accountants" => 11, "Designers" => 22, "Developers" => 33},
|
133
|
+
# "Goggle" => {"Accountants" => 44, "Designers" => 55, "Developers" => 66},
|
134
|
+
# "Microsoft" => {"Accountants" => 77, "Designers" => 88, "Developers" => 99},
|
135
|
+
# }
|
136
|
+
#
|
137
|
+
# To calculate each company's total headcount, you pivot up, then sum:
|
138
|
+
#
|
139
|
+
# data.pivot(:up,&:sum)
|
140
|
+
# => {
|
141
|
+
# "Apple"=>66,
|
142
|
+
# "Goggle"=>165,
|
143
|
+
# "Microsoft"=>264
|
144
|
+
# }
|
145
|
+
#
|
146
|
+
# To calculate each role's total headcount, you pivot down, then sum:
|
147
|
+
#
|
148
|
+
# data.pivot(:down,&:sum)
|
149
|
+
# => {
|
150
|
+
# "Accountants"=>132,
|
151
|
+
# "Designers"=>165,
|
152
|
+
# "Developers"=>198
|
153
|
+
# }
|
154
|
+
#
|
155
|
+
# Generic xxample:
|
130
156
|
# h={
|
131
157
|
# "a"=>{"x"=>1,"y"=>2,"z"=>3},
|
132
158
|
# "b"=>{"x"=>4,"y"=>5,"z"=>6},
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webget_ramp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.1.
|
4
|
+
version: 1.7.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WebGet
|
@@ -32,7 +32,7 @@ cert_chain:
|
|
32
32
|
DXnLFY0cVuBnNDMOOFl8vk1qIcZjcTovhzgcixpG6Uk5qmUsKHRLQf4oQJx7TfLK
|
33
33
|
-----END CERTIFICATE-----
|
34
34
|
|
35
|
-
date: 2009-12-
|
35
|
+
date: 2009-12-15 00:00:00 -08:00
|
36
36
|
default_executable:
|
37
37
|
dependencies: []
|
38
38
|
|
metadata.gz.sig
CHANGED
Binary file
|