brendan-skynet 0.9.311 → 0.9.312

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Manifest.txt CHANGED
@@ -36,6 +36,7 @@ lib/skynet/message_queue_adapters/mysql.rb
36
36
  lib/skynet/message_queue_adapters/tuple_space.rb
37
37
  lib/skynet/message.rb
38
38
  lib/skynet/message_queue.rb
39
+ lib/skynet/object_extensions.rb
39
40
  lib/skynet/partitioners.rb
40
41
  lib/skynet/ruby_extensions.rb
41
42
  lib/skynet/task.rb
data/lib/skynet.rb CHANGED
@@ -22,6 +22,7 @@ require 'skynet/mapreduce_test'
22
22
  require 'skynet/launcher'
23
23
  require 'skynet/console'
24
24
  require 'skynet/mapreduce_helper'
25
+ require 'skynet/object_extensions'
25
26
 
26
27
  begin
27
28
  require 'fastthread'
@@ -0,0 +1,68 @@
1
+ module Skynet::ObjectExtensions
2
+
3
+ def send_later(method, *arguments, &block)
4
+
5
+ raise ArgumentError("send_later can not serialize blocks.") if block_given?
6
+
7
+ if is_a?(Class)
8
+ data = {
9
+ :class_name => name,
10
+ :method => method,
11
+ :arguments => arguments
12
+ }.to_yaml
13
+ else
14
+ data = {
15
+ :object => self,
16
+ :method => method,
17
+ :arguments => arguments
18
+ }.to_yaml
19
+ end
20
+
21
+ jobopts = {
22
+ :single => true,
23
+ :mappers => 1,
24
+ :map_data => [data],
25
+ :name => "send_later #{self.class}##{method}",
26
+ :map_name => "",
27
+ :map_timeout => 60,
28
+ :reduce_timeout => 60,
29
+ :master_timeout => 60,
30
+ :master_result_timeout => 1.minute,
31
+ :map_reduce_class => Skynet::ObjectAsync,
32
+ :master_retry => 0,
33
+ :map_retry => 0
34
+ }
35
+ job = Skynet::AsyncJob.new(jobopts)
36
+ job.run
37
+
38
+ end
39
+
40
+ private
41
+
42
+ def method_missing(method_id, *arguments, &block)
43
+ return super unless method_id.to_s =~ /^(.*)_later$/
44
+ send_later($1, *arguments)
45
+ end
46
+
47
+ end
48
+
49
+ Object.send :include, Skynet::ObjectExtensions
50
+
51
+ class Skynet::ObjectAsync
52
+ include SkynetDebugger
53
+
54
+ class << self
55
+ def map(datas)
56
+ begin
57
+ datas.each do |yaml|
58
+ data = YAML.load(yaml)
59
+ data[:object] = data[:class_name].constantize if data[:class_name]
60
+ data[:object].send(data[:method], *data[:arguments])
61
+ end
62
+ rescue Exception => e
63
+ error "Error in #{self} #{e.inspect} with data #{datas.inspect}"
64
+ end
65
+ return
66
+ end
67
+ end
68
+ end
@@ -2,7 +2,7 @@ class Skynet #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 9
5
- TINY = 311
5
+ TINY = 312
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/skynet.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{skynet}
3
- s.version = "0.9.311"
3
+ s.version = "0.9.312"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Adam Pisoni", "Brendan Baldwin"]
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.email = %q{apisoni@geni.com}
10
10
  s.executables = ["skynet", "skynet_install", "skynet_tuplespace_server"]
11
11
  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "README.txt"]
