sim_back 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjhlYWU1Zjk5MDY2MmZiN2MzODE5YzAzZDMzNjc4YmViZjBkZmMzZQ==
5
+ data.tar.gz: !binary |-
6
+ NGM3NzYwZjQ4OGFlZjA4MWY3OWMxOTI5NmY3MTgzZjdhYzVjM2Y4Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NDY1MjA3NmUxZDE1NmM5OGQ1YWM3M2E0YjE3NzYwZTEzZDRiZGFkNThjZTk1
10
+ NjQ4MWU0OGZmOWE0MjI0NjIwZTk4ZmI2YTA4N2IzNTJiNDMyNDk4YmYzNzIy
11
+ YjI0MzAyYTNhODA2ZmM1ZWZkYmQ3ZmJlZWZjMmVlNTQ4ZDZjY2E=
12
+ data.tar.gz: !binary |-
13
+ ZDhhNzYxY2Y5YWYwZTgyNjU0NTgxNTUxZTIwNDhkZTIyNTljNmJiYWIzZjc1
14
+ MTViMDgyYzAyZTgzMGQxZDBiNTYzNWNmYTYxODJlM2YxNzJjZTE4MGYzODQ0
15
+ N2IxODJlYjNjNWM1NDBmMWE2NTc2N2FlMWQ0OWM2OTM5ZGNhZDc=
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,42 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rspec", "~> 2.8.0"
10
+ gem "rdoc", "~> 3.12"
11
+ gem "bundler", ">= 1.0.0"
12
+ gem "jeweler", "~> 1.8.4"
13
+
14
+ gem 'guard'
15
+ gem 'guard-rspec'
16
+ gem 'guard-spork'
17
+
18
+ gem 'rb-fsevent', '~> 0.9'
19
+
20
+ gem 'lre'
21
+ gem 'rake'
22
+ end
23
+
24
+ group :test do
25
+ gem 'simplecov', require: false
26
+ end
27
+
28
+ gem 'mharris_ext'
29
+ gem 'andand'
30
+
31
+ #gem 'activesupport','3.2.2'
32
+ gem 'mongoid'
33
+ gem 'bson_ext'
34
+ #gem 'mongo'
35
+ #gem 'mongo_persist'
36
+ #gem 'hpricot'
37
+ #gem 'nokogiri'
38
+ #gem 'repl_index'
39
+
40
+ gem 'sidekiq',"2.17.1"
41
+ gem 'sinatra'
42
+ gem 'slim'
@@ -0,0 +1,167 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (3.2.13)
5
+ activesupport (= 3.2.13)
6
+ builder (~> 3.0.0)
7
+ activesupport (3.2.13)
8
+ i18n (= 0.6.1)
9
+ multi_json (~> 1.0)
10
+ addressable (2.3.5)
11
+ andand (1.3.3)
12
+ bson (1.9.2)
13
+ bson_ext (1.9.2)
14
+ bson (~> 1.9.2)
15
+ builder (3.0.4)
16
+ celluloid (0.15.2)
17
+ timers (~> 1.1.0)
18
+ childprocess (0.3.9)
19
+ ffi (~> 1.0, >= 1.0.11)
20
+ coderay (1.1.0)
21
+ connection_pool (1.2.0)
22
+ diff-lcs (1.1.3)
23
+ facets (2.9.3)
24
+ faraday (0.8.8)
25
+ multipart-post (~> 1.2.0)
26
+ fattr (2.2.1)
27
+ ffi (1.9.3)
28
+ formatador (0.2.4)
29
+ git (1.2.6)
30
+ github_api (0.10.1)
31
+ addressable
32
+ faraday (~> 0.8.1)
33
+ hashie (>= 1.2)
34
+ multi_json (~> 1.4)
35
+ nokogiri (~> 1.5.2)
36
+ oauth2
37
+ guard (2.2.3)
38
+ formatador (>= 0.2.4)
39
+ listen (~> 2.1)
40
+ lumberjack (~> 1.0)
41
+ pry (>= 0.9.12)
42
+ thor (>= 0.18.1)
43
+ guard-rspec (1.2.1)
44
+ guard (>= 1.1)
45
+ guard-spork (1.5.1)
46
+ childprocess (>= 0.2.3)
47
+ guard (>= 1.1)
48
+ spork (>= 0.8.4)
49
+ hashie (2.0.5)
50
+ highline (1.6.19)
51
+ httpauth (0.2.0)
52
+ i18n (0.6.1)
53
+ jeweler (1.8.7)
54
+ builder
55
+ bundler (~> 1.0)
56
+ git (>= 1.2.5)
57
+ github_api (= 0.10.1)
58
+ highline (>= 1.6.15)
59
+ nokogiri (= 1.5.10)
60
+ rake
61
+ rdoc
62
+ json (1.8.1)
63
+ jwt (0.1.8)
64
+ multi_json (>= 1.5)
65
+ listen (2.2.0)
66
+ celluloid (>= 0.15.2)
67
+ rb-fsevent (>= 0.9.3)
68
+ rb-inotify (>= 0.9)
69
+ lre (0.3.0)
70
+ fattr
71
+ mharris_ext
72
+ watchr
73
+ lumberjack (1.0.4)
74
+ method_source (0.8.2)
75
+ mharris_ext (1.7.1)
76
+ facets
77
+ fattr
78
+ mongoid (3.1.6)
79
+ activemodel (~> 3.2)
80
+ moped (~> 1.4)
81
+ origin (~> 1.0)
82
+ tzinfo (~> 0.3.29)
83
+ moped (1.5.2)
84
+ multi_json (1.8.4)
85
+ multi_xml (0.5.5)
86
+ multipart-post (1.2.0)
87
+ nokogiri (1.5.10)
88
+ oauth2 (0.9.2)
89
+ faraday (~> 0.8)
90
+ httpauth (~> 0.2)
91
+ jwt (~> 0.1.4)
92
+ multi_json (~> 1.0)
93
+ multi_xml (~> 0.5)
94
+ rack (~> 1.2)
95
+ origin (1.0.10)
96
+ pry (0.9.12.4)
97
+ coderay (~> 1.0)
98
+ method_source (~> 0.8)
99
+ slop (~> 3.4)
100
+ rack (1.5.2)
101
+ rack-protection (1.5.0)
102
+ rack
103
+ rake (10.1.1)
104
+ rb-fsevent (0.9.3)
105
+ rb-inotify (0.9.2)
106
+ ffi (>= 0.5.0)
107
+ rdoc (3.12.2)
108
+ json (~> 1.4)
109
+ redis (3.0.6)
110
+ redis-namespace (1.4.1)
111
+ redis (~> 3.0.4)
112
+ rspec (2.8.0)
113
+ rspec-core (~> 2.8.0)
114
+ rspec-expectations (~> 2.8.0)
115
+ rspec-mocks (~> 2.8.0)
116
+ rspec-core (2.8.0)
117
+ rspec-expectations (2.8.0)
118
+ diff-lcs (~> 1.1.2)
119
+ rspec-mocks (2.8.0)
120
+ sidekiq (2.17.1)
121
+ celluloid (>= 0.15.2)
122
+ connection_pool (>= 1.0.0)
123
+ json
124
+ redis (>= 3.0.6)
125
+ redis-namespace (>= 1.3.1)
126
+ simplecov (0.7.1)
127
+ multi_json (~> 1.0)
128
+ simplecov-html (~> 0.7.1)
129
+ simplecov-html (0.7.1)
130
+ sinatra (1.4.3)
131
+ rack (~> 1.4)
132
+ rack-protection (~> 1.4)
133
+ tilt (~> 1.3, >= 1.3.4)
134
+ slim (2.0.0)
135
+ temple (~> 0.6.5)
136
+ tilt (~> 1.3, >= 1.3.3)
137
+ slop (3.4.7)
138
+ spork (0.9.2)
139
+ temple (0.6.5)
140
+ thor (0.18.1)
141
+ tilt (1.4.1)
142
+ timers (1.1.0)
143
+ tzinfo (0.3.38)
144
+ watchr (0.7)
145
+
146
+ PLATFORMS
147
+ ruby
148
+
149
+ DEPENDENCIES
150
+ andand
151
+ bson_ext
152
+ bundler (>= 1.0.0)
153
+ guard
154
+ guard-rspec
155
+ guard-spork
156
+ jeweler (~> 1.8.4)
157
+ lre
158
+ mharris_ext
159
+ mongoid
160
+ rake
161
+ rb-fsevent (~> 0.9)
162
+ rdoc (~> 3.12)
163
+ rspec (~> 2.8.0)
164
+ sidekiq (= 2.17.1)
165
+ simplecov
166
+ sinatra
167
+ slim
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2014 Mike Harris
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,19 @@
1
+ = sim_back
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to sim_back
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
+ * Fork the project.
10
+ * Start a feature/bugfix branch.
11
+ * Commit and push until you are happy with your contribution.
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2014 Mike Harris. See LICENSE.txt for
18
+ further details.
19
+
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "sim_back"
18
+ gem.homepage = "http://github.com/mharris717/sim_back"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{sim_back}
21
+ gem.description = %Q{sim_back}
22
+ gem.email = "mharris717@gmail.com"
23
+ gem.authors = ["Mike Harris"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rdoc/task'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "sim_back #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,5 @@
1
+ load File.dirname(__FILE__) + "/lib/sim_back.rb"
2
+ SimBack.setup!
3
+
4
+ require 'sidekiq/web'
5
+ run Sidekiq::Web
@@ -0,0 +1,6 @@
1
+ development:
2
+ sessions:
3
+ default:
4
+ database: simback_dev
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,17 @@
1
+ require 'sidekiq'
2
+ require 'mharris_ext'
3
+ require 'mongoid'
4
+ require 'andand'
5
+
6
+ module SimBack
7
+ class << self
8
+ def setup_mongoid!
9
+ f = File.dirname(__FILE__) + "/../config/development.yml"
10
+ Mongoid.load!(f, :development)
11
+ end
12
+ end
13
+ end
14
+
15
+ %w(queue sim sim_progress sims summary_worker worker util).each do |f|
16
+ load File.dirname(__FILE__) + "/sim_back/#{f}.rb"
17
+ end
@@ -0,0 +1,31 @@
1
+ module SimBack
2
+ class Queue
3
+ class << self
4
+ def each_chunk_size(num_sims)
5
+ while num_sims > 0
6
+ raise "bad" if num_sims < 0
7
+ chunk = [max_chunk_size,num_sims].min
8
+ yield(chunk)
9
+ num_sims -= chunk
10
+ end
11
+ end
12
+
13
+ def max_chunk_size
14
+ 25
15
+ end
16
+ def queue(num_sims, sim_progress_ops)
17
+ default = {:num_sims => num_sims, :sims_completed => 0}
18
+ sim_progress_ops = sim_progress_ops.merge(default)
19
+
20
+ progress = SimProgress.new(sim_progress_ops)
21
+ progress.save!
22
+
23
+ each_chunk_size(num_sims) do |chunk_size|
24
+ Worker.perform_async(progress.id.to_s,chunk_size)
25
+ end
26
+
27
+ SummaryWorker.perform_async(progress.id.to_s)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ module SimBack
2
+ class Sim
3
+ include FromHash
4
+ attr_accessor :sim_progress
5
+
6
+ def run!
7
+ base = sim_progress.base_number
8
+ sim_progress.inc(:sum_number, base)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,28 @@
1
+ module SimBack
2
+ class SimProgress
3
+ include Mongoid::Document
4
+ include Mongoid::Timestamps
5
+
6
+ def self.find_one_object(id)
7
+ find(id)
8
+ rescue => exp
9
+ raise "can't find #{id}"
10
+ end
11
+
12
+ def completed_sims
13
+ sims_completed
14
+ end
15
+
16
+ def run_state
17
+ res = if num_sims == completed_sims
18
+ :complete
19
+ elsif num_sims > completed_sims
20
+ :running
21
+ else
22
+ :error
23
+ end
24
+ #puts "Run State: #{res} num_sims: #{num_sims} completed: #{completed_sims} results: #{season_results.count}"
25
+ res
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ module SimBack
2
+ class Sims
3
+ include FromHash
4
+ attr_accessor :sim_progress_id, :num_sims
5
+ fattr(:sim_progress) do
6
+ SimProgress.find_one_object(sim_progress_id)
7
+ end
8
+
9
+ def run!
10
+ num_sims.times do
11
+ Sim.new(:sim_progress => sim_progress).run!
12
+ end
13
+
14
+ sim_progress.inc(:sims_completed,num_sims)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ module SimBack
2
+ class SummaryWorker
3
+ include Sidekiq::Worker
4
+
5
+ def perform(sim_progress_id)
6
+ progress = SimProgress.find_one_object(sim_progress_id)
7
+ state = progress.run_state
8
+ if state == :complete
9
+ make_summary(progress)
10
+ elsif state == :error
11
+ # something
12
+ elsif state == :running
13
+ reschedule(progress.id.to_s)
14
+ else
15
+ raise "unknown state #{state} for #{progress.season_start.id}"
16
+ end
17
+ end
18
+
19
+ def make_summary(progress)
20
+ File.create "tmp/sum.txt",progress.sum_number
21
+ end
22
+
23
+ def reschedule(sim_progress_id)
24
+ klass.perform_in(2.seconds,sim_progress_id)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,18 @@
1
+ module SimBack
2
+ class << self
3
+ def classes
4
+ [SimBack::SimProgress]
5
+ end
6
+
7
+ def worker_classes
8
+ [SimBack::Worker,SimBack::SummaryWorker]
9
+ end
10
+
11
+ def delete_all!
12
+ classes.each { |x| x.destroy_all }
13
+ worker_classes.each do |cls|
14
+ cls.jobs.clear if cls.respond_to?(:jobs)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,31 @@
1
+ module SimBack
2
+ class << self
3
+ fattr(:redis_url) { 'redis://localhost:6379' }
4
+ def setup!
5
+ Sidekiq.configure_client do |config|
6
+ config.redis = { :namespace => 'simback_div', :size => 1, :url => redis_url }
7
+ end
8
+
9
+ # Sidekiq server is multi-threaded so our Redis connection pool size defaults to concurrency (-c)
10
+ Sidekiq.configure_server do |config|
11
+ config.redis = { :namespace => 'simback_div', :url => redis_url }
12
+ end
13
+ end
14
+ end
15
+
16
+ # Start up sidekiq via
17
+ # ./bin/sidekiq -r ./examples/por.rb
18
+ # and then you can open up an IRB session like so:
19
+ # irb -r ./examples/por.rb
20
+ # where you can then say
21
+ # PlainOldRuby.perform_async "like a dog", 3
22
+ #
23
+
24
+ class Worker
25
+ include Sidekiq::Worker
26
+
27
+ def perform(sim_progress_id,num_sims)
28
+ Sims.new(:sim_progress_id => sim_progress_id, :num_sims => num_sims).run!
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,112 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "sim_back"
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Mike Harris"]
12
+ s.date = "2014-02-26"
13
+ s.description = "sim_back"
14
+ s.email = "mharris717@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "config.ru",
29
+ "config/development.yml",
30
+ "lib/sim_back.rb",
31
+ "lib/sim_back/queue.rb",
32
+ "lib/sim_back/sim.rb",
33
+ "lib/sim_back/sim_progress.rb",
34
+ "lib/sim_back/sims.rb",
35
+ "lib/sim_back/summary_worker.rb",
36
+ "lib/sim_back/util.rb",
37
+ "lib/sim_back/worker.rb",
38
+ "sim_back.gemspec",
39
+ "spec/sim_back_spec.rb",
40
+ "spec/spec_helper.rb",
41
+ "spec/support/sidekiq_setup.rb",
42
+ "spec/support_ext/setup_sidekiq.rb",
43
+ "spec/support_ext/summary_worker_reschedule.rb",
44
+ "tmp/.gitkeep"
45
+ ]
46
+ s.homepage = "http://github.com/mharris717/sim_back"
47
+ s.licenses = ["MIT"]
48
+ s.require_paths = ["lib"]
49
+ s.rubygems_version = "2.0.7"
50
+ s.summary = "sim_back"
51
+
52
+ if s.respond_to? :specification_version then
53
+ s.specification_version = 4
54
+
55
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
+ s.add_runtime_dependency(%q<mharris_ext>, [">= 0"])
57
+ s.add_runtime_dependency(%q<andand>, [">= 0"])
58
+ s.add_runtime_dependency(%q<mongoid>, [">= 0"])
59
+ s.add_runtime_dependency(%q<bson_ext>, [">= 0"])
60
+ s.add_runtime_dependency(%q<sidekiq>, ["= 2.17.1"])
61
+ s.add_runtime_dependency(%q<sinatra>, [">= 0"])
62
+ s.add_runtime_dependency(%q<slim>, [">= 0"])
63
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
64
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
65
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
66
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
67
+ s.add_development_dependency(%q<guard>, [">= 0"])
68
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
69
+ s.add_development_dependency(%q<guard-spork>, [">= 0"])
70
+ s.add_development_dependency(%q<rb-fsevent>, ["~> 0.9"])
71
+ s.add_development_dependency(%q<lre>, [">= 0"])
72
+ s.add_development_dependency(%q<rake>, [">= 0"])
73
+ else
74
+ s.add_dependency(%q<mharris_ext>, [">= 0"])
75
+ s.add_dependency(%q<andand>, [">= 0"])
76
+ s.add_dependency(%q<mongoid>, [">= 0"])
77
+ s.add_dependency(%q<bson_ext>, [">= 0"])
78
+ s.add_dependency(%q<sidekiq>, ["= 2.17.1"])
79
+ s.add_dependency(%q<sinatra>, [">= 0"])
80
+ s.add_dependency(%q<slim>, [">= 0"])
81
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
82
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
83
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
84
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
85
+ s.add_dependency(%q<guard>, [">= 0"])
86
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
87
+ s.add_dependency(%q<guard-spork>, [">= 0"])
88
+ s.add_dependency(%q<rb-fsevent>, ["~> 0.9"])
89
+ s.add_dependency(%q<lre>, [">= 0"])
90
+ s.add_dependency(%q<rake>, [">= 0"])
91
+ end
92
+ else
93
+ s.add_dependency(%q<mharris_ext>, [">= 0"])
94
+ s.add_dependency(%q<andand>, [">= 0"])
95
+ s.add_dependency(%q<mongoid>, [">= 0"])
96
+ s.add_dependency(%q<bson_ext>, [">= 0"])
97
+ s.add_dependency(%q<sidekiq>, ["= 2.17.1"])
98
+ s.add_dependency(%q<sinatra>, [">= 0"])
99
+ s.add_dependency(%q<slim>, [">= 0"])
100
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
101
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
102
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
103
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
104
+ s.add_dependency(%q<guard>, [">= 0"])
105
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
106
+ s.add_dependency(%q<guard-spork>, [">= 0"])
107
+ s.add_dependency(%q<rb-fsevent>, ["~> 0.9"])
108
+ s.add_dependency(%q<lre>, [">= 0"])
109
+ s.add_dependency(%q<rake>, [">= 0"])
110
+ end
111
+ end
112
+
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "SimBack" do
4
+ it "smoke" do
5
+ 2.should == 2
6
+ end
7
+
8
+ it 'smoke - fake', sidekiq: :inline do
9
+ i = rand().round(3)
10
+ SimBack::Queue.queue(100, :base_number => i)
11
+ sum = File.read("tmp/sum.txt").to_f.round(3)
12
+ sum.should == (i*100.0).round(3)
13
+ end
14
+
15
+ after do
16
+ SimBack.delete_all!
17
+ end
18
+ end
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+ require 'mharris_ext'
4
+
5
+ Spork.prefork do
6
+ unless ENV['DRB']
7
+ require 'simplecov'
8
+ SimpleCov.start
9
+ end
10
+
11
+ #require 'rspec-prof'
12
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
14
+
15
+ require 'rspec'
16
+
17
+ # Requires supporting files with custom matchers and macros, etc,
18
+ # in ./support/ and its subdirectories.
19
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
20
+
21
+ RSpec.configure do |config|
22
+ config.fail_fast = true
23
+ end
24
+ end
25
+
26
+ Spork.each_run do
27
+ if ENV['DRB']
28
+ require 'simplecov'
29
+ SimpleCov.start
30
+ end
31
+ load File.dirname(__FILE__) + "/../lib/sim_back.rb"
32
+ SimBack.setup_mongoid!
33
+ Dir["#{File.dirname(__FILE__)}/support_ext/**/*.rb"].each { |f| load f }
34
+ end
@@ -0,0 +1,17 @@
1
+ RSpec.configure do |config|
2
+ config.before(:each) do |example_method|
3
+
4
+ # Get the current example from the example_method object
5
+ example = example_method.example
6
+
7
+ if example.metadata[:sidekiq] == :fake
8
+ Sidekiq::Testing.fake!
9
+ elsif example.metadata[:sidekiq] == :inline
10
+ Sidekiq::Testing.inline!
11
+ elsif example.metadata[:type] == :acceptance
12
+ Sidekiq::Testing.inline!
13
+ else
14
+ Sidekiq::Testing.fake!
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,2 @@
1
+ require 'sidekiq'
2
+ require 'sidekiq/testing'
@@ -0,0 +1,6 @@
1
+ module SimBack
2
+ class SummaryWorker
3
+ def reschedule(*args)
4
+ end
5
+ end
6
+ end
File without changes
metadata ADDED
@@ -0,0 +1,308 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sim_back
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mike Harris
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mharris_ext
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: andand
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mongoid
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bson_ext
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sidekiq
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 2.17.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.17.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: sinatra
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: slim
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 2.8.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 2.8.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rdoc
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '3.12'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '3.12'
139
+ - !ruby/object:Gem::Dependency
140
+ name: bundler
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.0.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: 1.0.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: jeweler
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: 1.8.4
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 1.8.4
167
+ - !ruby/object:Gem::Dependency
168
+ name: guard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: guard-rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: guard-spork
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rb-fsevent
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: '0.9'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: '0.9'
223
+ - !ruby/object:Gem::Dependency
224
+ name: lre
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ! '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rake
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ! '>='
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ description: sim_back
252
+ email: mharris717@gmail.com
253
+ executables: []
254
+ extensions: []
255
+ extra_rdoc_files:
256
+ - LICENSE.txt
257
+ - README.rdoc
258
+ files:
259
+ - .document
260
+ - .rspec
261
+ - Gemfile
262
+ - Gemfile.lock
263
+ - LICENSE.txt
264
+ - README.rdoc
265
+ - Rakefile
266
+ - VERSION
267
+ - config.ru
268
+ - config/development.yml
269
+ - lib/sim_back.rb
270
+ - lib/sim_back/queue.rb
271
+ - lib/sim_back/sim.rb
272
+ - lib/sim_back/sim_progress.rb
273
+ - lib/sim_back/sims.rb
274
+ - lib/sim_back/summary_worker.rb
275
+ - lib/sim_back/util.rb
276
+ - lib/sim_back/worker.rb
277
+ - sim_back.gemspec
278
+ - spec/sim_back_spec.rb
279
+ - spec/spec_helper.rb
280
+ - spec/support/sidekiq_setup.rb
281
+ - spec/support_ext/setup_sidekiq.rb
282
+ - spec/support_ext/summary_worker_reschedule.rb
283
+ - tmp/.gitkeep
284
+ homepage: http://github.com/mharris717/sim_back
285
+ licenses:
286
+ - MIT
287
+ metadata: {}
288
+ post_install_message:
289
+ rdoc_options: []
290
+ require_paths:
291
+ - lib
292
+ required_ruby_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ! '>='
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ required_rubygems_version: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - ! '>='
300
+ - !ruby/object:Gem::Version
301
+ version: '0'
302
+ requirements: []
303
+ rubyforge_project:
304
+ rubygems_version: 2.0.7
305
+ signing_key:
306
+ specification_version: 4
307
+ summary: sim_back
308
+ test_files: []