bzsnippets 0.0.2 → 0.0.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.
@@ -0,0 +1,25 @@
1
+ class Array
2
+ def deep_stringify_keys
3
+ inject([]) { |accum, value|
4
+ if (value.is_a?(Hash) or value.is_a?(Array))
5
+ new_val = value.deep_stringify_keys
6
+ accum.push new_val
7
+ else
8
+ accum.push value
9
+ end
10
+ accum
11
+ }
12
+ end
13
+
14
+ def deep_symbolize_keys
15
+ inject([]) { |accum, value|
16
+ if (value.is_a?(Hash) or value.is_a?(Array))
17
+ new_val = value.deep_symbolize_keys
18
+ accum.push new_val
19
+ else
20
+ accum.push value
21
+ end
22
+ accum
23
+ }
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ class Class
2
+ def subclasses
3
+ ObjectSpace.each_object(::Class).select {|klass| klass < self }
4
+ end
5
+ end
@@ -2,6 +2,7 @@ require 'active_support/concern'
2
2
  require 'active_support/core_ext/hash'
3
3
  require 'pathname'
4
4
  require 'delegate'
5
+
5
6
  module Snippets
6
7
  module Object
7
8
  module EnvAttribute
@@ -0,0 +1,29 @@
1
+ class Hash
2
+ def deep_symbolize_keys
3
+ inject({}) { |result, (key, value)|
4
+ value = value.deep_symbolize_keys if (value.is_a?(Hash) or value.is_a?(Array))
5
+ result[(key.to_sym rescue key) || key] = value
6
+ result
7
+ }
8
+ end
9
+
10
+ def deep_stringify_keys
11
+ inject({}) { |result, (key, value)|
12
+ value = value.deep_stringify_keys if (value.is_a?(Hash) or value.is_a?(Array))
13
+ result[(key.to_s rescue key) || key] = value
14
+ result
15
+ }
16
+ end
17
+
18
+ def deep_merge hash
19
+ target = dup
20
+ hash.keys.each do |key|
21
+ if hash[key].is_a? Hash and self[key].is_a? Hash
22
+ target[key] = target[key].deep_merge(hash[key])
23
+ next
24
+ end
25
+ target[key] = hash[key]
26
+ end
27
+ target
28
+ end
29
+ end
@@ -0,0 +1 @@
1
+ require "snippets/core_ext/object/env_attribute"
@@ -1,3 +1,3 @@
1
1
  module Snippets
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/snippets.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require "snippets/version"
2
- require "snippets/object/env_attribute"
2
+ require "snippets/class"
3
+ require "snippets/object"
4
+ require "snippets/array"
5
+ require "snippets/hash"
3
6
  require "snippets/mime_tempfile"
4
7
  module Snippets
5
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bzsnippets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-08 00:00:00.000000000 Z
12
+ date: 2013-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -57,8 +57,12 @@ files:
57
57
  - README.md
58
58
  - Rakefile
59
59
  - lib/snippets.rb
60
+ - lib/snippets/array.rb
61
+ - lib/snippets/class.rb
62
+ - lib/snippets/core_ext/object/env_attribute.rb
63
+ - lib/snippets/hash.rb
60
64
  - lib/snippets/mime_tempfile.rb
61
- - lib/snippets/object/env_attribute.rb
65
+ - lib/snippets/object.rb
62
66
  - lib/snippets/version.rb
63
67
  - snippets.gemspec
64
68
  - spec/fixtures/config.yml