Sha256: 36f6ffdb1f3f276d848d7ebeec1fede0078a76457c4d93dd73f78d4036cbbbe0
Contents?: true
Size: 680 Bytes
Versions: 2
Compression:
Stored size: 680 Bytes
Contents
# frozen_string_literal: true module Nocode class OptionsTemplate attr_reader :object def initialize(object) @object = object freeze end def evaluate(values = {}) recursive_evaluate(object, values) end private def recursive_evaluate(expression, values) case expression when Array expression.map { |o| recursive_evaluate(o, values) } when Hash expression.to_h do |k, v| [recursive_evaluate(k, values), recursive_evaluate(v, values)] end when String Util::StringTemplate.new(expression).evaluate(values) else expression end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nocode-0.0.2 | lib/nocode/options_template.rb |
nocode-0.0.1 | lib/nocode/options_template.rb |