Class: Jasmine::Headless::FilesList
- Inherits:
-
Object
- Object
- Jasmine::Headless::FilesList
show all
- Includes:
- FileChecker
- Defined in:
- lib/jasmine/headless/files_list.rb
Constant Summary
collapse
- PLEASE_WAIT_IM_WORKING_TIME =
2
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#alert_bad_format, #alert_if_bad_format?, #bad_format?
Constructor Details
#initialize(options = {}) ⇒ FilesList
Returns a new instance of FilesList.
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/jasmine/headless/files_list.rb', line 70
def initialize(options = {})
@options = options
Kernel.srand(@options[:seed]) if @options[:seed]
@required_files = UniqueAssetList.new
@potential_files_to_filter = []
self.class.default_files.each do |file|
begin
@required_files << sprockets_environment.find_asset(file, :bundle => false)
rescue InvalidUniqueAsset => e
raise StandardError.new("Not an asset: #{file}")
end
end
use_config! if config?
end
|
Instance Attribute Details
#potential_files_to_filter ⇒ Object
Returns the value of attribute potential_files_to_filter.
68
69
70
|
# File 'lib/jasmine/headless/files_list.rb', line 68
def potential_files_to_filter
@potential_files_to_filter
end
|
#required_files ⇒ Object
Returns the value of attribute required_files.
68
69
70
|
# File 'lib/jasmine/headless/files_list.rb', line 68
def required_files
@required_files
end
|
Class Method Details
.default_files ⇒ Object
55
56
57
|
# File 'lib/jasmine/headless/files_list.rb', line 55
def default_files
%w{jasmine.js jasmine-html jasmine.css jasmine-extensions intense headless_reporter_result jasmine.HeadlessConsoleReporter jsDump beautify-html}
end
|
.extension_filter ⇒ Object
59
60
61
62
63
|
# File 'lib/jasmine/headless/files_list.rb', line 59
def extension_filter
extensions = (%w{.js .css} + Sprockets.engine_extensions)
%r{(#{extensions.join('|')})$}
end
|
.vendor_asset_paths ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/jasmine/headless/files_list.rb', line 13
def vendor_asset_paths
return @vendor_asset_paths if @vendor_asset_paths
require 'rubygems'
raise StandardError.new("A newer version of Rubygems is required to use vendored assets. Please upgrade.") if !Gem::Specification.respond_to?(:each)
@vendor_asset_paths = []
Gem::Specification.each do |spec|
path = File.join(spec.gem_dir, 'vendor/assets/javascripts')
@vendor_asset_paths << path if File.directory?(path) && !@vendor_asset_paths.include?(path)
end
@vendor_asset_paths
end
|
Instance Method Details
#files ⇒ Object
89
90
91
|
# File 'lib/jasmine/headless/files_list.rb', line 89
def files
required_files.flatten.collect { |asset| asset.pathname.to_s }.uniq
end
|
#files_to_html ⇒ Object
144
145
146
|
# File 'lib/jasmine/headless/files_list.rb', line 144
def files_to_html
to_html(files)
end
|
#filtered? ⇒ Boolean
140
141
142
|
# File 'lib/jasmine/headless/files_list.rb', line 140
def filtered?
files != filtered_files
end
|
#filtered_files ⇒ Object
99
100
101
|
# File 'lib/jasmine/headless/files_list.rb', line 99
def filtered_files
filter_for_requested_specs(files)
end
|
#filtered_files_to_html ⇒ Object
148
149
150
|
# File 'lib/jasmine/headless/files_list.rb', line 148
def filtered_files_to_html
to_html(filtered_files)
end
|
#has_spec_outside_scope? ⇒ Boolean
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/jasmine/headless/files_list.rb', line 125
def has_spec_outside_scope?
if is_outside_scope = !spec_filter.empty?
is_outside_scope = spec_dir.any? do |dir|
spec_file_searches.any? do |search|
!spec_files.any? do |file|
target = File.join(dir, search)
File.fnmatch?(target, file) || File.fnmatch?(target.gsub(%{^**/}, ''), file)
end
end
end
end
is_outside_scope
end
|
#search_paths ⇒ Object
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/jasmine/headless/files_list.rb', line 103
def search_paths
return @search_paths if @search_paths
@search_paths = [ Jasmine::Core.path, Jasmine::Headless.root.join('vendor/assets/javascripts').to_s ]
@search_paths += self.class.vendor_asset_paths
@search_paths += src_dir.collect { |dir| File.expand_path(dir) }
@search_paths += asset_paths.collect { |dir| File.expand_path(dir) }
@search_paths += spec_dir.collect { |dir| File.expand_path(dir) }
@search_paths
end
|
#spec_file_line_numbers ⇒ Object
152
153
154
155
156
157
158
159
160
161
162
|
# File 'lib/jasmine/headless/files_list.rb', line 152
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
|
#spec_files ⇒ Object
93
94
95
96
97
|
# File 'lib/jasmine/headless/files_list.rb', line 93
def spec_files
filter_for_requested_specs(
files.find_all { |file| spec_dir.any? { |dir| file[dir] } }
)
end
|
#sprockets_environment ⇒ Object
115
116
117
118
119
120
121
122
123
|
# File 'lib/jasmine/headless/files_list.rb', line 115
def sprockets_environment
return @sprockets_environment if @sprockets_environment
@sprockets_environment = Sprockets::Environment.new
search_paths.each { |path| @sprockets_environment.append_path(path) }
@sprockets_environment.unregister_postprocessor('application/javascript', Sprockets::SafetyColons)
@sprockets_environment
end
|