yogi_berra 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/keys.rb +21 -0
- data/lib/yogi_berra/data.rb +3 -0
- data/lib/yogi_berra/version.rb +1 -1
- data/spec/keys_spec.rb +10 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjIyM2NiNWRiYjNkYjIwYTUwY2VmZWQzMWEzNzU3NzhlNzRkMjZjNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzE5MmYwY2NhMzlkN2Q2NmExMmJiOWFhZDQ3YTczOThmMDU5M2I5YQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTIzODQ4NjEyMjQxODlhNDRiM2NiYThjYmNhYjQ3MDIxOGE0NjJmYWYwZGZk
|
10
|
+
MmE2Nzk2MDQ1ODU0Y2EwYmNkZjI1N2Y5NDg4MmRiMTY3MjJkYjExNjQyNzZh
|
11
|
+
M2NmNmZhNTQ4NmFkYzI1NzQ1MGRlYTk0NjE2MGYyNTA3N2MzZGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZDRhM2FjMDRiOTVlOGMxYTNiMzk4NzRlMjEwZmRiOWY0ODgxMjBlMzFhYjA3
|
14
|
+
NmY5MTJhY2QxYjdlNGMwMjg2MTE1NzdiNzQ2ZTBmM2U3N2M5ZWJhNDRhMzg0
|
15
|
+
NmQ0ZDY5NWNjNmRlMGI2MDk2OTNhMjA5Yjk3M2RmZjdjMDZiOWY=
|
data/lib/keys.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# adapted from https://raw.github.com/rails/rails/master/activesupport/lib/active_support/core_ext/hash/keys.rb
|
2
|
+
class Hash
|
3
|
+
def deep_transform_both!(&block)
|
4
|
+
keys.each do |key|
|
5
|
+
value = delete(key)
|
6
|
+
self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_both!(&block) : yield(value)
|
7
|
+
end
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def deep_stringify_keys_and_values!
|
12
|
+
exceptable_data_types = [Fixnum, Float, String]
|
13
|
+
deep_transform_both! do |element|
|
14
|
+
if exceptable_data_types.include?(element.class)
|
15
|
+
element
|
16
|
+
else
|
17
|
+
element.to_s
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/yogi_berra/data.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'mongo'
|
2
|
+
require 'keys'
|
2
3
|
|
3
4
|
module YogiBerra
|
4
5
|
class Data
|
@@ -11,6 +12,8 @@ module YogiBerra
|
|
11
12
|
data[:controller] = parse_controller(controller) if controller
|
12
13
|
data.merge!(environment)
|
13
14
|
end
|
15
|
+
# convert all the keys to strings for bson storage, using activesupport keys.rb file
|
16
|
+
data.deep_stringify_keys_and_values!
|
14
17
|
YogiBerra::Catcher.connection["caught_exceptions"].insert(data)
|
15
18
|
end
|
16
19
|
|
data/lib/yogi_berra/version.rb
CHANGED
data/spec/keys_spec.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'bson'
|
3
|
+
|
4
|
+
describe "Hash Keys" do
|
5
|
+
it "should stringify hash parts to be used with BSON" do
|
6
|
+
hash = {:foo => "bar", :bar => Class, "object" => {:a => 1, :b => "1", :c => {:d => 10.5, :e => nil}}}
|
7
|
+
hash.deep_stringify_keys_and_values!
|
8
|
+
lambda { BSON::BSON_CODER.serialize(hash) }.should_not raise_error
|
9
|
+
end
|
10
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yogi_berra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Earl Krauss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -88,6 +88,7 @@ extensions: []
|
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
90
|
- lib/facets.rb
|
91
|
+
- lib/keys.rb
|
91
92
|
- lib/yogi_berra/action_controller_catcher.rb
|
92
93
|
- lib/yogi_berra/backtrace.rb
|
93
94
|
- lib/yogi_berra/catcher.rb
|
@@ -106,6 +107,7 @@ files:
|
|
106
107
|
- spec/fixtures/config/yogi.yml
|
107
108
|
- spec/fixtures/rails.rb
|
108
109
|
- spec/fixtures/test.yml
|
110
|
+
- spec/keys_spec.rb
|
109
111
|
- spec/spec_helper.rb
|
110
112
|
- spec/yogi_berra_catcher_spec.rb
|
111
113
|
- spec/yogi_berra_data_spec.rb
|
@@ -139,6 +141,7 @@ test_files:
|
|
139
141
|
- spec/fixtures/config/yogi.yml
|
140
142
|
- spec/fixtures/rails.rb
|
141
143
|
- spec/fixtures/test.yml
|
144
|
+
- spec/keys_spec.rb
|
142
145
|
- spec/spec_helper.rb
|
143
146
|
- spec/yogi_berra_catcher_spec.rb
|
144
147
|
- spec/yogi_berra_data_spec.rb
|