class Mini::Guard::XFile
Attributes
associations[R]
last_modified[R]
path[R]
size[R]
Public Class Methods
new(path, code:, specs:, views:, factories:)
click to toggle source
# File lib/mini/guard.rb, line 55 def initialize(path, code:, specs:, views:, factories:) @path = path stat = File.stat(path) @size = stat.size @last_modified = stat.ctime @associations = find_associations(code: code, specs: specs, views: views, factories: factories) end
Public Instance Methods
eql?(xfile)
click to toggle source
# File lib/mini/guard.rb, line 65 def eql?(xfile); self.path == xfile.path && self.last_modified == xfile.last_modified; end
hash()
click to toggle source
# File lib/mini/guard.rb, line 64 def hash; "#{self.path}:#{self.last_modified}".hash; end
to_s()
click to toggle source
# File lib/mini/guard.rb, line 63 def to_s; "file: #{path} size: #{size} last modified: #{last_modified} associations: #{associations}"; end
Private Instance Methods
basename()
click to toggle source
# File lib/mini/guard.rb, line 73 def basename; File.basename(path, ".*"); end
find_associations(code:, specs:, views:, factories:)
click to toggle source
# File lib/mini/guard.rb, line 76 def find_associations(code:, specs:, views:, factories:) if is_view? specs.select{|e| e =~ /^spec\/controllers\/#{view_path}/} elsif is_code? if is_model? specs.select{|e| e.split('/')[-1] =~ /#{basename}/} else specs.select{|e| e =~ /#{basename}_spec/} end else if is_factory? specs.select{|e| e =~ /spec\/models\/(#{basename}|#{basename.singularize})_spec/} else [path] end end end
is_code?()
click to toggle source
# File lib/mini/guard.rb, line 70 def is_code?; path =~ /^app\//; end
is_factory?()
click to toggle source
# File lib/mini/guard.rb, line 69 def is_factory?; path =~ /^spec\/factories/; end
is_model?()
click to toggle source
# File lib/mini/guard.rb, line 71 def is_model?; path =~ /^app\/models/; end
is_view?()
click to toggle source
# File lib/mini/guard.rb, line 72 def is_view?; path =~ /^app\/views/; end
view_path()
click to toggle source
# File lib/mini/guard.rb, line 74 def view_path; path.split('/')[2..-2].join('/'); end