mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Remove #_spectator_given_collection macro
It is no longer needed since @type resolution isn't delayed.
This commit is contained in:
parent
06743a181c
commit
3571d9463a
1 changed files with 26 additions and 26 deletions
|
@ -315,13 +315,33 @@ module Spectator::DSL
|
||||||
# Method for retrieving the entire collection.
|
# Method for retrieving the entire collection.
|
||||||
# This simplifies getting the element type.
|
# This simplifies getting the element type.
|
||||||
# The name is uniquely generated to prevent namespace collision.
|
# The name is uniquely generated to prevent namespace collision.
|
||||||
|
# This method should be called only once.
|
||||||
def %collection
|
def %collection
|
||||||
{{collection}}
|
{{collection}}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Additional logic for setting up the collection.
|
# Method for getting the element type.
|
||||||
# See the `#_spectator_given_collection` for nitty-gritty details.
|
def %type
|
||||||
_spectator_given_collection Collection%collection, %to_a, %collection
|
end
|
||||||
|
|
||||||
|
# Class for generating an array with the collection's contents.
|
||||||
|
# This has to be a class that includes the parent module.
|
||||||
|
# The collection could reference a helper method
|
||||||
|
# or anything else in the parent scope.
|
||||||
|
class Collection%group
|
||||||
|
# Include the parent module.
|
||||||
|
include {{@type.id}}
|
||||||
|
|
||||||
|
# Method that returns an array containing the collection.
|
||||||
|
# This method should be called only once.
|
||||||
|
# The framework stores the collection as an array for a couple of reasons.
|
||||||
|
# 1. The collection may not support multiple iterations.
|
||||||
|
# 2. The collection might contain random values.
|
||||||
|
# Iterating multiple times would generate inconsistent values at runtime.
|
||||||
|
def %to_a
|
||||||
|
%collection.to_a
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Module for the context.
|
# Module for the context.
|
||||||
# The module uses a generated unique name.
|
# The module uses a generated unique name.
|
||||||
|
@ -352,7 +372,7 @@ module Spectator::DSL
|
||||||
# Given groups require additional configuration.
|
# Given groups require additional configuration.
|
||||||
::Spectator::DSL::Builder.start_given_group(
|
::Spectator::DSL::Builder.start_given_group(
|
||||||
{{collection.stringify}}, # String representation of the collection.
|
{{collection.stringify}}, # String representation of the collection.
|
||||||
Collection%collection.new.%to_a, # All elements in the collection.
|
Collection%group.new.%to_a, # All elements in the collection.
|
||||||
{{name.stringify}}, # Name for the current element.
|
{{name.stringify}}, # Name for the current element.
|
||||||
:%group # Unique identifier for retrieving elements for the associated collection.
|
:%group # Unique identifier for retrieving elements for the associated collection.
|
||||||
)
|
)
|
||||||
|
@ -456,26 +476,6 @@ module Spectator::DSL
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# :nodoc:
|
|
||||||
# Don't use this outside of Spectator DSL.
|
|
||||||
# This macro creates a class that is used to return the given collection as an array.
|
|
||||||
# The collection could reference a helper method or method local to the context.
|
|
||||||
# The class that the collection is defined in must have access to the context.
|
|
||||||
# Since the names are generated, and macros can't return information,
|
|
||||||
# the names must be created outside of the macro and passed in.
|
|
||||||
private macro _spectator_given_collection(class_name, to_a_method_name, collection_method_name)
|
|
||||||
# Class for generating an array with the collection's contents.
|
|
||||||
class {{class_name.id}}
|
|
||||||
# Include the parent module.
|
|
||||||
include {{@type.id}}
|
|
||||||
|
|
||||||
# Method that returns an array from the collection.
|
|
||||||
def {{to_a_method_name.id}}
|
|
||||||
{{collection_method_name.id}}.to_a
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private macro _spectator_example_wrapper(class_name, run_method_name, &block)
|
private macro _spectator_example_wrapper(class_name, run_method_name, &block)
|
||||||
class {{class_name.id}}
|
class {{class_name.id}}
|
||||||
include ::Spectator::DSL::ExampleDSL
|
include ::Spectator::DSL::ExampleDSL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue