Sha256: de4bfdcfe00a83912564bffffd5b7155183c845fa6a4200931a47514ba98603e

Contents?: true

Size: 1.53 KB

Versions: 234

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

require 'active_support/hash_with_indifferent_access'
require 'eac_ruby_utils/yaml'

RSpec.describe ::EacRubyUtils::Yaml do
  let(:unpermitted_class) do
    Class.new do
      def initialize(value)
        @value = value
      end

      def to_s
        @value.to_s
      end
    end
  end

  let(:arrayliable_class) do
    Class.new do
      def initialize(value)
        @value = value
      end

      def to_a
        [@value]
      end
    end
  end

  let(:source) do
    {
      a: 'a', b: :b, c: false, d: true, e: nil,
      f: [
        'f',
        {
          g: 'g',
          h: ::ActiveSupport::HashWithIndifferentAccess.new(
            'i' => ['i', unpermitted_class.new('j')],
            k: arrayliable_class.new('k')
          )
        }
      ]
    }
  end

  let(:target) do
    {
      a: 'a', b: :b, c: false, d: true, e: nil,
      f: ['f', { g: 'g', h: { i: %w[i j], k: ['k'] } }]
    }
  end

  describe '#dump' do
    it { expect(described_class.load(described_class.dump(source))).to eq(target) }
  end

  describe '#sanitize' do
    it { expect(described_class.sanitize(target)).to eq(target) }
  end

  describe '#yaml' do
    {
      ['text'] => false,
      'text' => false,
      "--- Text\n\n" => true,
      "---\n" + ":index: 0\n" + ":codec_name: h264\n" + ":codec_type: video\n" => true,
      '--- - \n bla bla bla' => false
    }.each do |source, result|
      it "return #{result} to source \"#{source}\"" do
        expect(described_class.yaml?(source)).to eq(result)
      end
    end
  end
end

Version data entries

234 entries across 234 versions & 3 rubygems

Version Path
eac_tools-0.69.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.68.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.67.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.67.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.66.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.65.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.65.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.64.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.63.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.62.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.62.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.61.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.61.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.60.3 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.60.2 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.60.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.60.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.59.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.58.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb
eac_tools-0.57.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb