Module: Phronomy::Agent::Immutable
- Defined in:
- lib/phronomy/agent/immutable.rb
Class Method Summary collapse
Class Method Details
.copy(value) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/phronomy/agent/immutable.rb', line 8 def copy(value) case value when Hash value.each_with_object({}) do |(key, child), result| result[copy(key)] = copy(child) end.freeze when Array value.map { |child| copy(child) }.freeze when String value.dup.freeze else value end end |
.validate_canonical_json!(value, label: "value") ⇒ Object
23 24 25 26 27 28 |
# File 'lib/phronomy/agent/immutable.rb', line 23 def validate_canonical_json!(value, label: "value") Phronomy::CanonicalJSON.dump(value) true rescue ArgumentError => error raise ArgumentError, "#{label} is not canonical JSON compatible: #{error.}" end |