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 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: