minitag 0.4.0 → 0.4.1
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/Gemfile.lock +1 -1
- data/lib/minitag.rb +11 -0
- data/lib/minitag/extension_registry.rb +26 -0
- data/lib/minitag/minitest_tag.rb +1 -1
- data/lib/minitag/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5cfcb59a8e761ef05e4520539a37892c772362685feab9ca2c9d98badbc155ee
|
|
4
|
+
data.tar.gz: e99d1e6784863d642564e69592d08d999218399951dbd346f484d63450358e19
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9e788f60ca4a42e8220ed07955b2c4f93a41791b4e9425b17f6785b3783e0cb88b002fc75d03baceb73984a65438df1ab041455243a11dfe480b1e6be8dce888
|
|
7
|
+
data.tar.gz: a8720ea668e10aa1c4d1fb58fb2c4fad8661c39e9fe33f8e35a69a57696c482ebf3c236074716764eef004225900e3fc11eb3d37e71dc93f904d98e380114f6f
|
data/Gemfile.lock
CHANGED
data/lib/minitag.rb
CHANGED
|
@@ -4,6 +4,7 @@ require 'set'
|
|
|
4
4
|
require 'minitest'
|
|
5
5
|
require 'minitag/version'
|
|
6
6
|
require 'minitag/context'
|
|
7
|
+
require 'minitag/extension_registry'
|
|
7
8
|
require 'minitag/minitest_tag'
|
|
8
9
|
require 'minitag/tag_extension'
|
|
9
10
|
|
|
@@ -11,6 +12,16 @@ require 'minitag/tag_extension'
|
|
|
11
12
|
# to Minitest::Test
|
|
12
13
|
module Minitag
|
|
13
14
|
class << self
|
|
15
|
+
# Registry of classes that requires extension by Minitag::TagExtension.
|
|
16
|
+
def extension_registry
|
|
17
|
+
@extension_registry ||= ExtensionRegistry.new
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Register a class for extension.
|
|
21
|
+
def register_for_extension(klass)
|
|
22
|
+
extension_registry.register(klass)
|
|
23
|
+
end
|
|
24
|
+
|
|
14
25
|
# Execution context of the test suite.
|
|
15
26
|
def context
|
|
16
27
|
@context ||= Context.new
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Minitag
|
|
4
|
+
# Stores and extends classes that relies on tags with the Minitag::TagExtension
|
|
5
|
+
# module.
|
|
6
|
+
class ExtensionRegistry
|
|
7
|
+
def initialize
|
|
8
|
+
@registry = {}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Extends a class with Minitag::TagExtension and stores it as extended.
|
|
12
|
+
#
|
|
13
|
+
# Invariants:
|
|
14
|
+
# - Classes that were already extended will be ignored during this operation.
|
|
15
|
+
#
|
|
16
|
+
# @param [Class] klass a class that will be extended.
|
|
17
|
+
#
|
|
18
|
+
# @return [void]
|
|
19
|
+
def register(klass)
|
|
20
|
+
return if @registry.key?(klass)
|
|
21
|
+
|
|
22
|
+
@registry[klass] = true
|
|
23
|
+
klass.singleton_class.prepend(Minitag::TagExtension)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
data/lib/minitag/minitest_tag.rb
CHANGED
data/lib/minitag/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: minitag
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bernardo de Araujo
|
|
@@ -86,6 +86,7 @@ files:
|
|
|
86
86
|
- bin/setup
|
|
87
87
|
- lib/minitag.rb
|
|
88
88
|
- lib/minitag/context.rb
|
|
89
|
+
- lib/minitag/extension_registry.rb
|
|
89
90
|
- lib/minitag/minitest_tag.rb
|
|
90
91
|
- lib/minitag/tag_extension.rb
|
|
91
92
|
- lib/minitag/tag_registry.rb
|