module Prototok::Utils::TestHelper
Public Instance Methods
option_combinations()
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 4 def option_combinations combinations = (versions + [nil]).map do |v| product_versions(v) end.flatten.each_slice(5).entries combinations.inject({}) do |aggr, options| aggr.merge!(itemize_options(prepare_options(options))) end end
Private Instance Methods
cipher_names(version = nil)
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 48 def cipher_names(version = nil) version ||= 1 item_names("lib/prototok/ciphers/V#{version}") + [nil] end
encoder_names()
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 44 def encoder_names item_names('lib/prototok/encoders') + [nil] end
encoder_options()
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 57 def encoder_options [:token, :payload].map do |mode| {encoding_mode: mode} end + [nil] end
formatter_names()
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 53 def formatter_names item_names('lib/prototok/formatters') + [nil] end
item_names(subpath)
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 63 def item_names(subpath) items_root = File.join(Paths.gem_root, subpath) item_files = Dir.entries(items_root).select { |i| i =~ /.+\.rb/ } || [] item_files.map { |i| File.basename(i, '.rb') } end
itemize_options(keyword_args = {})
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 36 def itemize_options(keyword_args = {}) defaulted = keyword_args.each_with_object({}) do |(key, val), obj| obj[key] = (val.nil? ? 'default' : val) end name = defaulted.to_a.map { |i| i.join(' is ') }.join(', ') { name => keyword_args.reject { |_k, v| v.nil? } } end
prepare_options(o = {})
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 15 def prepare_options(o = {}) options = { version: o[0], op: o[1], encoder: o[2], formatter: o[3], encoder_options: o[4] } if options[:encoder].to_s == 'protobuf' options[:encoder_options] ||= {} payload_proto_path = File.join( Prototok::Utils::Paths.gem_root, 'spec/prototok/encoders/protobuf/test_payload.prot' ) options[:encoder_options][:payload_file] = payload_proto_path end options end
product_versions(v)
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 28 def product_versions(v) [v] .product(cipher_names(v)) .product(encoder_names) .product(formatter_names) .product(encoder_options) end
versions()
click to toggle source
# File lib/prototok/utils/test_helper.rb, line 69 def versions item_names('lib/prototok/ciphers').map { |i| i.sub(/^v/, '') } end