coney_island 0.11.0 → 0.11.1
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/coney_island.rb +5 -3
 - data/lib/coney_island/job.rb +8 -5
 - data/lib/coney_island/performer.rb +17 -6
 - data/lib/coney_island/submitter.rb +12 -9
 - data/lib/coney_island/version.rb +1 -1
 - data/test/dummy/log/test.log +38 -6
 - data/test/performer_test.rb +31 -0
 - data/test/submitter_test.rb +48 -1
 - data/test/test_helper.rb +0 -1
 - metadata +27 -27
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 9a2c8ec4f4899725ab76ece82b50bb13c9bfc1cb
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 4f2dc9c0ce8897c03f05f880f507d794fa87208c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0ef8d2beed8302ee04a4be2d0affacfb6e2803ff2eaaae1fd9802235daf6125ffc5f77271c42434b195afe09f10d362cf3a12e839e182863b0522d9f270e6dc3
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e9526c3ccf4ce3aa5e178d606db9d5679ddced9d21c35b55557435935614d3071b4bbcc1119ae1ec2dfa746d4ab2e2d4e7f5d62e3197f84a4bbb81f0ee653108
         
     | 
    
        data/lib/coney_island.rb
    CHANGED
    
    | 
         @@ -2,8 +2,6 @@ module ConeyIsland 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
              ### BEGIN configuration
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
              BG_TIMEOUT_SECONDS = 30
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
5 
     | 
    
         
             
              def self.amqp_connection
         
     | 
| 
       8 
6 
     | 
    
         
             
                @connection
         
     | 
| 
       9 
7 
     | 
    
         
             
              end
         
     | 
| 
         @@ -120,6 +118,10 @@ module ConeyIsland 
     | 
|
| 
       120 
118 
     | 
    
         
             
                end
         
     | 
| 
       121 
119 
     | 
    
         
             
              end
         
     | 
| 
       122 
120 
     | 
    
         | 
| 
      
 121 
     | 
    
         
            +
              def self.default_settings
         
     | 
| 
      
 122 
     | 
    
         
            +
                { work_queue: 'default', timeout: 30, delay: 0 }
         
     | 
| 
      
 123 
     | 
    
         
            +
              end
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
       123 
125 
     | 
    
         
             
            end
         
     | 
| 
       124 
126 
     | 
    
         | 
| 
       125 
127 
     | 
    
         
             
            require 'coney_island/notifiers/honeybadger_notifier'
         
     | 
| 
         @@ -128,4 +130,4 @@ require 'coney_island/job' 
     | 
|
| 
       128 
130 
     | 
    
         
             
            require 'coney_island/submitter'
         
     | 
| 
       129 
131 
     | 
    
         
             
            require 'coney_island/job_argument_error'
         
     | 
| 
       130 
132 
     | 
    
         
             
            require 'coney_island/railtie' if defined?(Rails)
         
     | 
| 
       131 
     | 
    
         
            -
            require 'coney_island/performer'
         
     | 
| 
      
 133 
     | 
    
         
            +
            require 'coney_island/performer'
         
     | 
    
        data/lib/coney_island/job.rb
    CHANGED
    
    | 
         @@ -22,11 +22,14 @@ module ConeyIsland 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  @retry_on_exception = args['retry_on_exception']
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                  @metadata = metadata
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                    @ 
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  if @klass.included_modules.include?(Performer)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    @delay   ||= @klass.get_coney_settings[:delay]
         
     | 
| 
      
 28 
     | 
    
         
            +
                    @timeout ||= @klass.get_coney_settings[:timeout]
         
     | 
| 
       28 
29 
     | 
    
         
             
                  end
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  @timeout ||= ConeyIsland.default_settings[:timeout]
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       30 
33 
     | 
    
         
             
                  if @instance_id.present?
         
     | 
| 
       31 
34 
     | 
    
         
             
                    @object = @klass.find(@instance_id)
         
     | 
| 
       32 
35 
     | 
    
         
             
                  elsif @singleton
         
     | 
| 
         @@ -107,4 +110,4 @@ module ConeyIsland 
     | 
|
| 
       107 
110 
     | 
    
         
             
                end
         
     | 
| 
       108 
111 
     | 
    
         | 
| 
       109 
112 
     | 
    
         
             
              end
         
     | 
| 
       110 
     | 
    
         
            -
            end
         
     | 
| 
      
 113 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -3,6 +3,8 @@ module ConeyIsland 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                def self.included(base)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  base.extend ClassMethods
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # http://apidock.com/rails/Class/class_attribute
         
     | 
| 
      
 7 
     | 
    
         
            +
                  base.class_attribute :coney_island_settings
         
     | 
| 
       6 
8 
     | 
    
         
             
                end
         
     | 
| 
       7 
9 
     | 
    
         | 
| 
       8 
10 
     | 
    
         
             
                def method_missing(method_name, *args)
         
     | 
| 
         @@ -21,16 +23,25 @@ module ConeyIsland 
     | 
|
| 
       21 
23 
     | 
    
         | 
| 
       22 
24 
     | 
    
         
             
                module ClassMethods
         
     | 
| 
       23 
25 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                   
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 26 
     | 
    
         
            +
                  # Sets inheritable class defaults for ConeyIsland.
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # Valid options:
         
     | 
| 
      
 28 
     | 
    
         
            +
                  #   :work_queue - use a named queue for this class.
         
     | 
| 
      
 29 
     | 
    
         
            +
                  #   :delay - Delay execution of the job on the worker. The delay value is
         
     | 
| 
      
 30 
     | 
    
         
            +
                  #     a number of seconds.
         
     | 
| 
      
 31 
     | 
    
         
            +
                  #   :timeout - Timeout the job with retry. The timeout value is a number
         
     | 
| 
      
 32 
     | 
    
         
            +
                  #     of seconds. By default ConeyIsland will retry 3 times before bailing
         
     | 
| 
      
 33 
     | 
    
         
            +
                  #     out.
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def set_background_defaults(options = {})
         
     | 
| 
      
 35 
     | 
    
         
            +
                    options = options.dup.symbolize_keys.slice(:work_queue, :delay, :timeout)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    self.coney_island_settings = get_coney_settings.merge(options)
         
     | 
| 
       28 
37 
     | 
    
         
             
                  end
         
     | 
| 
       29 
38 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                  def  
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
      
 39 
     | 
    
         
            +
                  def get_coney_settings
         
     | 
| 
      
 40 
     | 
    
         
            +
                    self.coney_island_settings ||= ConeyIsland.default_settings
         
     | 
| 
       32 
41 
     | 
    
         
             
                  end
         
     | 
| 
       33 
42 
     | 
    
         | 
| 
      
 43 
     | 
    
         
            +
                  protected
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       34 
45 
     | 
    
         
             
                  def method_missing(method_name, *args)
         
     | 
| 
       35 
46 
     | 
    
         
             
                    method_str = method_name.to_s
         
     | 
| 
       36 
47 
     | 
    
         
             
                    if method_str =~ /.*_async$/
         
     | 
| 
         @@ -115,19 +115,22 @@ module ConeyIsland 
     | 
|
| 
       115 
115 
     | 
    
         
             
                    job_args['klass'] = klass_name
         
     | 
| 
       116 
116 
     | 
    
         
             
                    job_args['method_name'] = method_name
         
     | 
| 
       117 
117 
     | 
    
         
             
                    job_args.stringify_keys!
         
     | 
| 
      
 118 
     | 
    
         
            +
                    # Extract non job args
         
     | 
| 
      
 119 
     | 
    
         
            +
                    delay      = job_args.delete 'delay'
         
     | 
| 
      
 120 
     | 
    
         
            +
                    work_queue = job_args.delete 'work_queue'
         
     | 
| 
      
 121 
     | 
    
         
            +
                    # Set class defaults if they exist
         
     | 
| 
      
 122 
     | 
    
         
            +
                    if klass.included_modules.include?(Performer)
         
     | 
| 
      
 123 
     | 
    
         
            +
                      delay      ||= klass.get_coney_settings[:delay]
         
     | 
| 
      
 124 
     | 
    
         
            +
                      work_queue ||= klass.get_coney_settings[:work_queue]
         
     | 
| 
      
 125 
     | 
    
         
            +
                    end
         
     | 
| 
      
 126 
     | 
    
         
            +
                    # Set our own defaults if we still don't have any
         
     | 
| 
      
 127 
     | 
    
         
            +
                    work_queue ||= ConeyIsland.default_settings[:work_queue]
         
     | 
| 
      
 128 
     | 
    
         
            +
                    delay      ||= ConeyIsland.default_settings[:delay]
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
       118 
130 
     | 
    
         
             
                    if @run_inline
         
     | 
| 
       119 
131 
     | 
    
         
             
                      job = ConeyIsland::Job.new(nil, job_args)
         
     | 
