super_module 1.2.2 → 1.3.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 +5 -5
- data/CHANGELOG.md +35 -0
- data/README.md +33 -53
- data/VERSION +1 -1
- data/lib/super_module.rb +3 -41
- data/lib/super_module/v1.rb +1 -1
- data/lib/super_module/v1/singleton_method_definition_store.rb +5 -4
- data/spec/lib/super_module_spec.rb +195 -158
- data/spec/support/v1.rb +1 -1
- data/spec/support/v1/bar.rb +3 -4
- data/spec/support/v1/baz.rb +4 -5
- data/spec/support/v1/fake_active_model.rb +1 -1
- data/spec/support/v1/foo.rb +4 -5
- data/super_module.gemspec +9 -21
- metadata +19 -21
- data/examples/reddit-readers/banister/foo.rb +0 -7
- data/examples/reddit-readers/banister/world.rb +0 -5
- data/ruby187.Gemfile +0 -18
- data/spec/support/bar.rb +0 -52
- data/spec/support/baz.rb +0 -27
- data/spec/support/fake_active_model.rb +0 -16
- data/spec/support/foo.rb +0 -88
- data/spec/support/v2.rb +0 -6
- data/spec/support/v2/bar.rb +0 -52
- data/spec/support/v2/baz.rb +0 -27
- data/spec/support/v2/fake_active_model.rb +0 -14
- data/spec/support/v2/foo.rb +0 -87
- data/spec/support/v2_alt.rb +0 -6
- data/spec/support/v2_alt/bar.rb +0 -52
- data/spec/support/v2_alt/baz.rb +0 -27
- data/spec/support/v2_alt/fake_active_model.rb +0 -14
- data/spec/support/v2_alt/foo.rb +0 -87
data/spec/support/v1.rb
CHANGED
data/spec/support/v1/bar.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'forwardable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module V1::Bar
|
4
4
|
include SuperModule
|
5
|
-
include
|
5
|
+
include ::V1::Foo
|
6
6
|
include Comparable
|
7
7
|
validates 'bar', {:presence => true}
|
8
8
|
attr_reader :created_at
|
@@ -42,10 +42,9 @@ module Support::V1::Bar
|
|
42
42
|
'self.bar'
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
def <=>(other)
|
47
47
|
created_at <=> other.created_at
|
48
48
|
end
|
49
49
|
|
50
50
|
end
|
51
|
-
|
data/spec/support/v1/baz.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
module
|
1
|
+
module V1::Baz
|
2
2
|
include SuperModule
|
3
|
-
include
|
3
|
+
include ::V1::Bar
|
4
4
|
make_barrable
|
5
5
|
validates 'baz', {:presence => true}
|
6
6
|
attr_reader :baz_factor
|
7
|
-
|
7
|
+
|
8
8
|
class << self
|
9
9
|
def baz
|
10
10
|
'self.baz'
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def initialize(baz_factor)
|
15
15
|
super()
|
16
16
|
@baz_factor = baz_factor
|
@@ -25,4 +25,3 @@ module Support::V1::Baz
|
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
28
|
-
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# Uses CRLF for line breaks to provide a test case for having SuperModule work with it
|
2
2
|
# This is done to test support for Windows Ruby files, which usually use CRLF for line breaks
|
3
|
-
module
|
3
|
+
module V1::FakeActiveModel
|
4
4
|
|
5
5
|
include SuperModule
|
6
6
|
|
data/spec/support/v1/foo.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
module
|
1
|
+
module V1::Foo
|
2
2
|
include SuperModule
|
3
|
-
include
|
3
|
+
include ::V1::FakeActiveModel
|
4
4
|
validates 'foo', {:presence => true}
|
5
5
|
|
6
6
|
class << self
|
@@ -20,11 +20,11 @@ module Support::V1::Foo
|
|
20
20
|
end
|
21
21
|
protected :foo_protected_declaration_follow_up
|
22
22
|
|
23
|
-
private
|
23
|
+
private
|
24
24
|
def foo_private
|
25
25
|
'self.foo_private'
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
protected
|
29
29
|
def foo_protected
|
30
30
|
'self.foo_protected'
|
@@ -84,4 +84,3 @@ module Support::V1::Foo
|
|
84
84
|
end
|
85
85
|
|
86
86
|
end
|
87
|
-
|
data/super_module.gemspec
CHANGED
@@ -2,59 +2,44 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: super_module 1.
|
5
|
+
# stub: super_module 1.3.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "super_module".freeze
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.3.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Andy Maleh".freeze]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2020-03-24"
|
15
15
|
s.description = "SuperModule allows defining class methods and method invocations the same way a super class does without using def included(base). This also succeeds ActiveSupport::Concern by offering lighter syntax".freeze
|
16
16
|
s.extra_rdoc_files = [
|
17
|
+
"CHANGELOG.md",
|
17
18
|
"LICENSE.txt",
|
18
19
|
"README.md"
|
19
20
|
]
|
20
21
|
s.files = [
|
21
22
|
".document",
|
23
|
+
"CHANGELOG.md",
|
22
24
|
"LICENSE.txt",
|
23
25
|
"README.md",
|
24
26
|
"SuperModule.jpg",
|
25
27
|
"VERSION",
|
26
|
-
"examples/reddit-readers/banister/foo.rb",
|
27
|
-
"examples/reddit-readers/banister/world.rb",
|
28
28
|
"lib/super_module.rb",
|
29
29
|
"lib/super_module/v1.rb",
|
30
30
|
"lib/super_module/v1/module_body_method_call_recorder.rb",
|
31
31
|
"lib/super_module/v1/singleton_method_definition_store.rb",
|
32
|
-
"ruby187.Gemfile",
|
33
32
|
"spec/lib/super_module_spec.rb",
|
34
|
-
"spec/support/bar.rb",
|
35
|
-
"spec/support/baz.rb",
|
36
|
-
"spec/support/fake_active_model.rb",
|
37
|
-
"spec/support/foo.rb",
|
38
33
|
"spec/support/v1.rb",
|
39
34
|
"spec/support/v1/bar.rb",
|
40
35
|
"spec/support/v1/baz.rb",
|
41
36
|
"spec/support/v1/fake_active_model.rb",
|
42
37
|
"spec/support/v1/foo.rb",
|
43
|
-
"spec/support/v2.rb",
|
44
|
-
"spec/support/v2/bar.rb",
|
45
|
-
"spec/support/v2/baz.rb",
|
46
|
-
"spec/support/v2/fake_active_model.rb",
|
47
|
-
"spec/support/v2/foo.rb",
|
48
|
-
"spec/support/v2_alt.rb",
|
49
|
-
"spec/support/v2_alt/bar.rb",
|
50
|
-
"spec/support/v2_alt/baz.rb",
|
51
|
-
"spec/support/v2_alt/fake_active_model.rb",
|
52
|
-
"spec/support/v2_alt/foo.rb",
|
53
38
|
"super_module.gemspec"
|
54
39
|
]
|
55
40
|
s.homepage = "http://github.com/AndyObtiva/super_module".freeze
|
56
41
|
s.licenses = ["MIT".freeze]
|
57
|
-
s.rubygems_version = "
|
42
|
+
s.rubygems_version = "3.0.8".freeze
|
58
43
|
s.summary = "SuperModule allows defining class methods and method invocations the same way a super class does without using def included(base). This also succeeds ActiveSupport::Concern by offering lighter syntax".freeze
|
59
44
|
|
60
45
|
if s.respond_to? :specification_version then
|
@@ -65,6 +50,7 @@ Gem::Specification.new do |s|
|
|
65
50
|
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
66
51
|
s.add_development_dependency(%q<rdoc>.freeze, ["~> 4.2.0"])
|
67
52
|
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.2.0"])
|
53
|
+
s.add_development_dependency(%q<puts_debuggerer>.freeze, ["~> 0.8.1"])
|
68
54
|
s.add_development_dependency(%q<rake>.freeze, ["~> 10.4.2"])
|
69
55
|
s.add_development_dependency(%q<rack>.freeze, ["~> 1.6.5"])
|
70
56
|
s.add_development_dependency(%q<nokogiri>.freeze, ["~> 1.6.8.1"])
|
@@ -75,6 +61,7 @@ Gem::Specification.new do |s|
|
|
75
61
|
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
76
62
|
s.add_dependency(%q<rdoc>.freeze, ["~> 4.2.0"])
|
77
63
|
s.add_dependency(%q<rspec>.freeze, ["~> 3.2.0"])
|
64
|
+
s.add_dependency(%q<puts_debuggerer>.freeze, ["~> 0.8.1"])
|
78
65
|
s.add_dependency(%q<rake>.freeze, ["~> 10.4.2"])
|
79
66
|
s.add_dependency(%q<rack>.freeze, ["~> 1.6.5"])
|
80
67
|
s.add_dependency(%q<nokogiri>.freeze, ["~> 1.6.8.1"])
|
@@ -86,6 +73,7 @@ Gem::Specification.new do |s|
|
|
86
73
|
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
87
74
|
s.add_dependency(%q<rdoc>.freeze, ["~> 4.2.0"])
|
88
75
|
s.add_dependency(%q<rspec>.freeze, ["~> 3.2.0"])
|
76
|
+
s.add_dependency(%q<puts_debuggerer>.freeze, ["~> 0.8.1"])
|
89
77
|
s.add_dependency(%q<rake>.freeze, ["~> 10.4.2"])
|
90
78
|
s.add_dependency(%q<rack>.freeze, ["~> 1.6.5"])
|
91
79
|
s.add_dependency(%q<nokogiri>.freeze, ["~> 1.6.8.1"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super_module
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: method_source
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 3.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: puts_debuggerer
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.8.1
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.8.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,41 +157,26 @@ email:
|
|
143
157
|
executables: []
|
144
158
|
extensions: []
|
145
159
|
extra_rdoc_files:
|
160
|
+
- CHANGELOG.md
|
146
161
|
- LICENSE.txt
|
147
162
|
- README.md
|
148
163
|
files:
|
149
164
|
- ".document"
|
165
|
+
- CHANGELOG.md
|
150
166
|
- LICENSE.txt
|
151
167
|
- README.md
|
152
168
|
- SuperModule.jpg
|
153
169
|
- VERSION
|
154
|
-
- examples/reddit-readers/banister/foo.rb
|
155
|
-
- examples/reddit-readers/banister/world.rb
|
156
170
|
- lib/super_module.rb
|
157
171
|
- lib/super_module/v1.rb
|
158
172
|
- lib/super_module/v1/module_body_method_call_recorder.rb
|
159
173
|
- lib/super_module/v1/singleton_method_definition_store.rb
|
160
|
-
- ruby187.Gemfile
|
161
174
|
- spec/lib/super_module_spec.rb
|
162
|
-
- spec/support/bar.rb
|
163
|
-
- spec/support/baz.rb
|
164
|
-
- spec/support/fake_active_model.rb
|
165
|
-
- spec/support/foo.rb
|
166
175
|
- spec/support/v1.rb
|
167
176
|
- spec/support/v1/bar.rb
|
168
177
|
- spec/support/v1/baz.rb
|
169
178
|
- spec/support/v1/fake_active_model.rb
|
170
179
|
- spec/support/v1/foo.rb
|
171
|
-
- spec/support/v2.rb
|
172
|
-
- spec/support/v2/bar.rb
|
173
|
-
- spec/support/v2/baz.rb
|
174
|
-
- spec/support/v2/fake_active_model.rb
|
175
|
-
- spec/support/v2/foo.rb
|
176
|
-
- spec/support/v2_alt.rb
|
177
|
-
- spec/support/v2_alt/bar.rb
|
178
|
-
- spec/support/v2_alt/baz.rb
|
179
|
-
- spec/support/v2_alt/fake_active_model.rb
|
180
|
-
- spec/support/v2_alt/foo.rb
|
181
180
|
- super_module.gemspec
|
182
181
|
homepage: http://github.com/AndyObtiva/super_module
|
183
182
|
licenses:
|
@@ -198,8 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
197
|
- !ruby/object:Gem::Version
|
199
198
|
version: '0'
|
200
199
|
requirements: []
|
201
|
-
|
202
|
-
rubygems_version: 2.6.10
|
200
|
+
rubygems_version: 3.0.8
|
203
201
|
signing_key:
|
204
202
|
specification_version: 4
|
205
203
|
summary: SuperModule allows defining class methods and method invocations the same
|
data/ruby187.Gemfile
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
|
3
|
-
gem "method_source", "~> 0.8.2"
|
4
|
-
|
5
|
-
group :development do
|
6
|
-
gem "jeweler", "~> 2.0.1"
|
7
|
-
gem "rdoc", "~> 4.2.0"
|
8
|
-
gem "rspec", "~> 3.2.0"
|
9
|
-
|
10
|
-
# Ruby 1.8.7 requires some older gems
|
11
|
-
gem "mime-types", "~> 1.25.1"
|
12
|
-
gem "netrc", "~> 0.9.0"
|
13
|
-
gem "rest-client", "~> 1.6.0"
|
14
|
-
gem "nokogiri", "~> 1.5.0"
|
15
|
-
gem "highline", "~> 1.6.21"
|
16
|
-
gem "rake", "< 11.0"
|
17
|
-
end
|
18
|
-
|
data/spec/support/bar.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
module Bar
|
4
|
-
|
5
|
-
include SuperModule
|
6
|
-
include Foo
|
7
|
-
include Comparable
|
8
|
-
validates 'bar', {:presence => true}
|
9
|
-
attr_reader :created_at
|
10
|
-
|
11
|
-
# Defines singleton methods via class << self to provide as a test case for SuperModule
|
12
|
-
class << self
|
13
|
-
include Forwardable
|
14
|
-
|
15
|
-
def barrable
|
16
|
-
@barrable
|
17
|
-
end
|
18
|
-
|
19
|
-
def barrable=(value)
|
20
|
-
@barrable = value
|
21
|
-
end
|
22
|
-
|
23
|
-
def make_barrable
|
24
|
-
self.barrable = true
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
make_barrable
|
29
|
-
def_delegators :@bar, :length
|
30
|
-
|
31
|
-
def initialize
|
32
|
-
@bar = bar
|
33
|
-
@created_at = Time.now.to_f
|
34
|
-
end
|
35
|
-
|
36
|
-
def bar
|
37
|
-
'bar'
|
38
|
-
end
|
39
|
-
|
40
|
-
# Defines singleton method via a form of eval (class_eval) to provide as a test case for SuperModule
|
41
|
-
class_eval do
|
42
|
-
def self.bar
|
43
|
-
'self.bar'
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def <=>(other)
|
48
|
-
created_at <=> other.created_at
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
data/spec/support/baz.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
Baz = SuperModule.define do
|
2
|
-
include Bar
|
3
|
-
make_barrable
|
4
|
-
validates 'baz', {:presence => true}
|
5
|
-
attr_reader :baz_factor
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def baz
|
9
|
-
'self.baz'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def initialize(baz_factor)
|
14
|
-
super()
|
15
|
-
@baz_factor = baz_factor
|
16
|
-
end
|
17
|
-
|
18
|
-
def baz
|
19
|
-
'baz'
|
20
|
-
end
|
21
|
-
|
22
|
-
def <=>(other)
|
23
|
-
baz_factor <=> other.baz_factor
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# Uses CRLF for line breaks to provide a test case for having SuperModule work with it
|
2
|
-
# This is done to test support for Windows Ruby files, which usually use CRLF for line breaks
|
3
|
-
module FakeActiveModel
|
4
|
-
|
5
|
-
include SuperModule
|
6
|
-
|
7
|
-
def self.validates(attribute, options)
|
8
|
-
validations << [attribute, options]
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.validations
|
12
|
-
@validations ||= []
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
|
data/spec/support/foo.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
module Foo
|
2
|
-
|
3
|
-
include SuperModule
|
4
|
-
include FakeActiveModel
|
5
|
-
validates 'foo', {:presence => true}
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def foo_class_self
|
9
|
-
'self.foo_class_self'
|
10
|
-
end
|
11
|
-
|
12
|
-
def foo_class_self_define_method; 'self.foo_class_self_define_method'; end
|
13
|
-
|
14
|
-
def foo_private_declaration_follow_up
|
15
|
-
'self.foo_private_declaration_follow_up'
|
16
|
-
end
|
17
|
-
private :foo_private_declaration_follow_up
|
18
|
-
|
19
|
-
def foo_protected_declaration_follow_up
|
20
|
-
'self.foo_protected_declaration_follow_up'
|
21
|
-
end
|
22
|
-
protected :foo_protected_declaration_follow_up
|
23
|
-
|
24
|
-
private
|
25
|
-
def foo_private
|
26
|
-
'self.foo_private'
|
27
|
-
end
|
28
|
-
|
29
|
-
protected
|
30
|
-
def foo_protected
|
31
|
-
'self.foo_protected'
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.meh
|
37
|
-
self
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.foo
|
41
|
-
'self.foo'
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.foo_one_line; 'self.foo_one_line'; end
|
45
|
-
|
46
|
-
def self.foo_single_param(param1)
|
47
|
-
"self.foo(#{param1})"
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.foo_multi_params(param1, param2, param3)
|
51
|
-
"self.foo(#{param1},#{param2},#{param3})"
|
52
|
-
end
|
53
|
-
|
54
|
-
def self.foo_block(&formatter)
|
55
|
-
formatter.call('self.foo')
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.foo_single_param_block(param1, &formatter)
|
59
|
-
formatter.call('self.foo', param1)
|
60
|
-
end
|
61
|
-
|
62
|
-
def self.foo_multi_params_block(param1, param2, param3, &formatter)
|
63
|
-
formatter.call('self.foo', param1, param2, param3)
|
64
|
-
end
|
65
|
-
|
66
|
-
public
|
67
|
-
|
68
|
-
def self.empty
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.empty_one_empty_line
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.empty_with_comment
|
76
|
-
# no op
|
77
|
-
end
|
78
|
-
|
79
|
-
def self.empty_one_line_definition; end
|
80
|
-
|
81
|
-
def self.empty_one_line_definition_with_spaces; end
|
82
|
-
|
83
|
-
def foo
|
84
|
-
'foo'
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
|