Sha256: bd6307a65d42e98b9bafe40d29a94d2527ade7f7b78e09d06024d7e3cd03dc95

Contents?: true

Size: 885 Bytes

Versions: 4

Compression:

Stored size: 885 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 (!#{namespace}) { #{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

4 entries across 4 versions & 1 rubygems

Version Path
js-test-driver-rails-0.2.6 lib/js_test_driver/html_fixture.rb
js-test-driver-rails-0.2.5 lib/js_test_driver/html_fixture.rb
js-test-driver-rails-0.2.1 lib/js_test_driver/html_fixture.rb
js-test-driver-rails-0.2.0 lib/js_test_driver/html_fixture.rb