evt-mimic 2.3.1.2 → 2.3.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 804286666605f11fb447e9fa2ea110c801ccd38b9783f66babb9ff2313b621fd
4
- data.tar.gz: af3bf05068964ba6f92003cacb50cc5af5bdf95ef79f2ab341f8cbc6166021a6
3
+ metadata.gz: 0add0e7fe81fc75241500f37747288fb82a6500cabb367a41a35b90122e773ea
4
+ data.tar.gz: 8c5c2b216a959dad72f0fb8735b196de4d6d1f4d7fe4143d363e2aa875486ad7
5
5
  SHA512:
6
- metadata.gz: 44a8b96d97b35286b6ab61e81994a3671755eb29bec4de282d893376382bbe9e647f54801328d07278754d359a668de47d06d3f18c8c6670772352f34d264192
7
- data.tar.gz: 561720ca5063614e4037f7eb2422298b9876eb38953c0e2fbd9b5c672393af777dad55c167db41bde28af319d2f1e954032c01b4091881fef66304171069da6b
6
+ metadata.gz: 8c41ee2a70a26f902c7706c3e6739f0aa13562e850f6aef3e3b62a260a0a719aec4c0f95eae2055734ff7109f617d31483c252aaf18e788bc62bf363a554b754
7
+ data.tar.gz: d825ea96f99d897b99d3c26051e5fedac35e977308ac4a3688a404cf5bd13d483acd8de8ab9e056c0fbdb4171edaf28ea890645d691805a7b3da4b0f5a42b40b
data/lib/mimic/build.rb CHANGED
@@ -3,7 +3,7 @@ module Mimic
3
3
  def self.call(subject_class, record: nil, &blk)
4
4
  record ||= false
5
5
 
6
- cls = Class.build(subject_class, &blk)
6
+ cls = Class.build(subject_class)
7
7
 
8
8
  subject_methods = Mimic.subject_methods(cls)
9
9
 
@@ -19,6 +19,10 @@ module Mimic
19
19
 
20
20
  DefineMethods.(cls, subject_methods, record: record)
21
21
 
22
+ if not blk.nil?
23
+ cls.class_exec(&blk)
24
+ end
25
+
22
26
  cls
23
27
  end
24
28
  end
@@ -0,0 +1,12 @@
1
+ module Mimic
2
+ module Controls
3
+ module Subject
4
+ module DelegatedParameters
5
+ class Example
6
+ def some_method(...)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -8,6 +8,7 @@ require 'mimic/controls/subject/block_parameter'
8
8
  require 'mimic/controls/subject/multiple_assignment_parameter'
9
9
  require 'mimic/controls/subject/multiple_assignment_named_parameter'
10
10
  require 'mimic/controls/subject/mixed_parameters'
11
+ require 'mimic/controls/subject/delegated_parameters'
11
12
  require 'mimic/controls/invocation'
12
13
  require 'mimic/controls/recorder'
13
14
  require 'mimic/controls/mimic'
@@ -55,11 +55,23 @@ module Mimic
55
55
  when :keyreq
56
56
  return "#{name}:"
57
57
  when :rest
58
- return "*#{name}"
58
+ if name == :*
59
+ return "*"
60
+ else
61
+ return "*#{name}"
62
+ end
59
63
  when :keyrest
60
- return "**#{name}"
64
+ if name == :**
65
+ return "**"
66
+ else
67
+ return "**#{name}"
68
+ end
61
69
  when :block
62
- return "&#{name}"
70
+ if name == :&
71
+ return "&"
72
+ else
73
+ return "&#{name}"
74
+ end
63
75
  else
64
76
  raise Error, "Unknown parameter type (Name: #{name.inspect}, Type: #{type.inspect})"
65
77
  end
@@ -22,6 +22,30 @@ module Mimic
22
22
 
23
23
  compare_parameters == control_parameters
24
24
  end
25
+
26
+ def self.types_equal?(compare, control, method_name)
27
+ control_method = control.method(method_name)
28
+
29
+ control_parameters = control_method.parameters
30
+ control_parameter_types = control_parameters.map(&:first)
31
+
32
+ compare_method = compare.method(method_name)
33
+
34
+ compare_parameters = compare_method.parameters
35
+ compare_parameter_types = compare_parameters.map(&:first)
36
+
37
+ if ENV['VERBOSE'] == 'on'
38
+ puts "Control: #{control.class}"
39
+ pp control_parameter_types
40
+
41
+ puts
42
+
43
+ puts "Compare: #{compare.class}"
44
+ pp compare_parameter_types
45
+ end
46
+
47
+ compare_parameter_types == control_parameter_types
48
+ end
25
49
  end
26
50
  end
27
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-mimic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1.2
4
+ version: 2.3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-02 00:00:00.000000000 Z
11
+ date: 2022-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-invocation
@@ -53,6 +53,7 @@ files:
53
53
  - lib/mimic/controls/recorder.rb
54
54
  - lib/mimic/controls/subject.rb
55
55
  - lib/mimic/controls/subject/block_parameter.rb
56
+ - lib/mimic/controls/subject/delegated_parameters.rb
56
57
  - lib/mimic/controls/subject/keyword_parameters.rb
57
58
  - lib/mimic/controls/subject/mixed_parameters.rb
58
59
  - lib/mimic/controls/subject/multiple_assignment_named_parameter.rb
@@ -74,7 +75,7 @@ homepage: https://github.com/eventide-project/mimic
74
75
  licenses:
75
76
  - MIT
76
77
  metadata: {}
77
- post_install_message:
78
+ post_install_message:
78
79
  rdoc_options: []
79
80
  require_paths:
80
81
  - lib
@@ -89,8 +90,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
90
  - !ruby/object:Gem::Version
90
91
  version: '0'
91
92
  requirements: []
92
- rubygems_version: 3.1.2
93
- signing_key:
93
+ rubygems_version: 3.3.3
94
+ signing_key:
94
95
  specification_version: 4
95
96
  summary: Copy a class's instance interface to an anonymous, new object that acts as
96
97
  a substitutable mimic for the class