No commit activity in last 3 years
No release in over 3 years
beholder
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0.7.0
>= 0
>= 0

Runtime

 Project Readme

Beholder

An ancient beholder that watches your treasure, and deals with thiefs.

What does it do?

Think autotest, but powered by fseventd.

Requirements

  • OSX 10.5 or higher
  • RubyCocoa
  • fsevents gem

The default treasure map:

map_for(:default_dungeon) do |wizard|
  
  wizard.keep_a_watchful_eye_for 'app', 'config', 'lib', 'examples'
 
  wizard.prepare_spell_for /\/app\/(.*)\.rb/ do |spell_component|
    ["examples/#{spell_component[1]}.rb"]
  end
  
  wizard.prepare_spell_for /\/lib\/(.*)\.rb/ do |spell_component|
    ["examples/lib/#{spell_component[1]}_example.rb"]
  end
  
  wizard.prepare_spell_for /\/examples\/(.*)_example\.rb/ do |spell_component|
    ["examples/#{spell_component[1]}_example.rb"]
  end
  
  wizard.prepare_spell_for /\/examples\/example_helper\.rb/ do |spell_component|
    Dir["examples/**/*_example.rb"]
  end

  wizard.prepare_spell_for /\/config/ do
    Dir["examples/**/*_example.rb"]
  end

end

In your own treasure map (stored as treasure_map.rb, .treasure_map.rb, or config/treasure_map.rb) you could do:

map_for(:beholders_lair) do |wizard|
  
  # Clear all watched paths => wizard.paths_to_watch.clear
  # Add these paths to the paths to watch
  wizard.keep_a_watchful_eye_for 'coverage'
  
  # Forget all other treasure maps loaded
  # wizard.clear_maps
 
  # Add your own rules
  # wizard.prepare_spell_for /\/foobar/ do
  #   Dir["examples/foobar/*_example.rb"]
  # end

  # You could set the list of all examples to be run after pressing ctrl-c once
  # it defaults to any files in examples, spec, and test
  wizard.all_examples = Dir['your/path/**/*_here.rb']
end

Treasure maps are automatically reloaded when you change them, so you can fire up Beholder and start iterating on the config live.