delayed_job_azure 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f4a34c5b84f14bcbb6f4dcb3720c1887a59c1f66
4
+ data.tar.gz: 270064849ec4815b9429e5f39d0a24ff601c364a
5
+ SHA512:
6
+ metadata.gz: 16f019eec488e97f077c72a00fc4358a8ecdfc58572a349785be5edb2558a3099f77a110b87e21137a730840ad3b5c62cf9845af5ca51c98d550c0beaae071d8
7
+ data.tar.gz: 3fa750b4d0f8c5a197848ed5679eb11e959b6eb73cc7a25d87b60419173e7cb034671719450f41f00559b276dd652d106c0333c300ce4f4edab53333ab20dbab
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'azure', '~> 0.6'
4
+ gem 'delayed_job', '~> 3.0.0'
5
+
6
+ group :development do
7
+ gem "rdoc", "~> 3.12"
8
+ gem "bundler", "~> 1.0"
9
+ gem "jeweler", "~> 2.0.1"
10
+ gem "simplecov", ">= 0"
11
+ gem 'rspec', '>= 2.0'
12
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,94 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (3.2.18)
5
+ i18n (~> 0.6, >= 0.6.4)
6
+ multi_json (~> 1.0)
7
+ addressable (2.3.6)
8
+ azure (0.6.4)
9
+ json (~> 1.8)
10
+ mime-types (~> 1.0)
11
+ nokogiri (~> 1.5)
12
+ systemu (~> 2.6)
13
+ uuid (~> 2.0)
14
+ builder (3.2.2)
15
+ delayed_job (3.0.5)
16
+ activesupport (~> 3.0)
17
+ descendants_tracker (0.0.4)
18
+ thread_safe (~> 0.3, >= 0.3.1)
19
+ diff-lcs (1.2.5)
20
+ docile (1.1.3)
21
+ faraday (0.9.0)
22
+ multipart-post (>= 1.2, < 3)
23
+ git (1.2.6)
24
+ github_api (0.11.3)
25
+ addressable (~> 2.3)
26
+ descendants_tracker (~> 0.0.1)
27
+ faraday (~> 0.8, < 0.10)
28
+ hashie (>= 1.2)
29
+ multi_json (>= 1.7.5, < 2.0)
30
+ nokogiri (~> 1.6.0)
31
+ oauth2
32
+ hashie (2.1.1)
33
+ highline (1.6.21)
34
+ i18n (0.6.9)
35
+ jeweler (2.0.1)
36
+ builder
37
+ bundler (>= 1.0)
38
+ git (>= 1.2.5)
39
+ github_api
40
+ highline (>= 1.6.15)
41
+ nokogiri (>= 1.5.10)
42
+ rake
43
+ rdoc
44
+ json (1.8.1)
45
+ jwt (0.1.13)
46
+ multi_json (>= 1.5)
47
+ macaddr (1.7.1)
48
+ systemu (~> 2.6.2)
49
+ mime-types (1.25.1)
50
+ mini_portile (0.6.0)
51
+ multi_json (1.10.0)
52
+ multi_xml (0.5.5)
53
+ multipart-post (2.0.0)
54
+ nokogiri (1.6.2.1)
55
+ mini_portile (= 0.6.0)
56
+ oauth2 (0.9.3)
57
+ faraday (>= 0.8, < 0.10)
58
+ jwt (~> 0.1.8)
59
+ multi_json (~> 1.3)
60
+ multi_xml (~> 0.5)
61
+ rack (~> 1.2)
62
+ rack (1.5.2)
63
+ rake (10.3.2)
64
+ rdoc (3.12.2)
65
+ json (~> 1.4)
66
+ rspec (2.14.1)
67
+ rspec-core (~> 2.14.0)
68
+ rspec-expectations (~> 2.14.0)
69
+ rspec-mocks (~> 2.14.0)
70
+ rspec-core (2.14.8)
71
+ rspec-expectations (2.14.5)
72
+ diff-lcs (>= 1.1.3, < 2.0)
73
+ rspec-mocks (2.14.6)
74
+ simplecov (0.8.2)
75
+ docile (~> 1.1.0)
76
+ multi_json
77
+ simplecov-html (~> 0.8.0)
78
+ simplecov-html (0.8.0)
79
+ systemu (2.6.4)
80
+ thread_safe (0.3.3)
81
+ uuid (2.3.7)
82
+ macaddr (~> 1.0)
83
+
84
+ PLATFORMS
85
+ ruby
86
+
87
+ DEPENDENCIES
88
+ azure (~> 0.6)
89
+ bundler (~> 1.0)
90
+ delayed_job (~> 3.0.0)
91
+ jeweler (~> 2.0.1)
92
+ rdoc (~> 3.12)
93
+ rspec (>= 2.0)
94
+ simplecov
data/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2014, Supportify.io
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,66 @@
1
+ This is [Azure Queues](http://azure.microsoft.com/en-us/services/storage/) backend for [delayed_job](http://github.com/collectiveidea/delayed_job)
2
+
3
+ # Getting Started
4
+
5
+ ## Get credentials
6
+
7
+
8
+ To start using delayed_job_azure, will need to have your storage account setup as mentioned [here](http://azure.microsoft.com/en-us/documentation/articles/storage-ruby-how-to-use-queue-storage/#CreateAccount).
9
+
10
+ Once your account is setup, you will need to configure your access using one of the methods mentioned on https://github.com/Azure/azure-sdk-for-ruby/.
11
+
12
+ ## Installation
13
+
14
+ Add the gems to your `Gemfile:`
15
+
16
+ ```ruby
17
+ gem 'azure'
18
+ gem 'delayed_job'
19
+ gem 'delayed_job_azure'
20
+ ```
21
+
22
+ Optionally: Add an initializer (`config/initializers/delayed_job.rb`):
23
+
24
+ ```ruby
25
+ Delayed::Worker.configure do |config|
26
+ # optional params:
27
+ config.available_priorities = [-1,0,1,2] # Default is [0]. Please note, adding new priorities will slow down picking the next job from queue. Also note that these priorities must include all priorities of your Delayed Jobs.
28
+ config.queue_name = 'default' # Specify an alternative queue name
29
+ config.delay = 0 # Time to wait before message will be available on the queue
30
+ config.timeout = 5.minutes # The time in seconds to wait after message is taken off the queue, before it is put back on. Delete before :timeout to ensure it does not go back on the queue.
31
+ config.expires_in = 7.days # After this time, message will be automatically removed from the queue.
32
+ end
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ That's it. Use [delayed_job as normal](http://github.com/collectiveidea/delayed_job).
38
+
39
+ Example:
40
+
41
+ ```ruby
42
+ class User
43
+ def background_stuff
44
+ puts "I run in the background"
45
+ end
46
+ end
47
+ ```
48
+
49
+ Then in one of your controllers:
50
+
51
+ ```ruby
52
+ user = User.new
53
+ user.delay.background_stuff
54
+ ```
55
+
56
+ ## Start worker process
57
+
58
+ rake jobs:work
59
+
60
+ That will start pulling jobs off the queue and processing them.
61
+
62
+ # Documentation
63
+
64
+ You can find more documentation here:
65
+
66
+ * http://azure.microsoft.com/en-us/develop/ruby/
data/Rakefile ADDED
@@ -0,0 +1,47 @@
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://guides.rubygems.org/specification-reference/ for more options
17
+ gem.name = "delayed_job_azure"
18
+ gem.homepage = "http://github.com/supportify/delayed_job_azure"
19
+ gem.license = "BSD"
20
+ gem.summary = %Q{Azure Queue backend for delayed_job}
21
+ gem.description = %Q{Azure Queue backend for delayed_job}
22
+ gem.email = "help@supportify.io"
23
+ gem.authors = ["Jordan Yaker", "Supportify, Inc."]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core/rake_task'
29
+ RSpec::Core::RakeTask.new(:spec)
30
+
31
+ desc "Code coverage detail"
32
+ task :simplecov do
33
+ ENV['COVERAGE'] = "true"
34
+ Rake::Task['spec'].execute
35
+ end
36
+
37
+ task :default => :spec
38
+
39
+ require 'rdoc/task'
40
+ Rake::RDocTask.new do |rdoc|
41
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
42
+
43
+ rdoc.rdoc_dir = 'rdoc'
44
+ rdoc.title = "delayed_job_azure #{version}"
45
+ rdoc.rdoc_files.include('README*')
46
+ rdoc.rdoc_files.include('lib/**/*.rb')
47
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,73 @@
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 = "delayed_job_azure"
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jordan Yaker", "Supportify, Inc."]
12
+ s.date = "2014-05-17"
13
+ s.description = "Azure Queue backend for delayed_job"
14
+ s.email = "help@supportify.io"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE.txt",
24
+ "README.md",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "delayed_job_azure.gemspec",
28
+ "lib/delayed/backend/actions.rb",
29
+ "lib/delayed/backend/azure.rb",
30
+ "lib/delayed/backend/azure_config.rb",
31
+ "lib/delayed/backend/version.rb",
32
+ "lib/delayed/backend/worker.rb",
33
+ "lib/delayed/serialization/azure.rb",
34
+ "lib/delayed_job_azure.rb",
35
+ "spec/.gitkeep"
36
+ ]
37
+ s.homepage = "http://github.com/supportify/delayed_job_azure"
38
+ s.licenses = ["BSD"]
39
+ s.require_paths = ["lib"]
40
+ s.rubygems_version = "2.0.6"
41
+ s.summary = "Azure Queue backend for delayed_job"
42
+
43
+ if s.respond_to? :specification_version then
44
+ s.specification_version = 4
45
+
46
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
+ s.add_runtime_dependency(%q<azure>, ["~> 0.6"])
48
+ s.add_runtime_dependency(%q<delayed_job>, ["~> 3.0.0"])
49
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
50
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
51
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
52
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
53
+ s.add_development_dependency(%q<rspec>, [">= 2.0"])
54
+ else
55
+ s.add_dependency(%q<azure>, ["~> 0.6"])
56
+ s.add_dependency(%q<delayed_job>, ["~> 3.0.0"])
57
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
58
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
59
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
60
+ s.add_dependency(%q<simplecov>, [">= 0"])
61
+ s.add_dependency(%q<rspec>, [">= 2.0"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<azure>, ["~> 0.6"])
65
+ s.add_dependency(%q<delayed_job>, ["~> 3.0.0"])
66
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
67
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
68
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
69
+ s.add_dependency(%q<simplecov>, [">= 0"])
70
+ s.add_dependency(%q<rspec>, [">= 2.0"])
71
+ end
72
+ end
73
+
@@ -0,0 +1,82 @@
1
+ module Delayed
2
+ module Backend
3
+ module Azure
4
+ module Actions
5
+ def field(name, options = {})
6
+ #type = options[:type] || String
7
+ default = options[:default] || nil
8
+ define_method name do
9
+ @attributes ||= {}
10
+ @attributes[name.to_sym] || default
11
+ end
12
+ define_method "#{name}=" do |value|
13
+ @attributes ||= {}
14
+ @attributes[name.to_sym] = value
15
+ end
16
+ end
17
+
18
+ def before_fork
19
+ end
20
+
21
+ def after_fork
22
+ end
23
+
24
+ def db_time_now
25
+ Time.now.utc
26
+ end
27
+
28
+ #def self.queue_name
29
+ # Delayed::Worker.queue_name
30
+ #end
31
+
32
+ def find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
33
+ Delayed::Worker.available_priorities.each do |priority|
34
+ unless queues.include? queue_name
35
+ azure.create_queue queue_name
36
+ queues << queue_name
37
+ end
38
+
39
+ message = azure.list_messages queue_name(priority), 0
40
+ return [Delayed::Backend::Azure::Job.new(message)] if message
41
+ end
42
+ []
43
+ end
44
+
45
+ def delete_all
46
+ deleted = 0
47
+ Delayed::Worker.available_priorities.each do |priority|
48
+ loop do
49
+ msgs = azure.list_messages queue_name(priority), 0,
50
+ number_of_messages: 1000
51
+
52
+ break if msgs.blank?
53
+ msgs.each do |msg|
54
+ azure.delete_message queue_name(priority), msg.id, msg.pop_receipt
55
+ deleted += 1
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+ # No need to check locks
62
+ def clear_locks!(*args)
63
+ true
64
+ end
65
+
66
+ private
67
+
68
+ def azure
69
+ ::Delayed::Worker.azure
70
+ end
71
+
72
+ def queues
73
+ ::Delayed::Worker.queues
74
+ end
75
+
76
+ def queue_name(priority)
77
+ "#{Delayed::Worker.queue_name}_#{priority || 0}"
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,135 @@
1
+
2
+ module Delayed
3
+ module Backend
4
+ module Azure
5
+ class Job
6
+ include ::DelayedJobAzure::Document
7
+ include Delayed::Backend::Base
8
+ extend Delayed::Backend::Azure::Actions
9
+
10
+ field :priority, :type => Integer, :default => 0
11
+ field :attempts, :type => Integer, :default => 0
12
+ field :handler, :type => String
13
+ field :run_at, :type => Time
14
+ field :locked_at, :type => Time
15
+ field :locked_by, :type => String
16
+ field :failed_at, :type => Time
17
+ field :last_error, :type => String
18
+ field :queue, :type => String
19
+
20
+ def initialize(data = {})
21
+ @msg = nil
22
+ if data.is_a?(::Azure::Queue::Message)
23
+ @msg = data
24
+ data = JSON.load(data.message_text)
25
+ end
26
+
27
+ data.symbolize_keys!
28
+ payload_obj = data.delete(:payload_object) || data.delete(:handler)
29
+
30
+ @queue_name = data[:queue_name] || Delayed::Worker.queue_name
31
+ @delay = data[:delay] || Delayed::Worker.delay
32
+ @timeout = data[:timeout] || Delayed::Worker.timeout
33
+ @expires_in = data[:expires_in] || Delayed::Worker.expires_in
34
+ @attributes = data
35
+ self.payload_object = payload_obj
36
+ end
37
+
38
+ def payload_object
39
+ @payload_object ||= YAML.load(self.handler)
40
+ rescue TypeError, LoadError, NameError, ArgumentError => e
41
+ raise DeserializationError,
42
+ "Job failed to load: #{e.message}. Handler: #{handler.inspect}"
43
+ end
44
+
45
+ def payload_object=(object)
46
+ if object.is_a? String
47
+ @payload_object = YAML.load(object)
48
+ self.handler = object
49
+ else
50
+ @payload_object = object
51
+ self.handler = object.to_yaml
52
+ end
53
+ end
54
+
55
+ def save
56
+ if @attributes[:handler].blank?
57
+ raise "Handler missing!"
58
+ end
59
+ payload = JSON.dump(@attributes)
60
+
61
+ destroy if @msg
62
+
63
+ unless queues.include? queue_name
64
+ azure.create_queue queue_name
65
+ queues << queue_name
66
+ end
67
+
68
+ azure.create_message queue_name, payload,
69
+ timeout: @timeout,
70
+ visibility_timeout: @delay,
71
+ message_ttl: @expires_in
72
+ true
73
+ end
74
+
75
+ def save!
76
+ save
77
+ end
78
+
79
+ def destroy
80
+ if id and pop_receipt
81
+ aure.delete_message(queue_name, id, pop_receipt)
82
+ end
83
+ end
84
+
85
+ def fail!
86
+ destroy
87
+ # v2: move to separate queue
88
+ end
89
+
90
+ def update_attributes(attributes)
91
+ attributes.symbolize_keys!
92
+ @attributes.merge attributes
93
+ save
94
+ end
95
+
96
+ # No need to check locks
97
+ def lock_exclusively!(*args)
98
+ true
99
+ end
100
+
101
+ # No need to check locks
102
+ def unlock(*args)
103
+ true
104
+ end
105
+
106
+ def reload(*args)
107
+ # reset
108
+ super
109
+ end
110
+
111
+ def id
112
+ @msg.id if @msg
113
+ end
114
+
115
+ def pop_receipt
116
+ @msg.pop_receipt if @msg
117
+ end
118
+
119
+ private
120
+
121
+ def queue_name
122
+ "#{@queue_name}_#{@attributes[:priority] || 0}"
123
+ end
124
+
125
+ def azure
126
+ ::Delayed::Worker.azure
127
+ end
128
+
129
+ def queues
130
+ ::Delayed::Worker.queues
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,5 @@
1
+ class AzureConfig
2
+ attr_accessor :token, :project_id,
3
+ :queue_name, :delay, :timeout,
4
+ :expires_in, :available_priorities
5
+ end
@@ -0,0 +1,11 @@
1
+ module Delayed
2
+ module Backend
3
+ module Azure
4
+ @@version = nil
5
+
6
+ def self.version
7
+ @@version ||= File.read(File.dirname(__FILE__) + '/../../../VERSION').strip
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,37 @@
1
+ require_relative 'azure_config'
2
+
3
+ module Delayed
4
+ class Worker
5
+ class << self
6
+ attr_accessor :config, :azure, :queues
7
+ :queue_name, :delay, :timeout, :expires_in, :available_priorities
8
+
9
+ def configure
10
+ yield(config)
11
+ self.queue_name = config.queue_name || 'default'
12
+ self.delay = config.delay || 0
13
+ self.timeout = config.timeout || 5.minutes
14
+ self.expires_in = config.expires_in || 7.days
15
+
16
+ priorities = config.available_priorities || [0]
17
+ if priorities.include?(0) && priorities.all? { |p| p.is_a?(Integer) }
18
+ self.available_priorities = priorities.sort
19
+ else
20
+ raise ArgumentError, "available_priorities option has wrong format. Please provide array of Integer values, includes zero. Default is [0]."
21
+ end
22
+ end
23
+
24
+ def config
25
+ @config ||= AzureConfig.new
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+
32
+ Delayed::Worker.azure = Azure::QueueService.new
33
+ Delayed::Worker.queues = Delayed::Worker.azure.list_queues
34
+ Delayed::Worker.queues.map! { |q| q.name }
35
+
36
+ # initialize with defaults
37
+ Delayed::Worker.configure {}
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+
3
+ module DelayedJobAzure
4
+ module Document
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require 'azure'
3
+ require 'delayed_job'
4
+
5
+ require_relative 'delayed/serialization/azure'
6
+ require_relative 'delayed/backend/actions'
7
+ require_relative 'delayed/backend/azure_config'
8
+ require_relative 'delayed/backend/worker'
9
+ require_relative 'delayed/backend/version'
10
+ require_relative 'delayed/backend/azure'
11
+
12
+ Delayed::Worker.backend = :azure
data/spec/.gitkeep ADDED
File without changes
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delayed_job_azure
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jordan Yaker
8
+ - Supportify, Inc.
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-05-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: azure
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '0.6'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: '0.6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: delayed_job
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 3.0.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: 3.0.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: rdoc
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '3.12'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: '3.12'
56
+ - !ruby/object:Gem::Dependency
57
+ name: bundler
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: jeweler
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 2.0.1
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: 2.0.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: simplecov
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rspec
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '2.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '2.0'
112
+ description: Azure Queue backend for delayed_job
113
+ email: help@supportify.io
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files:
117
+ - LICENSE.txt
118
+ - README.md
119
+ files:
120
+ - .document
121
+ - Gemfile
122
+ - Gemfile.lock
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - VERSION
127
+ - delayed_job_azure.gemspec
128
+ - lib/delayed/backend/actions.rb
129
+ - lib/delayed/backend/azure.rb
130
+ - lib/delayed/backend/azure_config.rb
131
+ - lib/delayed/backend/version.rb
132
+ - lib/delayed/backend/worker.rb
133
+ - lib/delayed/serialization/azure.rb
134
+ - lib/delayed_job_azure.rb
135
+ - spec/.gitkeep
136
+ homepage: http://github.com/supportify/delayed_job_azure
137
+ licenses:
138
+ - BSD
139
+ metadata: {}
140
+ post_install_message:
141
+ rdoc_options: []
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 2.0.6
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: Azure Queue backend for delayed_job
160
+ test_files: []