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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b21c51283eacfaf1a20c154f7999eb8843e310e6
4
- data.tar.gz: a9e649da99e7b72785265b348d1534907bd74262
3
+ metadata.gz: 7101b7a8d75b5dfdd8a987cea6e40e238f9d14e7
4
+ data.tar.gz: d90e6f1b493b25fcafd624babdb1dc63d6a5dd88
5
5
  SHA512:
6
- metadata.gz: c36be5a77381a5bcab17dc5bf313c35ddfb239ef67b27f00358d530cf4f2dc38722bd54db466f859dc906cc2616b4ee1d9b3414a6f7bb0f306394e6a6c042966
7
- data.tar.gz: 007622bcea83aea25e888c798885333ae35d1af3c50bb315f1665cc3a42552f2aa57f7da49607ab84a81e554286b162b8e56dabb49f6297c8d4b955fd3a12111
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 "metahash/metaclass"
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
@@ -20,7 +20,7 @@
20
20
  # h[:inner][:key] == "value"
21
21
  #
22
22
  class Metadata < Hash
23
- include MetaHash::Metaclass
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.meta_def(key){ self[key] }
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.meta_def(key){ value }
150
+ self.instance_define(key){ value }
151
151
  end
152
152
  end
153
153
  end
@@ -1,3 +1,3 @@
1
1
  module MetaHash
2
- VERSION = "1.1.2"
2
+ VERSION = "1.2.0"
3
3
  end
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.1.2
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-14 00:00:00.000000000 Z
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.1.2
160
+ summary: MetaHash-1.2.0
148
161
  test_files:
149
162
  - spec/hash_spec.rb
150
163
  - spec/metadata_spec.rb
@@ -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