Skip to content

Instantly share code, notes, and snippets.

View jmettraux's full-sized avatar

John Mettraux jmettraux

View GitHub Profile
>> def foo (bar)
>> "#{bar} baz"
>> end
=> nil
>> (0..5).collect &method(:foo)
=> ["0 baz", "1 baz", "2 baz", "3 baz", "4 baz", "5 baz"]
>> method(:foo)
=> #<Method: Object#foo>
@jmettraux
jmettraux / rufus-rules.rb
Created September 9, 2008 15:08
an idea
class RuleBook
def initialize (&block)
@rules = []
add_rules(&block)
end
def add_rules (&block)
instance_eval(&block) if block
self
1 + 1 # Testing gist.vim
@jmettraux
jmettraux / maillisteners.rb
Created November 20, 2008 00:25
a conversation with Thibaut
require 'rufus/scheduler'
require 'openwfe/service'
require 'openwfe/listeners/listener'
module OpenWFE
class Emailistener < Service
include WorkItemListener
# verbose
#
class NotifyThibaut0 < OpenWFE::ProcessDefinition
concurrence :count => 1 # terminate as soon as 1 branch replies
participant :ref => 'notify_thibaut'
cron :every => '1h' do
participant :ref => 'remind_thibaut'
end
end
class ActiveResourceParticipant
include OpenWFE::LocalParticipant
def initialize (options, &block)
@options = options
# some defaults
@options[:site] ||= 'http://127.0.0.1:3000'
#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'
require 'rufus/scheduler'
scheduler = File.join(File.dirname(__FILE__), 'scheduler.rb')
options = {
:app_name => 'scheduler',
:ARGV => ARGV,
class A
def initialize
@on_exception = lambda {}
@t = Thread.new do
count = 0
loop do
begin
puts count
count += 1
require 'rubygems'
require 'openwfe/engine/file_persisted_engine' # sudo gem install ruote
engine = OpenWFE::FilePersistedEngine.new(
:definition_in_launchitem_allowed => true)
#
# the process definition
class MyTodoProcess < OpenWFE::ProcessDefinition
require 'rubygems'
require 'openwfe/engine' # sudo gem install ruote
require 'atom/feed' # sudo gem install atom-tools
#
# starting a transient engine (no need to make it persistent)
engine = OpenWFE::Engine.new(:definition_in_launchitem_allowed => true)