rails_iron 0.0.8
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.
- checksums.yaml +15 -0
- data/lib/rails_iron/error.rb +4 -0
- data/lib/rails_iron/loader.rb +20 -0
- data/lib/rails_iron/worker.rb +52 -0
- data/lib/rails_iron.rb +10 -0
- metadata +131 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzYwNGE1NmYxZmY1NmJjMzY4MzQ5NjgxZGY3ZDEzOWZhNzdlYTQ0MA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjdiZDkxNWIwNzcwODdiYzE4ODE0NzY0YWM0NGNhZGZjNWZhNjZhYQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjZiOGIzODE0NjNlYTA1MGE1NDAxZmYxZjBlYTdiYzVhNmQyMGM1MTY3Njg4
|
10
|
+
MzI4OGQ3OGY4MjliMTEwYjAzY2I3YzVlNDAxY2MwM2I1MmE1YTRhMjhjMDIy
|
11
|
+
NDRjODczY2VlMjgyMDJmYWNmZWQ1MjQyYmY4ZWZjYWU1ZTE4OTc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Y2MwZmEyYzBlYjQ0YjBjZjMwZjBjOTU5ZWU4M2Y3NjU0OTA3Mjk4OTkwOTJk
|
14
|
+
Mjg2YzM4YmM4NjUzOWU0MWFiNDllNzA4Y2Q4Y2FiYTBmZDY3YmJmMmQwNzAx
|
15
|
+
OGU4NGRkYzRjYzg1Y2JlYjI3ZWQwZDYyMmU3MzdhMGNlZTBkOTU=
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "pathname"
|
2
|
+
|
3
|
+
module RailsIron
|
4
|
+
module Loader
|
5
|
+
def self.included(base)
|
6
|
+
base.load_rails
|
7
|
+
end
|
8
|
+
|
9
|
+
def load_rails
|
10
|
+
unless defined?(Rails)
|
11
|
+
if File.exists?("/task/config/environment.rb")
|
12
|
+
ENV['RAILS_ENV'] ||= "production"
|
13
|
+
require "/task/config/environment"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Module.send(:include, RailsIron::Loader)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "iron_worker_ng"
|
2
|
+
|
3
|
+
module RailsIron
|
4
|
+
module Worker
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def iron_worker
|
11
|
+
IronWorkerNG::Client.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def perform_async(*args)
|
15
|
+
queue({params: args})
|
16
|
+
end
|
17
|
+
|
18
|
+
def queue(payload = nil)
|
19
|
+
begin
|
20
|
+
iron_worker.tasks.create(self.name, payload)
|
21
|
+
rescue Rest::Wrappers::TyphoeusTimeoutError => t
|
22
|
+
raise RailsIron::TemporaryError, t.message
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# InstanceMethods
|
28
|
+
attr_reader :params
|
29
|
+
|
30
|
+
def run
|
31
|
+
begin
|
32
|
+
perform(*params)
|
33
|
+
rescue RailsIron::TemporaryError
|
34
|
+
puts "TemporaryError raised, will retry task after 300 seconds"
|
35
|
+
rerun
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def iron_task_id
|
40
|
+
$iron_task_id
|
41
|
+
end
|
42
|
+
|
43
|
+
def params=(params)
|
44
|
+
raise RailsIron::PermanentError, "Expected #{params} to be an Array" unless params.is_a?(Array)
|
45
|
+
@params = params
|
46
|
+
end
|
47
|
+
|
48
|
+
def rerun
|
49
|
+
self.class.iron_worker.tasks.retry(iron_task_id, delay: 300)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/rails_iron.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# make iron_task_id global available
|
2
|
+
# iron_task_id is a private method
|
3
|
+
if respond_to?(:iron_task_id, true)
|
4
|
+
$iron_task_id = iron_task_id
|
5
|
+
end
|
6
|
+
|
7
|
+
require_relative "rails_iron/error"
|
8
|
+
require_relative "rails_iron/worker"
|
9
|
+
require_relative "rails_iron/loader"
|
10
|
+
|
metadata
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails_iron
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.8
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- H.J. Blok
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: iron_worker_ng
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: typhoeus
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.5
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.6.5
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
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: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
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: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: To simplify integrating iron.io into Rails
|
98
|
+
email: hj.blok@sudoit.nl
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- lib/rails_iron/error.rb
|
104
|
+
- lib/rails_iron/loader.rb
|
105
|
+
- lib/rails_iron/worker.rb
|
106
|
+
- lib/rails_iron.rb
|
107
|
+
homepage: ''
|
108
|
+
licenses:
|
109
|
+
- MIT
|
110
|
+
metadata: {}
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
require_paths:
|
114
|
+
- lib
|
115
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
requirements: []
|
126
|
+
rubyforge_project:
|
127
|
+
rubygems_version: 2.1.11
|
128
|
+
signing_key:
|
129
|
+
specification_version: 4
|
130
|
+
summary: RailsIron
|
131
|
+
test_files: []
|