12
- s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "app_generators/skynet_install/USAGE", "app_generators/skynet_install/skynet_install_generator.rb", "app_generators/skynet_install/templates/migration.rb", "app_generators/skynet_install/templates/skynet_config.rb", "app_generators/skynet_install/templates/skynet_initializer.rb", "app_generators/skynet_install/templates/skynet_mysql_schema.sql", "bin/skynet", "bin/skynet_install", "bin/skynet_tuplespace_server", "config/hoe.rb", "config/requirements.rb", "extras/README", "extras/init.d/skynet", "extras/rails/controllers/skynet_controller.rb", "extras/rails/views/skynet/index.html.erb", "lib/skynet.rb", "lib/skynet/active_record_extensions.rb", "lib/skynet/config.rb", "lib/skynet/console.rb", "lib/skynet/console_helper.rb", "lib/skynet/debugger.rb", "lib/skynet/guid_generator.rb", "lib/skynet/job.rb", "lib/skynet/launcher.rb", "lib/skynet/logger.rb", "lib/skynet/manager.rb", "lib/skynet/mapreduce_helper.rb", "lib/skynet/mapreduce_test.rb", "lib/skynet/message_queue_adapters/message_queue_adapter.rb", "lib/skynet/message_queue_adapters/mysql.rb", "lib/skynet/message_queue_adapters/tuple_space.rb", "lib/skynet/message.rb", "lib/skynet/message_queue.rb", "lib/skynet/partitioners.rb", "lib/skynet/ruby_extensions.rb", "lib/skynet/task.rb", "lib/skynet/tuplespace_server.rb", "lib/skynet/worker.rb", "lib/skynet/version.rb", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "skynet.gemspec", "tasks/deployment.rake", "tasks/environment.rake"]
12
+ s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "app_generators/skynet_install/USAGE", "app_generators/skynet_install/skynet_install_generator.rb", "app_generators/skynet_install/templates/migration.rb", "app_generators/skynet_install/templates/skynet_config.rb", "app_generators/skynet_install/templates/skynet_initializer.rb", "app_generators/skynet_install/templates/skynet_mysql_schema.sql", "bin/skynet", "bin/skynet_install", "bin/skynet_tuplespace_server", "config/hoe.rb", "config/requirements.rb", "extras/README", "extras/init.d/skynet", "extras/rails/controllers/skynet_controller.rb", "extras/rails/views/skynet/index.html.erb", "lib/skynet.rb", "lib/skynet/active_record_extensions.rb", "lib/skynet/config.rb", "lib/skynet/console.rb", "lib/skynet/console_helper.rb", "lib/skynet/debugger.rb", "lib/skynet/guid_generator.rb", "lib/skynet/job.rb", "lib/skynet/launcher.rb", "lib/skynet/logger.rb", "lib/skynet/manager.rb", "lib/skynet/mapreduce_helper.rb", "lib/skynet/mapreduce_test.rb", "lib/skynet/message_queue_adapters/message_queue_adapter.rb", "lib/skynet/message_queue_adapters/mysql.rb", "lib/skynet/message_queue_adapters/tuple_space.rb", "lib/skynet/message.rb", "lib/skynet/message_queue.rb", "lib/skynet/object_extensions.rb", "lib/skynet/partitioners.rb", "lib/skynet/ruby_extensions.rb", "lib/skynet/task.rb", "lib/skynet/tuplespace_server.rb", "lib/skynet/worker.rb", "lib/skynet/version.rb", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "skynet.gemspec", "tasks/deployment.rake", "tasks/environment.rake"]
13
13
  s.has_rdoc = true
14
14
  s.homepage = %q{http://skynet.rubyforge.org}
15
15
  s.rdoc_options = ["--main", "README.txt"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brendan-skynet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.311
4
+ version: 0.9.312
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Pisoni
@@ -83,6 +83,7 @@ files:
83
83
  - lib/skynet/message_queue_adapters/tuple_space.rb
84
84
  - lib/skynet/message.rb
85
85
  - lib/skynet/message_queue.rb
86
+ - lib/skynet/object_extensions.rb
86
87
  - lib/skynet/partitioners.rb
87
88
  - lib/skynet/ruby_extensions.rb
88
89
  - lib/skynet/task.rb