├── .github └── workflows │ ├── deploy-docs.yml │ └── ruby.yml ├── .gitignore ├── .rspec ├── .rubocop.yml ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── bench ├── compare_parametric_schema.rb ├── compare_parametric_struct.rb ├── parametric_schema.rb └── plumb_hash.rb ├── bin ├── console └── setup ├── examples ├── command_objects.rb ├── concurrent_downloads.rb ├── csv_stream.rb ├── env_config.rb ├── event_registry.rb ├── programmers.csv └── weekdays.rb ├── lib ├── plumb.rb └── plumb │ ├── and.rb │ ├── any_class.rb │ ├── array_class.rb │ ├── attribute_value_match.rb │ ├── attributes.rb │ ├── build.rb │ ├── composable.rb │ ├── decorator.rb │ ├── deferred.rb │ ├── hash_class.rb │ ├── hash_map.rb │ ├── interface_class.rb │ ├── json_schema_visitor.rb │ ├── key.rb │ ├── match_class.rb │ ├── metadata.rb │ ├── metadata_visitor.rb │ ├── not.rb │ ├── or.rb │ ├── pipeline.rb │ ├── policies.rb │ ├── policy.rb │ ├── result.rb │ ├── schema.rb │ ├── static_class.rb │ ├── step.rb │ ├── stream_class.rb │ ├── tagged_hash.rb │ ├── transform.rb │ ├── tuple_class.rb │ ├── type_registry.rb │ ├── types.rb │ ├── value_class.rb │ ├── version.rb │ └── visitor_handlers.rb ├── plumb.gemspec └── spec ├── data_spec.rb ├── json_schema_visitor_spec.rb ├── pipeline_spec.rb ├── plumb_spec.rb ├── policies_spec.rb ├── schema_spec.rb ├── spec_helper.rb ├── stream_spec.rb ├── support └── result_helpers.rb ├── type_registry_spec.rb ├── types.rb └── types_spec.rb /.github/workflows/deploy-docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/.github/workflows/deploy-docs.yml -------------------------------------------------------------------------------- /.github/workflows/ruby.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/.github/workflows/ruby.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/.gitignore -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --format documentation 2 | --color 3 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/Rakefile -------------------------------------------------------------------------------- /bench/compare_parametric_schema.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bench/compare_parametric_schema.rb -------------------------------------------------------------------------------- /bench/compare_parametric_struct.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bench/compare_parametric_struct.rb -------------------------------------------------------------------------------- /bench/parametric_schema.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bench/parametric_schema.rb -------------------------------------------------------------------------------- /bench/plumb_hash.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bench/plumb_hash.rb -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bin/console -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/bin/setup -------------------------------------------------------------------------------- /examples/command_objects.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/command_objects.rb -------------------------------------------------------------------------------- /examples/concurrent_downloads.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/concurrent_downloads.rb -------------------------------------------------------------------------------- /examples/csv_stream.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/csv_stream.rb -------------------------------------------------------------------------------- /examples/env_config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/env_config.rb -------------------------------------------------------------------------------- /examples/event_registry.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/event_registry.rb -------------------------------------------------------------------------------- /examples/programmers.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/programmers.csv -------------------------------------------------------------------------------- /examples/weekdays.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/examples/weekdays.rb -------------------------------------------------------------------------------- /lib/plumb.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb.rb -------------------------------------------------------------------------------- /lib/plumb/and.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/and.rb -------------------------------------------------------------------------------- /lib/plumb/any_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/any_class.rb -------------------------------------------------------------------------------- /lib/plumb/array_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/array_class.rb -------------------------------------------------------------------------------- /lib/plumb/attribute_value_match.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/attribute_value_match.rb -------------------------------------------------------------------------------- /lib/plumb/attributes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/attributes.rb -------------------------------------------------------------------------------- /lib/plumb/build.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/build.rb -------------------------------------------------------------------------------- /lib/plumb/composable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/composable.rb -------------------------------------------------------------------------------- /lib/plumb/decorator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/decorator.rb -------------------------------------------------------------------------------- /lib/plumb/deferred.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/deferred.rb -------------------------------------------------------------------------------- /lib/plumb/hash_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/hash_class.rb -------------------------------------------------------------------------------- /lib/plumb/hash_map.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/hash_map.rb -------------------------------------------------------------------------------- /lib/plumb/interface_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/interface_class.rb -------------------------------------------------------------------------------- /lib/plumb/json_schema_visitor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/json_schema_visitor.rb -------------------------------------------------------------------------------- /lib/plumb/key.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/key.rb -------------------------------------------------------------------------------- /lib/plumb/match_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/match_class.rb -------------------------------------------------------------------------------- /lib/plumb/metadata.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/metadata.rb -------------------------------------------------------------------------------- /lib/plumb/metadata_visitor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/metadata_visitor.rb -------------------------------------------------------------------------------- /lib/plumb/not.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/not.rb -------------------------------------------------------------------------------- /lib/plumb/or.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/or.rb -------------------------------------------------------------------------------- /lib/plumb/pipeline.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/pipeline.rb -------------------------------------------------------------------------------- /lib/plumb/policies.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/policies.rb -------------------------------------------------------------------------------- /lib/plumb/policy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/policy.rb -------------------------------------------------------------------------------- /lib/plumb/result.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/result.rb -------------------------------------------------------------------------------- /lib/plumb/schema.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/schema.rb -------------------------------------------------------------------------------- /lib/plumb/static_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/static_class.rb -------------------------------------------------------------------------------- /lib/plumb/step.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/step.rb -------------------------------------------------------------------------------- /lib/plumb/stream_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/stream_class.rb -------------------------------------------------------------------------------- /lib/plumb/tagged_hash.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/tagged_hash.rb -------------------------------------------------------------------------------- /lib/plumb/transform.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/transform.rb -------------------------------------------------------------------------------- /lib/plumb/tuple_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/tuple_class.rb -------------------------------------------------------------------------------- /lib/plumb/type_registry.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/type_registry.rb -------------------------------------------------------------------------------- /lib/plumb/types.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/types.rb -------------------------------------------------------------------------------- /lib/plumb/value_class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/value_class.rb -------------------------------------------------------------------------------- /lib/plumb/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Plumb 4 | VERSION = '0.0.17' 5 | end 6 | -------------------------------------------------------------------------------- /lib/plumb/visitor_handlers.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/lib/plumb/visitor_handlers.rb -------------------------------------------------------------------------------- /plumb.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/plumb.gemspec -------------------------------------------------------------------------------- /spec/data_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/data_spec.rb -------------------------------------------------------------------------------- /spec/json_schema_visitor_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/json_schema_visitor_spec.rb -------------------------------------------------------------------------------- /spec/pipeline_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/pipeline_spec.rb -------------------------------------------------------------------------------- /spec/plumb_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/plumb_spec.rb -------------------------------------------------------------------------------- /spec/policies_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/policies_spec.rb -------------------------------------------------------------------------------- /spec/schema_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/schema_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/stream_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/stream_spec.rb -------------------------------------------------------------------------------- /spec/support/result_helpers.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/support/result_helpers.rb -------------------------------------------------------------------------------- /spec/type_registry_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/type_registry_spec.rb -------------------------------------------------------------------------------- /spec/types.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/types.rb -------------------------------------------------------------------------------- /spec/types_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ismasan/plumb/HEAD/spec/types_spec.rb --------------------------------------------------------------------------------