Module: IgniterLang::Assembler::Canonical
- Defined in:
- lib/igniter_lang/assembler.rb
Class Method Summary collapse
Class Method Details
.hash(value) ⇒ Object
48 49 50 |
# File 'lib/igniter_lang/assembler.rb', line 48 def hash(value) "sha256:#{Digest::SHA256.hexdigest(JSON.generate(normalize(value)))}" end |
.json(value) ⇒ Object
44 45 46 |
# File 'lib/igniter_lang/assembler.rb', line 44 def json(value) JSON.pretty_generate(normalize(value)) + "\n" end |
.normalize(value) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/igniter_lang/assembler.rb', line 29 def normalize(value) case value when Hash value.keys.sort_by(&:to_s).each_with_object({}) do |key, out| out[key.to_s] = normalize(value[key]) end when Array value.map { |item| normalize(item) } when Symbol value.to_s else value end end |
.short_hash(value) ⇒ Object
52 53 54 |
# File 'lib/igniter_lang/assembler.rb', line 52 def short_hash(value) hash(value).split(":").last[0, 16] end |