Object Selector
Quickstart
Regex Rule List Provider
> Struct.new("MyFirstObject")
> Struct.new("MySecondObject")
> selector = ObjectSelector.new(
ObjectSelector::Provider::RegexRuleList.new({
rules: [
{
regex: /\D/,
object: Struct::MyFirstObject.new
}, {
regex: /\d/,
object: Struct::MySecondObject.new
}
]
})
)
> selector.select("not a digit")
Struct::MyFirstObject
> selector.select(123)
Struct::MySecondObject
First needle found in sorted haystack provider
> Struct.new("MyFirstObject")
> Struct.new("MySecondObject")
> selector = ObjectSelector.new(
ObjectSelector::Provider::FirstNeedleFoundInSortedHaystack.new({
rules: [
{
needle: 'a',
object: Struct::MyFirstObject.new
},
{
needle: 'b',
object: Struct::MySecondObject.new
}
]
})
)
> selector.select(['b', 'a'])
Struct::MyFirstObject
> selector.select(['c', 'b'])
Struct::MySecondObject
Testing
Local
$ bundle exec rspec
CI
docker-compose --file docker-compose.yml --project-name object_selector up --abort-on-container-exit --remove-orphans --build --force-recreate
EXIT_CODE=$(docker ps -a -f "name=objectselector_tests" -q | xargs docker inspect -f "{{ .State.ExitCode }}")
docker-compose --file docker-compose.yml --project-name object_selector down --rmi local
exit $EXIT_CODE