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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8799bfe6570b31be742dafb284546e428e1267d5
4
- data.tar.gz: d996ad67b54062904e4e70ad205d17acfdd2bf48
3
+ metadata.gz: 32da19cb6dd29440bed29e7a4eb4256207874d8d
4
+ data.tar.gz: 074da41f77a0ab869fe3d6dedb7c8bd4973da480
5
5
  SHA512:
6
- metadata.gz: 41495916c3301dfdb80574507f502dd86a7e6bd946e4a6db990e80d3430a56a957552b037f4415549027365002f33a96882a345a6cfc24d89d08281b1a021604
7
- data.tar.gz: 46e01dd61cb9e16769cc09afc16e1cd7892e500af35dfb538f6af58376608c4d15f7a95c5131c80e35e70c751a2d2d6a4b4167762118db353f703adb32f2a816
6
+ metadata.gz: 19af51adafa57958020facdd6a4170c47449cb2faf4aa9fc13d17403bbe5e886b9779730fe3dec86cd6fab5fe56ef0a66bd08c02e01fb260e1ce7d7f72958b2b
7
+ data.tar.gz: c56e3772ec6dafe821a23ba956dfa44585ca818ee6f3a552b6eb8ed897601167f9ca14845ffa583f11b78060381c3dfd18e3f39876153c74427518fd024d84a6
@@ -7,7 +7,7 @@ module Refried
7
7
  attr_accessor :beanstalk_url # beanstalk url connection
8
8
 
9
9
  def initialize
10
- @beanstalk_url = ["localhost"]
10
+ @beanstalk_url = "localhost"
11
11
  end
12
12
  end # Configuration
13
13
  end # Refried
@@ -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` or `:alias_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
- tube_alias = selectors[:alias]
74
- tube_name = self.alias_map[tube_alias]
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
- selectors.nil? || selectors.is_a?(Hash) && selectors.count == 0
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
@@ -2,7 +2,7 @@ module Refried
2
2
  class Tubes
3
3
  # TODO: connect to configuration
4
4
  def initialize
5
- @pool ||= Beaneater::Pool.new(Refried.configuration.beanstalk_url)
5
+ @pool ||= Beaneater::Pool.new(::Refried.configuration.beanstalk_url)
6
6
  @tubes = @pool.tubes
7
7
  end
8
8
 
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.5.pre.dev
4
+ version: 0.0.6.pre.dev
5
5
  platform: ruby
6
6
  authors:
7
- - caldwecr
7
+ - Courtland Caldwell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-23 00:00:00.000000000 Z
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: An enhancement
48
- email: caldwecr@gmail.com
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: http://rubygems.org/gems/refried
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.2.2
80
+ rubygems_version: 2.4.2
77
81
  signing_key:
78
82
  specification_version: 4
79
- summary: Beanstalk Client
83
+ summary: Make Ruby objects behave like Beanstalk tubes
80
84
  test_files: []
81
85
  has_rdoc: