refried 0.0.5.pre.dev → 0.0.6.pre.dev
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/refried/configuration.rb +1 -1
- data/lib/refried/getter.rb +81 -0
- data/lib/refried/puter.rb +29 -12
- data/lib/refried/refried.rb +35 -0
- data/lib/refried/tubes.rb +1 -1
- data/lib/refried.rb +2 -0
- metadata +21 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32da19cb6dd29440bed29e7a4eb4256207874d8d
|
4
|
+
data.tar.gz: 074da41f77a0ab869fe3d6dedb7c8bd4973da480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19af51adafa57958020facdd6a4170c47449cb2faf4aa9fc13d17403bbe5e886b9779730fe3dec86cd6fab5fe56ef0a66bd08c02e01fb260e1ce7d7f72958b2b
|
7
|
+
data.tar.gz: c56e3772ec6dafe821a23ba956dfa44585ca818ee6f3a552b6eb8ed897601167f9ca14845ffa583f11b78060381c3dfd18e3f39876153c74427518fd024d84a6
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'beaneater'
|
2
|
+
|
3
|
+
module Refried
|
4
|
+
module Getter
|
5
|
+
module ActsAsGetter
|
6
|
+
def acts_as_getter
|
7
|
+
send :include, InstanceMethods
|
8
|
+
send :extend, ClassMethods
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
SUPPORTED_MODES = [:tube_name]
|
14
|
+
# Set the mode of function that the Getter should follow
|
15
|
+
#
|
16
|
+
# @param mode [Symbol] which mapping mode the getter uses, `:tube_name`
|
17
|
+
def getter_mode=(mode)
|
18
|
+
unless SUPPORTED_MODES.include? mode
|
19
|
+
raise ArgumentError, "Unsupported mode for acts_as_getter."
|
20
|
+
end
|
21
|
+
@getter_mode = mode
|
22
|
+
end
|
23
|
+
alias_method :get_mode, :getter_mode=
|
24
|
+
# Get the current mapping mode of the Getter
|
25
|
+
#
|
26
|
+
# @return [Symbol] the current mapping mode of the getter
|
27
|
+
def getter_mode
|
28
|
+
@getter_mode ||= :tube_name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module InstanceMethods
|
33
|
+
# Get the currently registered tube name
|
34
|
+
#
|
35
|
+
# @return [Symbol] the tube name
|
36
|
+
def getter_tube_name
|
37
|
+
@getter_tube_name ||= nil
|
38
|
+
end
|
39
|
+
alias_method :tube_name, :getter_tube_name
|
40
|
+
|
41
|
+
# Set the tube name - this only has an impact when using the :tube_name getter mode
|
42
|
+
#
|
43
|
+
# @param tube_name [Symbol] the value to set the tube name
|
44
|
+
def getter_tube_name=(tube_name)
|
45
|
+
@getter_tube_name = tube_name
|
46
|
+
end
|
47
|
+
alias_method :tube_name=, :getter_tube_name=
|
48
|
+
|
49
|
+
# Get a the next job from the tube
|
50
|
+
#
|
51
|
+
# @return [Beanstalk::Job] the next job from the tube
|
52
|
+
def get
|
53
|
+
tube = ::Refried.tubes.find self.getter_tube_name.to_s
|
54
|
+
tube.reserve
|
55
|
+
end
|
56
|
+
|
57
|
+
protected
|
58
|
+
def locatable? (selectors = {})
|
59
|
+
case self.class.getter_mode
|
60
|
+
when :tube_name
|
61
|
+
true
|
62
|
+
else
|
63
|
+
false
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def attempt_to_log (message)
|
68
|
+
begin
|
69
|
+
logger.info message
|
70
|
+
rescue => e
|
71
|
+
#puts "Failed to access logger, message that should have been logged = #{message}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.included(base)
|
77
|
+
base.extend(ActsAsGetter)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
Object.instance_eval { include Getter }
|
81
|
+
end
|
data/lib/refried/puter.rb
CHANGED
@@ -10,18 +10,17 @@ module Refried
|
|
10
10
|
end
|
11
11
|
|
12
12
|
module ClassMethods
|
13
|
-
SUPPORTED_MODES = [:simple, :type_map, :alias_map]
|
14
|
-
|
13
|
+
SUPPORTED_MODES = [:simple, :tube_name, :type_map, :alias_map]
|
15
14
|
# Set the mode of function that the Puter should follow
|
16
15
|
#
|
17
|
-
# @param mode [Symbol] which mapping mode the puter uses, `:simple`, `:type_map
|
16
|
+
# @param mode [Symbol] which mapping mode the puter uses, `:simple`, `:type_map`, `:alias_map`, or `:tube_name`
|
18
17
|
def puter_mode=(mode)
|
19
18
|
unless SUPPORTED_MODES.include? mode
|
20
19
|
raise ArgumentError, "Unsupported mode for acts as puter."
|
21
20
|
end
|
22
21
|
@puter_mode = mode
|
23
22
|
end
|
24
|
-
|
23
|
+
alias_method :put_mode, :puter_mode=
|
25
24
|
# Get the current mapping mode of the Puter
|
26
25
|
#
|
27
26
|
# @return [Symbol] the current mapping mode of the Puter
|
@@ -67,16 +66,15 @@ module Refried
|
|
67
66
|
raise ArgumentError, "Selectors to #tube were unexpected for current puter_mode; alias_map = #{a_map}; puter mode = #{self.class.puter_mode}; selectors = #{selectors}"
|
68
67
|
end
|
69
68
|
case self.class.puter_mode
|
70
|
-
when :simple
|
71
|
-
tube_name = self.class.to_s.downcase
|
72
69
|
when :alias_map
|
73
|
-
|
74
|
-
|
70
|
+
tube_name = self.puter_tube_name selectors
|
71
|
+
when :simple, :tube_name
|
72
|
+
tube_name = self.puter_tube_name
|
75
73
|
else
|
76
74
|
raise ArgumentError, 'Invalid puter mode detected in the #tube method.'
|
77
75
|
end
|
78
76
|
tube_name ||= nil
|
79
|
-
tube ||= Refried.tubes.find tube_name
|
77
|
+
tube ||= ::Refried.tubes.find tube_name.to_s
|
80
78
|
end
|
81
79
|
|
82
80
|
# This method converts the payload object into a format for injection
|
@@ -101,11 +99,30 @@ module Refried
|
|
101
99
|
end
|
102
100
|
end
|
103
101
|
|
102
|
+
# Get the currently registered tube name
|
103
|
+
#
|
104
|
+
# @param selectors [Hash] this argument is passed in to specify mappings when using the :alias_map puter mode
|
105
|
+
# @return [Symbol] the tube name
|
106
|
+
def puter_tube_name(selectors = {})
|
107
|
+
@puter_tube_name = self.class.to_s.downcase.to_sym if self.class.puter_mode == :simple
|
108
|
+
@puter_tube_name = self.alias_map[selectors[:alias]].to_sym if self.class.puter_mode == :alias_map
|
109
|
+
@puter_tube_name ||= nil
|
110
|
+
end
|
111
|
+
alias_method :tube_name, :puter_tube_name
|
112
|
+
|
113
|
+
# Set the tube name - this only has an impact when using the :tube_name puter mode
|
114
|
+
#
|
115
|
+
# @param tube_name [Symbol] the value to set the tube name
|
116
|
+
def puter_tube_name=(tube_name)
|
117
|
+
@puter_tube_name = tube_name
|
118
|
+
end
|
119
|
+
alias_method :tube_name=, :puter_tube_name=
|
120
|
+
|
104
121
|
protected
|
105
122
|
def locatable? (selectors = {})
|
106
123
|
case self.class.puter_mode
|
107
|
-
when :simple
|
108
|
-
|
124
|
+
when :simple, :tube_name
|
125
|
+
true
|
109
126
|
when :alias_map
|
110
127
|
if selectors.is_a? Hash
|
111
128
|
l = selectors.has_key?(:alias) && selectors[:alias].is_a?(Symbol) && self.alias_map.has_key?(selectors[:alias])
|
@@ -120,7 +137,7 @@ module Refried
|
|
120
137
|
begin
|
121
138
|
logger.info message
|
122
139
|
rescue => e
|
123
|
-
puts "Failed to access logger, message that should have been logged = #{message}"
|
140
|
+
#puts "Failed to access logger, message that should have been logged = #{message}"
|
124
141
|
end
|
125
142
|
end
|
126
143
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative 'getter'
|
2
|
+
require_relative 'puter'
|
3
|
+
|
4
|
+
module Refried
|
5
|
+
module Refried
|
6
|
+
module ActsAsRefried
|
7
|
+
def acts_as_refried
|
8
|
+
send :include, InstanceMethods
|
9
|
+
send :include, Getter::InstanceMethods
|
10
|
+
send :include, Puter::InstanceMethods
|
11
|
+
send :extend, ClassMethods
|
12
|
+
send :extend, Getter::ClassMethods
|
13
|
+
send :extend, Puter::ClassMethods
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module ClassMethods
|
18
|
+
end
|
19
|
+
|
20
|
+
module InstanceMethods
|
21
|
+
def tube_name
|
22
|
+
raise NoMethodError, "The method #tube_name is not defined."
|
23
|
+
end
|
24
|
+
|
25
|
+
def tube_name=(tube_name)
|
26
|
+
raise NoMethodError, "The method #tube_name= is not defined."
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.included(base)
|
31
|
+
base.extend(ActsAsRefried)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
Object.instance_eval { include Refried }
|
35
|
+
end
|
data/lib/refried/tubes.rb
CHANGED
data/lib/refried.rb
CHANGED
@@ -2,6 +2,8 @@ require 'beaneater'
|
|
2
2
|
require 'refried/configuration'
|
3
3
|
require 'refried/tubes'
|
4
4
|
require 'refried/puter'
|
5
|
+
require 'refried/getter'
|
6
|
+
require 'refried/refried'
|
5
7
|
|
6
8
|
# Refried core API methods
|
7
9
|
# based in part on the design of backburner (https://github.com/nesquena/backburner MIT license)
|
metadata
CHANGED
@@ -1,61 +1,65 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refried
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6.pre.dev
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Courtland Caldwell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: beaneater
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.3'
|
20
|
-
- -
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.3.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0.3'
|
30
|
-
- -
|
30
|
+
- - '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.3.3
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: simplecov
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ~>
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0.9'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0.9'
|
47
|
-
description:
|
48
|
-
|
47
|
+
description: Provides acts_as_ mixins for adding Beanstalk tube functionality to your
|
48
|
+
existing Ruby objects.
|
49
|
+
email: courtland@mattermark.com
|
49
50
|
executables: []
|
50
51
|
extensions: []
|
51
52
|
extra_rdoc_files: []
|
52
53
|
files:
|
53
54
|
- lib/refried.rb
|
54
55
|
- lib/refried/configuration.rb
|
56
|
+
- lib/refried/getter.rb
|
55
57
|
- lib/refried/puter.rb
|
58
|
+
- lib/refried/refried.rb
|
56
59
|
- lib/refried/tubes.rb
|
57
|
-
homepage:
|
58
|
-
licenses:
|
60
|
+
homepage: https://github.com/caldwecr/refried
|
61
|
+
licenses:
|
62
|
+
- MIT
|
59
63
|
metadata: {}
|
60
64
|
post_install_message:
|
61
65
|
rdoc_options: []
|
@@ -63,19 +67,19 @@ require_paths:
|
|
63
67
|
- lib
|
64
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
65
69
|
requirements:
|
66
|
-
- -
|
70
|
+
- - '>='
|
67
71
|
- !ruby/object:Gem::Version
|
68
72
|
version: '0'
|
69
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
74
|
requirements:
|
71
|
-
- -
|
75
|
+
- - '>'
|
72
76
|
- !ruby/object:Gem::Version
|
73
77
|
version: 1.3.1
|
74
78
|
requirements: []
|
75
79
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.
|
80
|
+
rubygems_version: 2.4.2
|
77
81
|
signing_key:
|
78
82
|
specification_version: 4
|
79
|
-
summary: Beanstalk
|
83
|
+
summary: Make Ruby objects behave like Beanstalk tubes
|
80
84
|
test_files: []
|
81
85
|
has_rdoc:
|