metahash-rb 1.1.2 → 1.2.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -2
- data/lib/metahash.rb +1 -2
- data/lib/metahash/metadata.rb +3 -3
- data/lib/metahash/version.rb +1 -1
- data/metahash.gemspec +2 -0
- metadata +17 -4
- data/lib/metahash/metaclass.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7101b7a8d75b5dfdd8a987cea6e40e238f9d14e7
|
4
|
+
data.tar.gz: d90e6f1b493b25fcafd624babdb1dc63d6a5dd88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee45dbaf38c3b0d81fb3b845433b0c77e25df58089cb9246bb6c90d36e5fc40be9840f78d7e75928c7e949fb76a9a496f2c80e36c52df23d07e9e0f29af0fa1c
|
7
|
+
data.tar.gz: ece53dc1bc77a87a6a8fd8d8885a594baaad843703576e4621fc6744ea74b73035a18dad28801b02b74eb976377ac6b399a1979ac06167fe38217d6d0e8d6424
|
data/.travis.yml
CHANGED
@@ -3,7 +3,6 @@ bundler_args: --without guard
|
|
3
3
|
rvm:
|
4
4
|
- "2.0"
|
5
5
|
- "2.1"
|
6
|
-
- "2.1.1"
|
7
6
|
- ruby-head
|
8
7
|
script: "bundle exec rspec"
|
9
8
|
addons:
|
@@ -11,5 +10,5 @@ addons:
|
|
11
10
|
repo_token: 1d1b1a31bb3137d986297ad8a1ad5a3a1adbd70f0e8583d7eaf1dd4c0ab0bbe1
|
12
11
|
branches:
|
13
12
|
only: master
|
14
|
-
notifications:
|
13
|
+
notifications:
|
15
14
|
email: false
|
data/lib/metahash.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
require "
|
1
|
+
require "meta_instance"
|
2
2
|
require "metahash/metadata"
|
3
3
|
require "metahash/extensions/hash/to_metadata"
|
4
4
|
require "metahash/version"
|
5
5
|
require 'active_record'
|
6
6
|
|
7
7
|
module MetaHash
|
8
|
-
|
9
8
|
# When an active record object is loaded, convert to Metadata.
|
10
9
|
# If for whatever reason we lose this Metadata class, we can read
|
11
10
|
# the hash by creating class Metadata < Hash; end
|
data/lib/metahash/metadata.rb
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
# h[:inner][:key] == "value"
|
21
21
|
#
|
22
22
|
class Metadata < Hash
|
23
|
-
include
|
23
|
+
include ::MetaInstance
|
24
24
|
# in the event we are overriding a method, have a way to
|
25
25
|
# get back to the original
|
26
26
|
METHOD_BACKUP_KEY = "metadata_original_"
|
@@ -143,11 +143,11 @@ class Metadata < Hash
|
|
143
143
|
@empty_nested_hashes = []
|
144
144
|
deepest_metadata[key] = value
|
145
145
|
# override any existing method with the key
|
146
|
-
deepest_metadata.
|
146
|
+
deepest_metadata.instance_define(key){ self[key] }
|
147
147
|
else
|
148
148
|
self[key] = value
|
149
149
|
# override any existing method with the key
|
150
|
-
self.
|
150
|
+
self.instance_define(key){ value }
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
data/lib/metahash/version.rb
CHANGED
data/metahash.gemspec
CHANGED
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
|
25
25
|
s.add_runtime_dependency "activerecord", ">= 3.0.0"
|
26
|
+
s.add_runtime_dependency "meta_instance"
|
27
|
+
|
26
28
|
s.add_development_dependency "bundler"
|
27
29
|
s.add_development_dependency "rspec"
|
28
30
|
s.add_development_dependency "sqlite3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metahash-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- L. Preston Sego III
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: meta_instance
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,7 +124,6 @@ files:
|
|
110
124
|
- Rakefile
|
111
125
|
- lib/metahash.rb
|
112
126
|
- lib/metahash/extensions/hash/to_metadata.rb
|
113
|
-
- lib/metahash/metaclass.rb
|
114
127
|
- lib/metahash/metadata.rb
|
115
128
|
- lib/metahash/version.rb
|
116
129
|
- metahash.gemspec
|
@@ -144,7 +157,7 @@ rubyforge_project:
|
|
144
157
|
rubygems_version: 2.4.1
|
145
158
|
signing_key:
|
146
159
|
specification_version: 4
|
147
|
-
summary: MetaHash-1.
|
160
|
+
summary: MetaHash-1.2.0
|
148
161
|
test_files:
|
149
162
|
- spec/hash_spec.rb
|
150
163
|
- spec/metadata_spec.rb
|
data/lib/metahash/metaclass.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# http://reference.jumpingmonkey.org/programming_languages/ruby/ruby-metaprogramming.html
|
2
|
-
# allows the adding of methods to instances,
|
3
|
-
# but not the entire set of instances for a
|
4
|
-
# particular class
|
5
|
-
module MetaHash
|
6
|
-
module Metaclass
|
7
|
-
# The hidden singleton lurks behind everyone
|
8
|
-
def metaclass
|
9
|
-
class << self
|
10
|
-
self
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def meta_eval(&block)
|
15
|
-
metaclass.instance_eval(&block)
|
16
|
-
end
|
17
|
-
|
18
|
-
# Adds methods to a metaclass
|
19
|
-
def meta_def(name, &block)
|
20
|
-
meta_eval {
|
21
|
-
define_method(name, &block)
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
# unused
|
26
|
-
# Defines an instance method within a class
|
27
|
-
# def class_def(name, &block)
|
28
|
-
# class_eval {
|
29
|
-
# define_method(name, &block)
|
30
|
-
# }
|
31
|
-
# end
|
32
|
-
end
|
33
|
-
end
|