Module: FSSM::Support
- Defined in:
- lib/fssm/support.rb
Class Method Summary collapse
- .backend ⇒ Object
- .jruby? ⇒ Boolean
- .linux? ⇒ Boolean
- .lion? ⇒ Boolean
- .mac? ⇒ Boolean
- .optimal_backend_dependency ⇒ Object
- .rb_fsevent? ⇒ Boolean
- .rb_inotify? ⇒ Boolean
- .usable_backend ⇒ Object
- .use_block(context, block) ⇒ Object
Class Method Details
.backend ⇒ Object
24 25 26 |
# File 'lib/fssm/support.rb', line 24 def backend @@backend ||= usable_backend end |
.jruby? ⇒ Boolean
28 29 30 |
# File 'lib/fssm/support.rb', line 28 def jruby? defined?(JRUBY_VERSION) end |
.linux? ⇒ Boolean
40 41 42 |
# File 'lib/fssm/support.rb', line 40 def linux? RbConfig::CONFIG['target_os'] =~ /linux/i end |
.lion? ⇒ Boolean
36 37 38 |
# File 'lib/fssm/support.rb', line 36 def lion? RbConfig::CONFIG['target_os'] =~ /darwin11/i end |
.mac? ⇒ Boolean
32 33 34 |
# File 'lib/fssm/support.rb', line 32 def mac? RbConfig::CONFIG['target_os'] =~ /darwin/i end |
.optimal_backend_dependency ⇒ Object
16 17 18 19 20 21 22 |
# 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? ⇒ Boolean
44 45 46 47 48 49 50 51 |
# 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? ⇒ Boolean
53 54 55 56 57 58 59 60 61 62 63 |
# 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 ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# 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) ⇒ Object
65 66 67 68 69 70 71 72 |
# 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 |