| 
       120 
132 
     | 
    
         
             
                      job.handle_job
         
     | 
| 
       121 
133 
     | 
    
         
             
                    else
         
     | 
| 
       122 
     | 
    
         
            -
                      work_queue = job_args.delete 'work_queue'
         
     | 
| 
       123 
     | 
    
         
            -
                      if klass.respond_to? :coney_island_settings
         
     | 
| 
       124 
     | 
    
         
            -
                        work_queue ||= klass.coney_island_settings[:work_queue]
         
     | 
| 
       125 
     | 
    
         
            -
                      end
         
     | 
| 
       126 
     | 
    
         
            -
                      work_queue ||= 'default'
         
     | 
| 
       127 
     | 
    
         
            -
                      delay = job_args['delay']
         
     | 
| 
       128 
     | 
    
         
            -
                      if klass.respond_to? :coney_island_settings
         
     | 
| 
       129 
     | 
    
         
            -
                        delay ||= klass.coney_island_settings[:delay]
         
     | 
| 
       130 
     | 
    
         
            -
                      end
         
     | 
| 
       131 
134 
     | 
    
         
             
                      if delay && delay.to_i > 0
         
     | 
| 
       132 
135 
     | 
    
         
             
                        @delay_queue[work_queue] ||= {}
         
     | 
| 
       133 
136 
     | 
    
         
             
                        unless @delay_queue[work_queue][delay].present?
         
     | 
    
        data/lib/coney_island/version.rb
    CHANGED
    
    
    
        data/test/dummy/log/test.log
    CHANGED
    
    | 
         @@ -1,32 +1,64 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            undefined method `pry' for #<Binding:0x007f08a9ff6dc0>
         
     | 
| 
      
 2 
     | 
    
         
            +
            undefined method `pry' for #<Binding:0x007f08a9fd5120>
         
     | 
| 
      
 3 
     | 
    
         
            +
            undefined method `pry' for #<Binding:0x007f08a9fb4bf0>
         
     | 
| 
       1 
4 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       2 
5 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       3 
6 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       4 
7 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 8 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 9 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 10 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 11 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 12 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 13 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 14 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 15 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 16 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 17 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 18 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 19 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 20 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       5 
21 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 22 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 23 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       6 
24 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       7 
25 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 26 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       8 
27 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 28 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       9 
29 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 30 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 31 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       10 
32 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       11 
33 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       12 
34 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
      
 35 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 36 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 37 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       15 
38 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       16 
39 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            undefined method `[]' for nil:NilClass
         
     | 
| 
       19 
     | 
    
         
            -
            undefined method `[]' for nil:NilClass
         
     | 
| 
      
 40 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       20 
41 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       21 
42 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 44 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
      
 45 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
       23 
46 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       24 
47 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
      
 48 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
      
 49 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
      
 50 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
      
 51 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
       25 
52 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       26 
53 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 54 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
      
 55 
     | 
    
         
            +
            undefined method `publish' for nil:NilClass
         
     | 
| 
       27 
56 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       28 
57 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 58 
     | 
    
         
            +
            mocked method :publish called with unexpected arguments ["{\"args\":[[]],\"klass\":\"TestModel\",\"method_name\":\"add_to_list\"}", {:routing_key=>"carousels.default"}]
         
     | 
| 
      
 59 
     | 
    
         
            +
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       29 
60 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       30 
61 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
      
 62 
     | 
    
         
            +
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
| 
       31 
63 
     | 
    
         
             
            ConeyIsland::Submitter.submit! about to iterate over this many jobs: 1
         
     | 
| 
       32 
64 
     | 
    
         
             
            Failed to connecto to RabbitMQ Attempt #1 time(s), trying again in 0 seconds...
         
     | 
    
        data/test/performer_test.rb
    CHANGED
    
    | 
         @@ -50,6 +50,34 @@ class PerformerTest < MiniTest::Test 
     | 
|
| 
       50 
50 
     | 
    
         
             
                  @exchange.verify
         
     | 
| 
       51 
51 
     | 
    
         
             
                  ::PerformerTest.messages[:publish_hash][:routing_key].must_equal "carousels.boardwalk"
         
     | 
| 
       52 
52 
     | 
    
         
             
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                it "inherits settings from a base class" do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @exchange = Minitest::Mock.new
         
     | 
| 
      
 56 
     | 
    
         
            +
                  def @exchange.publish(payload,options,&blk)
         
     | 
| 
      
 57 
     | 
    
         
            +
                    ::PerformerTest.messages[:publish_hash] = options
         
     | 
| 
      
 58 
     | 
    
         
            +
                  end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  ConeyIsland::Submitter.stub(:handle_connection, nil) do
         
     | 
| 
      
 60 
     | 
    
         
            +
                    ConeyIsland::Submitter.stub(:exchange, @exchange) do
         
     | 
| 
      
 61 
     | 
    
         
            +
                      ConeyIsland::Submitter.stop_running_inline
         
     | 
| 
      
 62 
     | 
    
         
            +
                      ConeyIsland::Submitter.submit(MyInheritedPerformer, :perform, args: [], delay: 0)
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
      
 64 
     | 
    
         
            +
                  end
         
     | 
| 
      
 65 
     | 
    
         
            +
                  @exchange.verify
         
     | 
| 
      
 66 
     | 
    
         
            +
                  ::PerformerTest.messages[:publish_hash][:routing_key].must_equal "carousels.this-other-queue"
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
              end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
              describe "#get_coney_settings" do
         
     | 
| 
      
 71 
     | 
    
         
            +
                it "inherits from the defaults" do
         
     | 
| 
      
 72 
     | 
    
         
            +
                  MySingleton.get_coney_settings.must_equal ConeyIsland.default_settings
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                it "is inheritable by subclasses" do
         
     | 
| 
      
 76 
     | 
    
         
            +
                  MyInheritedPerformer.get_coney_settings[:work_queue].must_equal 'this-other-queue'
         
     | 
| 
      
 77 
     | 
    
         
            +
                  # These come from the base class
         
     | 
| 
      
 78 
     | 
    
         
            +
                  MyInheritedPerformer.get_coney_settings[:timeout].must_equal 5
         
     | 
| 
      
 79 
     | 
    
         
            +
                  MyInheritedPerformer.get_coney_settings[:delay].must_equal 1
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
       53 
81 
     | 
    
         
             
              end
         
     | 
| 
       54 
82 
     | 
    
         | 
| 
       55 
83 
     | 
    
         
             
              describe 'async methods' do
         
     | 
| 
         @@ -122,3 +150,6 @@ class MyPerformer 
     | 
|
| 
       122 
150 
     | 
    
         
             
              end
         
     | 
| 
       123 
151 
     | 
    
         
             
            end
         
     | 
| 
       124 
152 
     | 
    
         | 
| 
      
 153 
     | 
    
         
            +
            class MyInheritedPerformer < MyPerformer
         
     | 
| 
      
 154 
     | 
    
         
            +
              set_background_defaults work_queue: "this-other-queue"
         
     | 
| 
      
 155 
     | 
    
         
            +
            end
         
     | 
    
        data/test/submitter_test.rb
    CHANGED
    
    | 
         @@ -33,5 +33,52 @@ class SubmitterTest < MiniTest::Test 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    end
         
     | 
| 
       34 
34 
     | 
    
         
             
                  end
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                def setup_mock(klass, method, args, expected_work_queue, work_queue=nil)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  exchange = Minitest::Mock.new
         
     | 
| 
      
 39 
     | 
    
         
            +
                  options = { args: args }
         
     | 
| 
      
 40 
     | 
    
         
            +
                  options.merge! work_queue: work_queue if work_queue
         
     | 
| 
      
 41 
     | 
    
         
            +
                  exchange.expect :publish, nil, [String,{routing_key: "carousels.#{expected_work_queue}"}]
         
     | 
| 
      
 42 
     | 
    
         
            +
                  ConeyIsland::Submitter.stub(:handle_connection, nil) do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    ConeyIsland::Submitter.stub(:exchange, exchange) do
         
     | 
| 
      
 44 
     | 
    
         
            +
                      ConeyIsland::Submitter.stop_running_inline
         
     | 
| 
      
 45 
     | 
    
         
            +
                      ConeyIsland::Submitter.submit(klass, method, options)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                  exchange
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                describe '.submit' do
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                  it "is aware of default_settings" do
         
     | 
| 
      
 54 
     | 
    
         
            +
                    @exchange = setup_mock TestModel, :add_to_list, [[]], ConeyIsland.default_settings[:work_queue]
         
     | 
| 
      
 55 
     | 
    
         
            +
                    @exchange.verify
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  it "overrides defaults if passed in the args" do
         
     | 
| 
      
 59 
     | 
    
         
            +
                    @exchange = setup_mock TestModel, :add_to_list, [[]], 'my-queue', 'my-queue'
         
     | 
