Sha256: a83284a96722f795d4c70e50ba3b8cd223825713adb52f8bc1661b0d391f62d4
Contents?: true
Size: 1.93 KB
Versions: 2
Compression:
Stored size: 1.93 KB
Contents
require 'spec_helper' module Figtree describe Transformer do context "can do type conversion" do let(:int_tree) do Parser.new.parse("[common]\nbasic_size_limit = 26214400\n") end let(:arr_tree) do Parser.new.parse("[http]\nparams = array,of,values\n") end let(:bool_tree) do Parser.new.parse("[ftp]\nenabled = no\n") end let(:string_tree) do Parser.new.parse_with_debug("[database]\nserver = is here\n") Parser.new.parse("[database]\nserver = is here\n") end let(:ip_tree) do Parser.new.parse("[database]\nserver = 192.0.2.62") end it 'can apply an int type conversion' do expect(Transformer.new.apply(int_tree)).to eq( [ { common: Subgroup.new({basic_size_limit: 26214400}) } ] ) end it 'can apply an array type conversion' do expect(Transformer.new.apply(arr_tree)).to eq( [ { http: Subgroup.new(params: ["array", "of", "values"]) } ] ) end it 'can apply a bool type conversion' do expect(Transformer.new.apply(bool_tree)).to eq( [ { ftp: Subgroup.new(enabled: false) } ] ) end it 'it can apply a string type conversion' do expect(Transformer.new.apply(string_tree)).to eq( [ { database: Subgroup.new(server: "is here") } ] ) end it 'it can apply an ip address type conversion' do expect(Transformer.new.apply(ip_tree)).to eq( [ { database: Subgroup.new(server: IPAddr.new("192.0.2.62")) } ] ) end end context "overrides by angle brackets" do let(:override_tree) do Parser.new.parse("[http]\npath = /srv/\npath<production> = /srv/var/tmp/\n") end it 'can apply an override' do expect(Transformer.new.apply(override_tree, override: :production)).to eq( [ { http: Subgroup.new(path: Pathname.new('/srv/var/tmp/')) } ] ) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
figtree-2.0.1 | spec/figtree/transformer_spec.rb |
figtree-2.0.0 | spec/figtree/transformer_spec.rb |