jsable_hash 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b94766dd8207dbd4db93e1d810d2f003d69c06d0
4
- data.tar.gz: ca012a318bfee45318b88d6cba00ddcdfda8fd1a
3
+ metadata.gz: 4fcf8e844c7c7f93319f8b22d84e81ec004532ad
4
+ data.tar.gz: df63eb222a0f0f37e7da74f077879121bbf8ad5a
5
5
  SHA512:
6
- metadata.gz: 0d1e2aa29a84745949765ebe3ba6d2f5d8e0b0d4164325833dd380dd7059236f1125b248014255f957f100e6bb1bad68bd1e4c7020042dbf5297d53590c3307a
7
- data.tar.gz: b37094fce755856becfd6c2ec740306566d7d5972368886424267862f6b7124eac3690caa7ff934533f2e49cfc11a4f084f41c45c3f557c64e82f16318151a1c
6
+ metadata.gz: d66deb2077845d9840783821947b1459d0dc5a26a029edd7e95fe727205bef87924361701f31371215b7b1a8fd9eee594fd30a16cfd3e6dc60cc03d7cf6a901b
7
+ data.tar.gz: dea1321d0f96a82cc5b35150391dcd8a83c817c02977fc4ebd011f606923fb9e1f1fd6f77416c7d41fca391655912756ab4b98fb27e0bcad2d0921552cf0cb0e
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ *.gem
data/lib/jsable_hash.rb CHANGED
@@ -1,22 +1,7 @@
1
- #require "jsable_hash/version"
1
+ require "jsable_hash/version"
2
+ require 'jsable_hash/dynamic_matcher'
2
3
 
3
4
  class Hash
4
5
  # Your code goes here...
5
- private
6
-
7
- def method_missing(name, *args, &block)
8
- t_key = nil
9
-
10
- if has_key? name.to_s
11
- t_key = name.to_s
12
- elsif has_key? name.to_sym
13
- t_key = name.to_sym
14
- end
15
-
16
- if t_key
17
- return fetch(t_key)
18
- else
19
- super
20
- end
21
- end
6
+ include Hash::DynamicMatcher
22
7
  end
@@ -0,0 +1,26 @@
1
+ class Hash
2
+ module DynamicMatcher
3
+ private
4
+
5
+ def method_missing(name, *args, &block)
6
+ t_key = match(name)
7
+
8
+ return send(finder, t_key) if t_key
9
+ super
10
+ end
11
+
12
+ def match(name)
13
+ return name.to_s if send(matcher, name.to_s)
14
+ return name.to_sym if send(matcher, name.to_sym)
15
+ nil
16
+ end
17
+
18
+ def matcher
19
+ 'has_key?'
20
+ end
21
+
22
+ def finder
23
+ 'fetch'
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module JsableHash
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsable_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vitamiena
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-11 00:00:00.000000000 Z
11
+ date: 2017-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,7 @@ files:
71
71
  - bin/setup
72
72
  - jsable_hash.gemspec
73
73
  - lib/jsable_hash.rb
74
+ - lib/jsable_hash/dynamic_matcher.rb
74
75
  - lib/jsable_hash/version.rb
75
76
  homepage: https://github.com/vitamiena/jsable_hash
76
77
  licenses: