refried 0.0.5.pre.dev → 0.0.6.pre.dev
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 +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:
|