| 
      
 60 
     | 
    
         
            +
                    @exchange.verify
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                describe "when submitting a performer" do
         
     | 
| 
      
 65 
     | 
    
         
            +
                  it "inherits the settings from the performer set_background_defaults" do
         
     | 
| 
      
 66 
     | 
    
         
            +
                    @exchange = setup_mock DummyPerformer, :perform, nil, 'foo'
         
     | 
| 
      
 67 
     | 
    
         
            +
                    @exchange.verify
         
     | 
| 
      
 68 
     | 
    
         
            +
                  end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  it "still allows overriding the set_background_defaults" do
         
     | 
| 
      
 71 
     | 
    
         
            +
                    @exchange = setup_mock DummyPerformer, :perform, nil, 'bar', 'bar'
         
     | 
| 
      
 72 
     | 
    
         
            +
                    @exchange.verify
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
       36 
76 
     | 
    
         
             
              end
         
     | 
| 
       37 
     | 
    
         
            -
            end
         
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            class DummyPerformer
         
     | 
| 
      
 80 
     | 
    
         
            +
              include ConeyIsland::Performer
         
     | 
| 
      
 81 
     | 
    
         
            +
              set_background_defaults work_queue: 'foo'
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
              def perform; end
         
     | 
| 
      
 84 
     | 
    
         
            +
            end
         
     | 
    
        data/test/test_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: coney_island
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.11. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.11.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Eric Draut
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2015-05-05 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -180,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       180 
180 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       181 
181 
     | 
    
         
             
            requirements: []
         
     | 
| 
       182 
182 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       183 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 183 
     | 
    
         
            +
            rubygems_version: 2.2.2
         
     | 
| 
       184 
184 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       185 
185 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       186 
186 
     | 
    
         
             
            summary: Want guaranteed delivery between your queue and your workers using ACKs?
         
     | 
| 
         @@ -188,44 +188,44 @@ summary: Want guaranteed delivery between your queue and your workers using ACKs 
     | 
|
| 
       188 
188 
     | 
    
         
             
              features other background worker systems offer and you must have a ticket to ride
         
     | 
| 
       189 
189 
     | 
    
         
             
              at Coney Island.
         
     | 
| 
       190 
190 
     | 
    
         
             
            test_files:
         
     | 
| 
       191 
     | 
    
         
            -
            - test/coney_island_test.rb
         
     | 
| 
       192 
     | 
    
         
            -
            - test/dummy/app/assets/javascripts/application.js
         
     | 
| 
       193 
191 
     | 
    
         
             
            - test/dummy/app/assets/stylesheets/application.css
         
     | 
| 
      
 192 
     | 
    
         
            +
            - test/dummy/app/assets/javascripts/application.js
         
     | 
| 
       194 
193 
     | 
    
         
             
            - test/dummy/app/controllers/application_controller.rb
         
     | 
| 
       195 
194 
     | 
    
         
             
            - test/dummy/app/helpers/application_helper.rb
         
     | 
| 
       196 
195 
     | 
    
         
             
            - test/dummy/app/views/layouts/application.html.erb
         
     | 
| 
       197 
     | 
    
         
            -
            - test/dummy/bin/bundle
         
     | 
| 
       198 
     | 
    
         
            -
            - test/dummy/bin/rails
         
     | 
| 
       199 
     | 
    
         
            -
            - test/dummy/bin/rake
         
     | 
| 
       200 
     | 
    
         
            -
            - test/dummy/config/application.rb
         
     | 
| 
       201 
     | 
    
         
            -
            - test/dummy/config/boot.rb
         
     | 
| 
       202 
196 
     | 
    
         
             
            - test/dummy/config/database.yml
         
     | 
| 
       203 
     | 
    
         
            -
            - test/dummy/config/ 
     | 
| 
       204 
     | 
    
         
            -
            - test/dummy/config/ 
     | 
| 
       205 
     | 
    
         
            -
            - test/dummy/config/environments/production.rb
         
     | 
| 
       206 
     | 
    
         
            -
            - test/dummy/config/environments/test.rb
         
     | 
| 
       207 
     | 
    
         
            -
            - test/dummy/config/initializers/assets.rb
         
     | 
| 
      
 197 
     | 
    
         
            +
            - test/dummy/config/routes.rb
         
     | 
| 
      
 198 
     | 
    
         
            +
            - test/dummy/config/secrets.yml
         
     | 
| 
       208 
