module FSSM::Support

Public Class Methods

backend() click to toggle source
# File lib/fssm/support.rb, line 24
def backend
  @@backend ||= usable_backend
end
jruby?() click to toggle source
# File lib/fssm/support.rb, line 28
def jruby?
  defined?(JRUBY_VERSION)
end
linux?() click to toggle source
# File lib/fssm/support.rb, line 40
def linux?
  RbConfig::CONFIG['target_os'] =~ /linux/i
end
lion?() click to toggle source
# File lib/fssm/support.rb, line 36
def lion?
  RbConfig::CONFIG['target_os'] =~ /darwin11/i
end
mac?() click to toggle source
# File lib/fssm/support.rb, line 32
def mac?
  RbConfig::CONFIG['target_os'] =~ /darwin/i
end
optimal_backend_dependency() click to toggle source
# File lib/fssm/support.rb, line 16
def optimal_backend_dependency
  return case
    when mac?     then  ['rb-fsevent', '>= 0.4.3.1']
    when linux?   then  ['rb-inotify', '>= 0.8.8']
    else                [nil, nil]
  end
end
rb_fsevent?() click to toggle source
# File lib/fssm/support.rb, line 44
def rb_fsevent?
  begin
    require 'rb-fsevent'
    defined?(FSEvent::VERSION) ? FSEvent::VERSION.to_f >= 0.4 : false
  rescue LoadError
    false
  end
end
rb_inotify?() click to toggle source
# File lib/fssm/support.rb, line 53
def rb_inotify?
  begin
    require 'rb-inotify'
    if defined?(INotify::VERSION)
      version = INotify::VERSION
      version[0] > 0 || version[1] >= 6
    end
  rescue LoadError
    false
  end
end
usable_backend() click to toggle source
# File lib/fssm/support.rb, line 5
def usable_backend
  case
    when mac? && rb_fsevent?
      'RBFSEvent'
    when linux? && rb_inotify?
      'Inotify'
    else
      'Polling'
  end
end
use_block(context, block) click to toggle source
# File lib/fssm/support.rb, line 65
def use_block(context, block)
  return if block.nil?
  if block.arity == 1
    block.call(context)
  else
    context.instance_eval(&block)
  end
end