qpush 0.1.6 → 0.1.7

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: 30fcd80a97393fd4b5d20192e0f90b6b44865eb8
4
- data.tar.gz: fd5f9ac7220513fb70bd722725e5c7e72fa2ceb3
3
+ metadata.gz: 4dd90aa194184f401041a0aacdd7f9a2d63615b2
4
+ data.tar.gz: e4215be59cbe6de524c3b29f9afed23be68c70a5
5
5
  SHA512:
6
- metadata.gz: f3c877c1e9e2412d7529d414f6c3282c560ef40f016ea4b293d54cc3485acd6921c980bf92fd1a4e4f8a07278bbe2406fafa18080c39847956164e8f412863e4
7
- data.tar.gz: 9fd65ca2be6e3d24641781a02f04d4c53fba13890430d24286a7383e71a55a78c9ee8ba9bd0111aa5f2a76809cce065d280f0df9577af38303af45941a90b797
6
+ metadata.gz: 30432e4910a60a4d82acfec8ba806ba8b1671ac9de0bdad3feff9fb573e87417a90182f51325c1994befb35f6bf709b179e6b2d4ee846088d2c285c8c6238180
7
+ data.tar.gz: 19de3dfc8b141ce765894b0614994a5db361b268d566e96696373f6223a4e9590a53bcbddea94e04109ec03328f6319e62e4a69461416d1485df3e35c54156da
data/.codeclimate.yml ADDED
@@ -0,0 +1,26 @@
1
+ engines:
2
+ rubocop:
3
+ enabled: true
4
+ checks:
5
+ Rubocop/Metrics/ClassLength:
6
+ enabled: false
7
+ golint:
8
+ enabled: true
9
+ eslint:
10
+ enabled: true
11
+ csslint:
12
+ enabled: true
13
+ duplication:
14
+ enabled: true
15
+ config:
16
+ languages:
17
+ - ruby
18
+ #mass_threshold: 30
19
+ ratings:
20
+ paths:
21
+ - lib/**
22
+ - "**.rb"
23
+ exclude_paths:
24
+ - lib/qpush/web/public/**/*
25
+ - lib/qpush/server/queue.rb
26
+ - test/**/*
data/README.md CHANGED
@@ -21,7 +21,7 @@ And then execute:
21
21
 
22
22
  Or install it yourself as:
23
23
 
24
- $ gem install job_que
24
+ $ gem install qpush
25
25
 
26
26
  ## Usage
27
27
 
@@ -1,12 +1,14 @@
1
1
  module QPush
2
2
  module Server
3
3
  module JobRegister
4
- def included(base)
5
- _register_job(base)
6
- end
7
-
8
- def _register_job(base)
9
- Server.redis { |c| c.sadd(QPush::Base::KEY + ':jobs', base.name) }
4
+ class << self
5
+ def included(base)
6
+ _register_job(base)
7
+ end
8
+
9
+ def _register_job(base)
10
+ Server.redis { |c| c.sadd(QPush::Base::KEY + ':jobs', base.name) }
11
+ end
10
12
  end
11
13
  end
12
14
 
data/lib/qpush/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module QPush
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.7'
3
3
  CODENAME = 'Sun Soaked Salamander'
4
4
  end
data/lib/qpush/web.rb CHANGED
@@ -1,9 +1,13 @@
1
+ # External
2
+ require 'sinatra/base'
3
+
1
4
  # Base
2
5
  require 'qpush/base'
3
6
 
4
7
  # Web Base
5
- require 'sinatra/base'
8
+ require 'qpush/web/config'
6
9
  require 'qpush/web/get'
10
+ require 'qpush/web/redis'
7
11
  require 'qpush/web/server'
8
12
 
9
13
  # Web Apis
@@ -17,7 +17,7 @@ module QPush
17
17
 
18
18
  def retrieve_delays
19
19
  @jobs = Web.redis do |conn|
20
- conn.zrange(QPush.keys.delay, 0, -1, with_scores: true)
20
+ conn.zrange(Web.keys.delay, 0, -1, with_scores: true)
21
21
  end
22
22
  end
23
23
 
@@ -3,8 +3,8 @@ module QPush
3
3
  module Apis
4
4
  class Heart
5
5
  def call
6
- heart = Web.redis { |c| c.get(QPush.keys.heart) }
7
- { status: !heart.nil?, namespace: QPush.config.namespace }
6
+ heart = Web.redis { |c| c.get(Web.keys.heart) }
7
+ { status: !heart.nil?, namespace: 'default' }
8
8
  end
9
9
  end
10
10
  end
@@ -15,7 +15,7 @@ module QPush
15
15
 
16
16
  def retrieve_jobs
17
17
  @jobs = Web.redis do |conn|
18
- conn.lrange(QPush.keys.history, 0, 10)
18
+ conn.lrange(Web.keys.history, 0, 10)
19
19
  end
20
20
  end
21
21
 
@@ -14,7 +14,7 @@ module QPush
14
14
  private
15
15
 
16
16
  def retrieve_jobs
