Class: Jasmine::FilesList

Inherits:
Object
  • Object
show all
Defined in:
lib/jasmine/files_list.rb

Constant Summary collapse

DEFAULT_FILES =
[
  File.join(Jasmine::Core.path, "jasmine.js"),
  File.join(Jasmine::Core.path, "jasmine-html.js"),
  File.join(Jasmine::Core.path, "jasmine.css")
] + %w{jasmine-extensions intense headless_reporter_result jasmine.HeadlessConsoleReporter jsDump beautify-html}.collect { |name|
  Jasmine::Headless.root.join("vendor/assets/javascripts/#{name}.js").to_s
}
PLEASE_WAIT_IM_WORKING_TIME =
2

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ FilesList

Returns a new instance of FilesList.



36
37
38
39
40
41
42
43
# File 'lib/jasmine/files_list.rb', line 36

def initialize(options = {})
  @options = options
  @files = DEFAULT_FILES.dup
  @filtered_files = @files.dup
  @spec_outside_scope = false
  @spec_files = []
  use_config! if config?
end

Instance Attribute Details

#filesObject (readonly)

Returns the value of attribute files.



7
8
9
# File 'lib/jasmine/files_list.rb', line 7

def files
  @files
end

#filtered_filesObject (readonly)

Returns the value of attribute filtered_files.



7
8
9
# File 'lib/jasmine/files_list.rb', line 7

def filtered_files
  @filtered_files
end

#spec_filesObject (readonly)

Returns the value of attribute spec_files.



7
8
9
# File 'lib/jasmine/files_list.rb', line 7

def spec_files
  @spec_files
end

#spec_outside_scopeObject (readonly)

Returns the value of attribute spec_outside_scope.



7
8
9
# File 'lib/jasmine/files_list.rb', line 7

def spec_outside_scope
  @spec_outside_scope
end

Class Method Details

.all_spec_filesObject



19
20
21
22
23
# File 'lib/jasmine/files_list.rb', line 19

def all_spec_files
  @all_spec_files ||= Gem::Specification.map { |spec| spec.files.find_all { |file|
    file["vendor/assets/javascripts"]
  }.compact.collect { |file| File.join(spec.gem_dir, file) } }.flatten
end

.find_vendored_asset_paths(*names) ⇒ Object

Raises:

  • (StandardError)


10
11
12
13
14
15
16
17
# File 'lib/jasmine/files_list.rb', line 10

def find_vendored_asset_paths(*names)
  require 'rubygems'

  raise StandardError.new("A newer version of Rubygems is required to use vendored assets. Please upgrade.") if !Gem::Specification.respond_to?(:map)
  all_spec_files.find_all do |file|
    names.any? { |name| file["/#{name}.js"] }
  end
end

Instance Method Details

#files_to_htmlObject



53
54
55
# File 'lib/jasmine/files_list.rb', line 53

def files_to_html
  to_html(files)
end

#filtered?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/jasmine/files_list.rb', line 49

def filtered?
  files != filtered_files
end

#filtered_files_to_htmlObject



57
58
59
# File 'lib/jasmine/files_list.rb', line 57

def filtered_files_to_html
  to_html(filtered_files)
end

#has_spec_outside_scope?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/jasmine/files_list.rb', line 45

def has_spec_outside_scope?
  @spec_outside_scope
end

#spec_file_line_numbersObject



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/jasmine/files_list.rb', line 61

def spec_file_line_numbers
  @spec_file_line_numbers ||= Hash[@spec_files.collect { |file|
    if File.exist?(file)
      if !(lines = Jasmine::Headless::SpecFileAnalyzer.for(file)).empty?
        [ file, lines ]
      end
    else
      nil
    end
  }.compact]
end