mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Add support for any_args in DSL
This commit is contained in:
parent
4aaa8db5e2
commit
3d7655a5d1
9 changed files with 32 additions and 12 deletions
|
@ -437,5 +437,10 @@ module Spectator::DSL
|
|||
def no_args
|
||||
::Spectator::Arguments.none
|
||||
end
|
||||
|
||||
# Indicates any arguments can be used (no constraint).
|
||||
def any_args
|
||||
::Spectator::Arguments.any
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,6 +25,11 @@ module Spectator
|
|||
# Instance of empty arguments.
|
||||
class_getter none : AbstractArguments = capture
|
||||
|
||||
# Returns unconstrained arguments.
|
||||
def self.any : AbstractArguments?
|
||||
nil.as(AbstractArguments?)
|
||||
end
|
||||
|
||||
# Returns the positional argument at the specified index.
|
||||
def [](index : Int)
|
||||
@args[index]
|
||||
|
|
|
@ -12,7 +12,7 @@ module Spectator
|
|||
end
|
||||
|
||||
# Returns a new stub with constrained arguments.
|
||||
def with_constraint(constraint : AbstractArguments)
|
||||
def with_constraint(constraint : AbstractArguments?)
|
||||
self.class.new(method, @exception, constraint, location)
|
||||
end
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ module Spectator
|
|||
end
|
||||
|
||||
# Returns a new stub with constrained arguments.
|
||||
def with_constraint(constraint : AbstractArguments)
|
||||
def with_constraint(constraint : AbstractArguments?)
|
||||
self.class.new(method, @values, constraint, location)
|
||||
end
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ module Spectator
|
|||
end
|
||||
|
||||
# Returns a new stub with constrained arguments.
|
||||
def with_constraint(constraint : AbstractArguments)
|
||||
def with_constraint(constraint : AbstractArguments?)
|
||||
self.class.new(method, constraint, location)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@ module Spectator
|
|||
end
|
||||
|
||||
# Returns a new stub with constrained arguments.
|
||||
def with_constraint(constraint : AbstractArguments)
|
||||
def with_constraint(constraint : AbstractArguments?)
|
||||
self.class.new(method, @proc, constraint, location)
|
||||
end
|
||||
|
||||
|
|
|
@ -4,18 +4,18 @@ module Spectator
|
|||
# Mixin intended for `Stub` to return new, modified stubs.
|
||||
module StubModifiers
|
||||
# Returns a new stub of the same type with constrained arguments.
|
||||
abstract def with_constraint(constraint : AbstractArguments)
|
||||
abstract def with_constraint(constraint : AbstractArguments?)
|
||||
|
||||
# :ditto:
|
||||
@[AlwaysInline]
|
||||
def with(constraint : AbstractArguments?)
|
||||
with_constraint(constraint)
|
||||
end
|
||||
|
||||
# :ditto:
|
||||
def with(*args, **kwargs)
|
||||
constraint = Arguments.new(args, kwargs).as(AbstractArguments)
|
||||
self.with_constraint(constraint)
|
||||
end
|
||||
|
||||
# :ditto:
|
||||
@[AlwaysInline]
|
||||
def with(constraint : AbstractArguments)
|
||||
with_constraint(constraint)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,7 +12,7 @@ module Spectator
|
|||
end
|
||||
|
||||
# Returns a new stub with constrained arguments.
|
||||
def with_constraint(constraint : AbstractArguments)
|
||||
def with_constraint(constraint : AbstractArguments?)
|
||||
self.class.new(method, @value, constraint, location)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue