Sha256: 0fe537588b46ef4a203341566adc40bea90cae4bae17c20eb723173c149040cc

Contents?: true

Size: 909 Bytes

Versions: 1

Compression:

Stored size: 909 Bytes

Contents

module JsTestDriver
  # This is a class that given a directory name, puts all its *.html children
  # into a javascript file, so that they can later be used in the tests
  class HtmlFixture

    attr_reader :name, :namespace

    def initialize(directory_name, name = nil, namespace = nil)
      @name = name || "all"
      @namespace = namespace || "htmlFixtures"
      @data = {}

      load_data(directory_name)
    end

    def to_h
      @data
    end

    def to_s
      <<JS
if (typeof(#{namespace}) !== 'undefined') { #{namespace} = {}; }
#{namespace}.#{name} = #{self.to_h.to_json};
JS
    end

    private

    def load_data(directory_name)
      full_path = File.expand_path(directory_name)
      files = Dir["#{full_path}/**/*.html"]

      files.each do |file|
        name = file.gsub(/^#{full_path}\//, '').gsub(/\.html$/, '')
        @data[name] = File.read(file)
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
js-test-driver-rails-0.2.7 lib/js_test_driver/html_fixture.rb