17
- Web.redis { |c| @jobs = c.smembers("#{QPush.keys.jobs}") }
17
+ Web.redis { |c| @jobs = c.smembers(QPush::Base::KEY + ':jobs') }
18
18
  end
19
19
 
20
20
  def update_jobs
@@ -17,7 +17,7 @@ module QPush
17
17
 
18
18
  def retrieve_morgue
19
19
  @morgue = Web.redis do |conn|
20
- conn.lrange(QPush.keys.morgue, @start, @start + @count)
20
+ conn.lrange(Web.keys.morgue, @start, @start + @count)
21
21
  end
22
22
  end
23
23
 
@@ -17,13 +17,13 @@ module QPush
17
17
  private
18
18
 
19
19
  def retrieve_delay
20
- delays = @conn.zrangebyscore(QPush.keys.delay, @score, @score)
20
+ delays = @conn.zrangebyscore(Web.keys.delay, @score, @score)
21
21
  delays.each
22
22
 
23
23
  # Performs a watch on our delay list
24
24
  #
25
25
  def watch_delay
26
- @conn.watch(QPush.keys.delay) do
26
+ @conn.watch(Web.keys.delay) do
27
27
  yield if block_given?
28
28
  end
29
29
  end
@@ -18,7 +18,7 @@ module QPush
18
18
 
19
19
  def retrieve_jobs
20
20
  @jobs = Web.redis do |conn|
21
- conn.zrange(QPush.keys.delay, 0, -1, with_scores: true)
21
+ conn.zrange(Web.keys.delay, 0, -1, with_scores: true)
22
22
  end
23
23
  end
24
24
 
@@ -29,7 +29,7 @@ module QPush
29
29
 
30
30
  def retrieve_stats
31
31
  @stats = Web.redis do |conn|
32
- conn.hgetall(QPush.keys.stats)
32
+ conn.hgetall(Web.keys.stats)
33
33
  end
34
34
  end
35
35
 
@@ -49,7 +49,7 @@ module QPush
49
49
 
50
50
  def calculate_current
51
51
  Web.redis do |c|
52
- QPush.keys.perform_lists.collect { |list| c.llen(list) }.reduce(:+)
52
+ Web.keys.perform_list.collect { |list| c.llen(list) }.reduce(:+)
53
53
  end
54
54
  end
55
55
  end
@@ -6,6 +6,10 @@ module QPush
6
6
  def config
7
7
  @config ||= Config.new
8
8
  end
9
+
10
+ def keys
11
+ @keys ||= QPush::Web::RedisKeys.new
12
+ end
9
13
  end
10
14
 
11
15
  class Config < QPush::Base::Config; end
@@ -12,5 +12,37 @@ module QPush
12
12
  Web.config.redis_url)
13
13
  end
14
14
  end
15
+
16
+ class RedisKeys
17
+ KEYS = [:delay,
18
+ :queue,
19
+ :perform,
20
+ :stats,
21
+ :heart,
22
+ :crons,
23
+ :history,
24
+ :morgue]
25
+
26
+ attr_reader :delay, :queue, :perform, :stats, :heart,
27
+ :crons, :history, :morgue
28
+
29
+ def initialize(options = {})
30
+ @namespace = options[:namespace] || 'default'
31
+ @priorities = options[:priorities] || 5
32
+ build_keyspaces
33
+ end
34
+
35
+ def perform_list
36
+ @perform_list ||= (1..@priorities).collect { |num| "#{perform}:#{num}" }
37
+ end
38
+
39
+ private
40
+
41
+ def build_keyspaces
42
+ KEYS.each do |key|
43
+ instance_variable_set("@#{key}", "#{QPush::Base::KEY}:#{@namespace}:#{key}")
44
+ end
45
+ end
46
+ end
15
47
  end
16
48
  end
@@ -1,18 +1,18 @@
1
1
  module QPush
2
2
  module Web
3
3
  class Server < Sinatra::Base
4
- #set :public_folder, File.expand_path(File.dirname(__FILE__)) + '/public'
4
+ set :public_folder, File.expand_path(File.dirname(__FILE__)) + '/public'
5
5
 
6
6
  before do
7
- #pass if request.path_info == '/'
7
+ pass if request.path_info == '/'
8
8
  content_type :json
9
9
  headers 'Access-Control-Allow-Origin' => '*',
10
10
  'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
11
11
  end
12
12
 
13
- #get '/' do
14
- #File.read(File.join(settings.public_folder, 'index.html'))
15
- #end
13
+ get '/' do
14
+ File.read(File.join(settings.public_folder, 'index.html'))
15
+ end
16
16
 
17
17
  get '/stats' do
18
18
  Get.stats
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qpush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Sweeting
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-04 00:00:00.000000000 Z
11
+ date: 2016-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -188,6 +188,7 @@ extensions: []
188
188
  extra_rdoc_files: []
189
189
  files:
190
190
  - ".byebug_history"
191
+ - ".codeclimate.yml"
191
192
  - ".gitignore"
192
193
  - ".travis.yml"
193
194
  - CODE_OF_CONDUCT.md