super_module 1.2.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|