Class: ScrewServer::SpecFile
- Inherits:
-
Object
- Object
- ScrewServer::SpecFile
- Defined in:
- lib/screw_server/spec_file.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #filename ⇒ Object
- #fixture_hash ⇒ Object
- #full_name ⇒ Object
-
#initialize(name) ⇒ SpecFile
constructor
A new instance of SpecFile.
- #last_changed ⇒ Object
- #last_dependency_change ⇒ Object
- #required_scripts ⇒ Object
- #used_files ⇒ Object
- #used_fixtures ⇒ Object
Constructor Details
#initialize(name) ⇒ SpecFile
Returns a new instance of SpecFile.
18 19 20 |
# File 'lib/screw_server/spec_file.rb', line 18 def initialize(name) @name = name end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
16 17 18 |
# File 'lib/screw_server/spec_file.rb', line 16 def name @name end |
Class Method Details
.all ⇒ Object
6 7 8 9 10 |
# File 'lib/screw_server/spec_file.rb', line 6 def self.all Dir.glob(File.join(Base.spec_base_dir, "*_spec.js")).sort.map do |file| SpecFile.new(file.gsub("#{Base.spec_base_dir}/", "").gsub("_spec.js", "")) end end |
.latest ⇒ Object
12 13 14 |
# File 'lib/screw_server/spec_file.rb', line 12 def self.latest SpecFile.all.sort{ |a, b| a.last_changed <=> b.last_changed }.last end |
.spec_helper_files ⇒ Object
63 64 65 66 |
# File 'lib/screw_server/spec_file.rb', line 63 def self.spec_helper_files Dir.glob(Base.spec_base_dir + "spec_helper.js") + Dir.glob(Base.spec_base_dir + "support/**/*.js") end |
Instance Method Details
#filename ⇒ Object
22 23 24 |
# File 'lib/screw_server/spec_file.rb', line 22 def filename File.join(Base.spec_base_dir, full_name) end |
#fixture_hash ⇒ Object
34 35 36 37 38 39 |
# File 'lib/screw_server/spec_file.rb', line 34 def fixture_hash used_fixtures.inject({}) do |result, fixture| fixture_content = File.read(fixture.filename) rescue "" result.merge(fixture.name => fixture_content) end end |
#full_name ⇒ Object
26 27 28 |
# File 'lib/screw_server/spec_file.rb', line 26 def full_name name + "_spec.js" end |
#last_changed ⇒ Object
52 53 54 |
# File 'lib/screw_server/spec_file.rb', line 52 def last_changed @last_changed ||= File.mtime(filename).to_i end |
#last_dependency_change ⇒ Object
46 47 48 49 50 |
# File 'lib/screw_server/spec_file.rb', line 46 def last_dependency_change used_files.map do |file| File.mtime(file).to_i rescue 0 end.max end |
#required_scripts ⇒ Object
41 42 43 44 |
# File 'lib/screw_server/spec_file.rb', line 41 def required_scripts SpecFile.spec_helper_files.map { |file| required_files_in(file) }.flatten + required_files_in(filename) end |
#used_files ⇒ Object
56 57 58 59 60 61 |
# File 'lib/screw_server/spec_file.rb', line 56 def used_files [filename] + SpecFile.spec_helper_files + used_fixtures.map(&:filename) + required_scripts.map {|script| File.join(Base.code_base_dir, script)} end |
#used_fixtures ⇒ Object
30 31 32 |
# File 'lib/screw_server/spec_file.rb', line 30 def used_fixtures scan_for_statement("use_fixture", filename).map {|name| FixtureFile.new(name) } end |