Created
September 8, 2010 12:34
-
-
Save yitsushi/570065 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Queue | |
@@list = [] | |
def self.add(entry) | |
@@list << entry | |
end | |
def self.list | |
@@list | |
end | |
end | |
module Online | |
def self.send_queue | |
puts " send queue [#{::Queue.list.length}]" unless ::Queue.list.empty? | |
::Queue.list.each do |msg| | |
puts " #{msg[:to]} => #{msg[:subject]}" | |
end | |
end | |
def self.send_message(to, subject, msg) | |
puts "Send message via Email" | |
self.send_queue | |
puts "#{to} => #{subject}" | |
end | |
end | |
module Offline | |
def self.send_queue | |
end | |
def self.send_message(to, subject, msg) | |
puts "Store message into queue" | |
::Queue.add({:to => to, :subject => subject, :msg => msg}) | |
end | |
end | |
$status = Online | |
$status.send_message('[email protected]', 'Message I.', 'body') | |
$status = Offline | |
$status.send_message('[email protected]', 'Message II.', 'body') | |
$status.send_message('[email protected]', 'Message III.', 'body') | |
$status.send_message('[email protected]', 'Message IV.', 'body') | |
$status.send_message('[email protected]', 'Message V.', 'body') | |
$status = Online | |
$status.send_message('[email protected]', 'Message VI.', 'body') | |
=begin | |
# Output: | |
Send message via Email | |
[email protected] => Message I. | |
Store message into queue | |
Store message into queue | |
Store message into queue | |
Store message into queue | |
Send message via Email | |
send queue [4] | |
[email protected] => Message II. | |
[email protected] => Message III. | |
[email protected] => Message IV. | |
[email protected] => Message V. | |
[email protected] => Message VI. | |
=end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's a very stupid example but understandable.