199 
     | 
    
         
             
            - test/dummy/config/initializers/backtrace_silencers.rb
         
     | 
| 
       209 
     | 
    
         
            -
            - test/dummy/config/initializers/cookies_serializer.rb
         
     | 
| 
       210 
     | 
    
         
            -
            - test/dummy/config/initializers/filter_parameter_logging.rb
         
     | 
| 
       211 
     | 
    
         
            -
            - test/dummy/config/initializers/inflections.rb
         
     | 
| 
       212 
200 
     | 
    
         
             
            - test/dummy/config/initializers/mime_types.rb
         
     | 
| 
      
 201 
     | 
    
         
            +
            - test/dummy/config/initializers/inflections.rb
         
     | 
| 
      
 202 
     | 
    
         
            +
            - test/dummy/config/initializers/assets.rb
         
     | 
| 
       213 
203 
     | 
    
         
             
            - test/dummy/config/initializers/session_store.rb
         
     | 
| 
      
 204 
     | 
    
         
            +
            - test/dummy/config/initializers/cookies_serializer.rb
         
     | 
| 
       214 
205 
     | 
    
         
             
            - test/dummy/config/initializers/wrap_parameters.rb
         
     | 
| 
      
 206 
     | 
    
         
            +
            - test/dummy/config/initializers/filter_parameter_logging.rb
         
     | 
| 
      
 207 
     | 
    
         
            +
            - test/dummy/config/application.rb
         
     | 
| 
       215 
208 
     | 
    
         
             
            - test/dummy/config/locales/en.yml
         
     | 
| 
       216 
     | 
    
         
            -
            - test/dummy/config/ 
     | 
| 
       217 
     | 
    
         
            -
            - test/dummy/config/ 
     | 
| 
       218 
     | 
    
         
            -
            - test/dummy/config. 
     | 
| 
       219 
     | 
    
         
            -
            - test/dummy/ 
     | 
| 
       220 
     | 
    
         
            -
            - test/dummy/ 
     | 
| 
      
 209 
     | 
    
         
            +
            - test/dummy/config/environment.rb
         
     | 
| 
      
 210 
     | 
    
         
            +
            - test/dummy/config/environments/production.rb
         
     | 
| 
      
 211 
     | 
    
         
            +
            - test/dummy/config/environments/development.rb
         
     | 
| 
      
 212 
     | 
    
         
            +
            - test/dummy/config/environments/test.rb
         
     | 
| 
      
 213 
     | 
    
         
            +
            - test/dummy/config/boot.rb
         
     | 
| 
       221 
214 
     | 
    
         
             
            - test/dummy/public/404.html
         
     | 
| 
       222 
215 
     | 
    
         
             
            - test/dummy/public/422.html
         
     | 
| 
       223 
     | 
    
         
            -
            - test/dummy/public/500.html
         
     | 
| 
       224 
216 
     | 
    
         
             
            - test/dummy/public/favicon.ico
         
     | 
| 
       225 
     | 
    
         
            -
            - test/dummy/ 
     | 
| 
      
 217 
     | 
    
         
            +
            - test/dummy/public/500.html
         
     | 
| 
      
 218 
     | 
    
         
            +
            - test/dummy/db/test.sqlite3
         
     | 
| 
       226 
219 
     | 
    
         
             
            - test/dummy/README.rdoc
         
     | 
| 
       227 
     | 
    
         
            -
            - test/ 
     | 
| 
       228 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 220 
     | 
    
         
            +
            - test/dummy/bin/rails
         
     | 
| 
      
 221 
     | 
    
         
            +
            - test/dummy/bin/rake
         
     | 
| 
      
 222 
     | 
    
         
            +
            - test/dummy/bin/bundle
         
     | 
| 
      
 223 
     | 
    
         
            +
            - test/dummy/config.ru
         
     | 
| 
      
 224 
     | 
    
         
            +
            - test/dummy/log/test.log
         
     | 
| 
      
 225 
     | 
    
         
            +
            - test/dummy/Rakefile
         
     | 
| 
       229 
226 
     | 
    
         
             
            - test/submitter_test.rb
         
     | 
| 
      
 227 
     | 
    
         
            +
            - test/job_test.rb
         
     | 
| 
       230 
228 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       231 
229 
     | 
    
         
             
            - test/worker_test.rb
         
     | 
| 
      
 230 
     | 
    
         
            +
            - test/performer_test.rb
         
     | 
| 
      
 231 
     | 
    
         
            +
            - test/coney_island_test.rb
         
     |