cellect-server 0.0.7 → 0.0.8

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: 6cd2bd7144a571ea98821b5f9e72054f6c562f4d
4
- data.tar.gz: 5e596f14808744f601d070729a7d17bed24407fa
3
+ metadata.gz: 2e99eedbb031e30c30aa5a1115f3620f5e2e4cf3
4
+ data.tar.gz: 06dbf151721e9abdb0c3c518de248f8809e972a3
5
5
  SHA512:
6
- metadata.gz: e42639b3c1d3ef1ee7ba5682f180b5ce426fa65493842654632ab919c6d1f96f011e6837891bf23d57585fd9a16ad43d010b06e1fcf2d30afababf26b11f286e
7
- data.tar.gz: a0507f86c4bc0175c85afabf2d7543721b6057c0bb40cec134dc4d6403057641dca674b558a30ee1bc6737d8df0c449f1bc786316aeaee5f0b82e97db76250bd
6
+ metadata.gz: e4911bddd166a8258fa63fde6dd767159e848217c736d9c8390496150ba113cd9dbc35b092631a17d300b16670b73cd7e3a7e0bdfdb36052ff6c7c797d462816
7
+ data.tar.gz: 02043a81baca72f5d2a640a0d0d4909beae0751265e79bab6b4263ffd78661935b465ad16625c61ea6ad1bbadd051dff79c0ff7d0f20a5f7bfa5b54306999099
@@ -32,7 +32,7 @@ module Cellect
32
32
  FROM workflows w
33
33
  JOIN subject_sets_workflows ssw ON (ssw.workflow_id = w.id)
34
34
  JOIN subject_sets ss ON (ss.id = ssw.subject_set_id)
35
- JOIN set_member_subjects sms ON (s.id = sms.subject_set_id)
35
+ JOIN set_member_subjects sms ON (ss.id = sms.subject_set_id)
36
36
  WHERE w.id = #{ workflow_name }
37
37
  SQL
38
38
  pg.exec(statement).collect do |row|
@@ -1,3 +1,3 @@
1
1
  module Cellect
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -14,10 +14,10 @@ module Cellect::Server
14
14
 
15
15
  it 'should add seen subjects' do
16
16
  async_workflow = double
17
- workflow.should_receive(:async).and_return async_workflow
18
- async_workflow.should_receive(:add_seen_for).with 123, 123
17
+ expect(workflow).to receive(:async).and_return async_workflow
18
+ expect(async_workflow).to receive(:add_seen_for).with 123, 123
19
19
  put "/workflows/#{ workflow_type }/users/123/add_seen", subject_id: 123
20
- last_response.status.should == 200
20
+ expect(last_response.status).to eq 200
21
21
  end
22
22
  end
23
23
  end
@@ -21,17 +21,17 @@ module Cellect::Server
21
21
 
22
22
  it 'should add subjects' do
23
23
  if workflow.grouped? && workflow.prioritized?
24
- workflow.should_receive(:add).with subject_id: 123, group_id: 1, priority: 456.0
24
+ expect(workflow).to receive(:add).with subject_id: 123, group_id: 1, priority: 456.0
25
25
  elsif workflow.grouped?
26
- workflow.should_receive(:add).with subject_id: 123, group_id: 1, priority: nil
26
+ expect(workflow).to receive(:add).with subject_id: 123, group_id: 1, priority: nil
27
27
  elsif workflow.prioritized?
28
- workflow.should_receive(:add).with subject_id: 123, group_id: nil, priority: 456.0
28
+ expect(workflow).to receive(:add).with subject_id: 123, group_id: nil, priority: 456.0
29
29
  else
30
- workflow.should_receive(:add).with subject_id: 123, group_id: nil, priority: nil
30
+ expect(workflow).to receive(:add).with subject_id: 123, group_id: nil, priority: nil
31
31
  end
32
32
 
33
33
  put "/workflows/#{ workflow_type }/add", opts
34
- last_response.status.should == 200
34
+ expect(last_response.status).to eq 200
35
35
  end
36
36
  end
37
37
  end
@@ -20,13 +20,13 @@ module Cellect::Server
20
20
 
21
21
  it 'should remove subjects' do
22
22
  if workflow.grouped?
23
- workflow.should_receive(:remove).with subject_id: 123, group_id: 1, priority: nil
23
+ expect(workflow).to receive(:remove).with subject_id: 123, group_id: 1, priority: nil
24
24
  else
25
- workflow.should_receive(:remove).with subject_id: 123, group_id: nil, priority: nil
25
+ expect(workflow).to receive(:remove).with subject_id: 123, group_id: nil, priority: nil
26
26
  end
27
27
 
28
28
  put "/workflows/#{ workflow_type }/remove", opts
29
- last_response.status.should == 200
29
+ expect(last_response.status).to eq 200
30
30
  end
31
31
  end
32
32
  end
@@ -13,19 +13,19 @@ module Cellect::Server
13
13
  before(:each){ pass_until workflow, is: :ready }
14
14
 
15
15
  it 'should sample without a user, limit, or group' do
16
- workflow.should_receive(:sample).with(limit: 5, user_id: nil, group_id: nil).and_call_original
16
+ expect(workflow).to receive(:sample).with(limit: 5, user_id: nil, group_id: nil).and_call_original
17
17
  get "/workflows/#{ workflow_type }"
18
- last_response.status.should == 200
19
- json.should be_a Array
18
+ expect(last_response.status).to eq 200
19
+ expect(json).to be_a Array
20
20
  end
21
21
 
22
22
  shoulda = grouping ? 'limit, group, and user' : 'limit and user'
23
23
  it "should sample with a #{ shoulda }" do
24
24
  group_id = grouping ? 1 : nil
25
- workflow.should_receive(:sample).with(limit: 3, user_id: 123, group_id: group_id).and_call_original
25
+ expect(workflow).to receive(:sample).with(limit: 3, user_id: 123, group_id: group_id).and_call_original
26
26
  get "/workflows/#{ workflow_type }?limit=3&user_id=123#{ grouping ? '&group_id=1' : '' }"
27
- last_response.status.should == 200
28
- json.should be_a Array
27
+ expect(last_response.status).to eq 200
28
+ expect(json).to be_a Array
29
29
  end
30
30
  end
31
31
  end
@@ -13,10 +13,10 @@ module Cellect::Server
13
13
 
14
14
  it 'should load users' do
15
15
  async_workflow = double
16
- workflow.should_receive(:async).and_return async_workflow
17
- async_workflow.should_receive(:user).with 123
16
+ expect(workflow).to receive(:async).and_return async_workflow
17
+ expect(async_workflow).to receive(:user).with 123
18
18
  post "/workflows/#{ workflow_type }/users/123/load"
19
- last_response.status.should == 201
19
+ expect(last_response.status).to eq 201
20
20
  end
21
21
  end
22
22
  end
@@ -13,39 +13,39 @@ module Cellect::Server
13
13
  it 'should provide unseen from a random group for users' do
14
14
  workflow.groups = { }
15
15
  workflow.groups[1] = set_klass.new
16
- workflow.groups[1].should_receive(:subtract).with user.seen, 3
16
+ expect(workflow.groups[1]).to receive(:subtract).with user.seen, 3
17
17
  workflow.unseen_for 123, limit: 3
18
18
  end
19
19
 
20
20
  it 'should provide unseen from a specific group for users' do
21
21
  3.times{ |i| workflow.groups[i] = set_klass.new }
22
- workflow.group(1).should_receive(:subtract).with user.seen, 3
22
+ expect(workflow.group(1)).to receive(:subtract).with user.seen, 3
23
23
  workflow.unseen_for 123, group_id: 1, limit: 3
24
24
  end
25
25
 
26
26
  it 'should sample subjects from a random group without a user' do
27
27
  workflow.groups = { }
28
28
  workflow.groups[1] = set_klass.new
29
- workflow.group(1).should_receive(:sample).with 3
29
+ expect(workflow.group(1)).to receive(:sample).with 3
30
30
  workflow.sample limit: 3
31
31
  end
32
32
 
33
33
  it 'should sample subjects from a specific group without a user' do
34
34
  3.times{ |i| workflow.groups[i] = set_klass.new }
35
- workflow.group(1).should_receive(:sample).with 3
35
+ expect(workflow.group(1)).to receive(:sample).with 3
36
36
  workflow.sample group_id: 1, limit: 3
37
37
  end
38
38
 
39
39
  it 'should sample subjects from a random group for a user' do
40
40
  workflow.groups = { }
41
41
  workflow.groups[1] = set_klass.new
42
- workflow.groups[1].should_receive(:subtract).with user.seen, 3
42
+ expect(workflow.groups[1]).to receive(:subtract).with user.seen, 3
43
43
  workflow.sample user_id: 123, limit: 3
44
44
  end
45
45
 
46
46
  it 'should sample subjects from a specific group for a user' do
47
47
  3.times{ |i| workflow.groups[i] = set_klass.new }
48
- workflow.group(1).should_receive(:subtract).with user.seen, 3
48
+ expect(workflow.group(1)).to receive(:subtract).with user.seen, 3
49
49
  workflow.sample user_id: 123, group_id: 1, limit: 3
50
50
  end
51
51
 
@@ -53,22 +53,22 @@ module Cellect::Server
53
53
  workflow.groups[1] = set_klass.new
54
54
 
55
55
  if workflow.prioritized?
56
- workflow.groups[1].should_receive(:add).with 123, 456
56
+ expect(workflow.groups[1]).to receive(:add).with 123, 456
57
57
  workflow.add subject_id: 123, group_id: 1, priority: 456
58
58
  else
59
- workflow.groups[1].should_receive(:add).with 123
59
+ expect(workflow.groups[1]).to receive(:add).with 123
60
60
  workflow.add subject_id: 123, group_id: 1
61
61
  end
62
62
  end
63
63
 
64
64
  it 'should remove subjects' do
65
65
  workflow.groups[1] = set_klass.new
66
- workflow.groups[1].should_receive(:remove).with 123
66
+ expect(workflow.groups[1]).to receive(:remove).with 123
67
67
  workflow.remove subject_id: 123, group_id: 1
68
68
  end
69
69
 
70
70
  it 'should be grouped' do
71
- workflow.should be_grouped
71
+ expect(workflow).to be_grouped
72
72
  end
73
73
  end
74
74
  end
@@ -6,8 +6,8 @@ module Cellect::Server
6
6
  let(:node_set){ Cellect::Server.node_set.actors.first }
7
7
 
8
8
  it 'should register this node' do
9
- node_set.id.should == 'node0000000000'
10
- node_set.zk.get('/nodes/node0000000000').first.should =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
9
+ expect(node_set.id).to eq 'node0000000000'
10
+ expect(node_set.zk.get('/nodes/node0000000000').first).to match /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
11
11
  end
12
12
  end
13
13
  end
@@ -12,12 +12,12 @@ module Cellect::Server
12
12
  end
13
13
 
14
14
  it 'should return a workflow given a set of options' do
15
- default.workflow_for('name' => 'a').should be_an_instance_of Workflow
16
- default.workflow_for('name' => 'b', 'grouped' => true).should be_an_instance_of GroupedWorkflow
17
- default.workflow_for('name' => 'c', 'pairwise' => true).should be_pairwise
18
- default.workflow_for('name' => 'd', 'prioritized' => true).should be_prioritized
19
- default.workflow_for('name' => 'e', 'pairwise' => true, 'prioritized' => true).should be_pairwise
20
- default.workflow_for('name' => 'e', 'pairwise' => true, 'prioritized' => true).should be_prioritized
15
+ expect(default.workflow_for('name' => 'a')).to be_an_instance_of Workflow
16
+ expect(default.workflow_for('name' => 'b', 'grouped' => true)).to be_an_instance_of GroupedWorkflow
17
+ expect(default.workflow_for('name' => 'c', 'pairwise' => true)).to be_pairwise
18
+ expect(default.workflow_for('name' => 'd', 'prioritized' => true)).to be_prioritized
19
+ expect(default.workflow_for('name' => 'e', 'pairwise' => true, 'prioritized' => true)).to be_pairwise
20
+ expect(default.workflow_for('name' => 'e', 'pairwise' => true, 'prioritized' => true)).to be_prioritized
21
21
  end
22
22
  end
23
23
  end
@@ -5,28 +5,28 @@ module Cellect::Server
5
5
  let(:user){ User.new 1, workflow_name: 'random' }
6
6
 
7
7
  it 'should store seen ids' do
8
- user.seen.should be_a DiffSet::RandomSet
8
+ expect(user.seen).to be_a DiffSet::RandomSet
9
9
  end
10
10
 
11
11
  it 'should have a default ttl of 15 minutes' do
12
- user.ttl.should == 900 # seconds
12
+ expect(user.ttl).to eq 900 # seconds
13
13
  end
14
14
 
15
15
  it 'should allow custom ttl' do
16
- User.new(2, workflow_name: 'random', ttl: 123).ttl.should == 123
16
+ expect(User.new(2, workflow_name: 'random', ttl: 123).ttl).to eq 123
17
17
  end
18
18
 
19
19
  it 'should reset the ttl timer on activity' do
20
- user.bare_object.should_receive(:restart_ttl_timer).at_least :once
20
+ expect(user.bare_object).to receive(:restart_ttl_timer).at_least :once
21
21
  user.seen
22
22
  end
23
23
 
24
24
  it 'should terminate on ttl expiry' do
25
25
  async_workflow = double
26
- Workflow[user.workflow_name].should_receive(:async).and_return async_workflow
27
- async_workflow.should_receive(:remove_user).with user.id
26
+ expect(Workflow[user.workflow_name]).to receive(:async).and_return async_workflow
27
+ expect(async_workflow).to receive(:remove_user).with user.id
28
28
  user.ttl_expired!
29
- user.ttl_timer.should be_nil
29
+ expect(user.ttl_timer).to be_nil
30
30
  end
31
31
  end
32
32
  end
@@ -10,51 +10,51 @@ module Cellect::Server
10
10
  before(:each){ pass_until workflow, is: :ready }
11
11
 
12
12
  it 'should provide unseen for users' do
13
- workflow.subjects.should_receive(:subtract).with user.seen, 3
13
+ expect(workflow.subjects).to receive(:subtract).with user.seen, 3
14
14
  workflow.unseen_for 123, limit: 3
15
15
  end
16
16
 
17
17
  it 'should sample subjects without a user' do
18
- workflow.subjects.should_receive(:sample).with 3
18
+ expect(workflow.subjects).to receive(:sample).with 3
19
19
  workflow.sample limit: 3
20
20
  end
21
21
 
22
22
  it 'should sample subjects with a user' do
23
- workflow.subjects.should_receive(:subtract).with user.seen, 3
23
+ expect(workflow.subjects).to receive(:subtract).with user.seen, 3
24
24
  workflow.sample user_id: 123, limit: 3
25
25
  end
26
26
 
27
27
  it 'should add subjects' do
28
28
  if workflow.prioritized?
29
- workflow.subjects.should_receive(:add).with 123, 456
29
+ expect(workflow.subjects).to receive(:add).with 123, 456
30
30
  workflow.add subject_id: 123, priority: 456
31
31
  else
32
- workflow.subjects.should_receive(:add).with 123
32
+ expect(workflow.subjects).to receive(:add).with 123
33
33
  workflow.add subject_id: 123
34
34
  end
35
35
  end
36
36
 
37
37
  it 'should remove subjects' do
38
- workflow.subjects.should_receive(:add).with 123
38
+ expect(workflow.subjects).to receive(:add).with 123
39
39
  workflow.add subject_id: 123
40
40
  end
41
41
 
42
42
  it 'should be notified of a user ttl expiry' do
43
43
  async_workflow = double
44
- workflow.should_receive(:async).and_return async_workflow
45
- async_workflow.should_receive(:remove_user).with user.id
44
+ expect(workflow).to receive(:async).and_return async_workflow
45
+ expect(async_workflow).to receive(:remove_user).with user.id
46
46
  user.ttl_expired!
47
47
  end
48
48
 
49
49
  it 'should remove users when their ttl expires' do
50
50
  id = user.id
51
51
  workflow.remove_user id
52
- workflow.users.should_not have_key id
52
+ expect(workflow.users).to_not have_key id
53
53
  expect{ user.id }.to raise_error
54
54
  end
55
55
 
56
56
  it 'should not be grouped' do
57
- workflow.should_not be_grouped
57
+ expect(workflow).to_not be_grouped
58
58
  end
59
59
  end
60
60
  end
data/spec/spec_helper.rb CHANGED
@@ -8,6 +8,7 @@ end
8
8
  Bundler.require :test, :development
9
9
 
10
10
  ENV['CELLECT_POOL_SIZE'] = '3'
11
+ SPAWN_ZK = !ENV['ZK_URL']
11
12
 
12
13
  require 'pry'
13
14
  require 'oj'
@@ -24,7 +25,6 @@ Cellect::Server.adapter = SpecAdapter.new
24
25
  SET_TYPES = %w(random priority pairwise_random pairwise_priority)
25
26
 
26
27
  RSpec.configure do |config|
27
- config.treat_symbols_as_metadata_keys_with_true_values = true
28
28
  config.run_all_when_everything_filtered = true
29
29
  config.filter_run :focus
30
30
  config.order = 'random'
@@ -37,6 +37,6 @@ RSpec.configure do |config|
37
37
  end
38
38
 
39
39
  config.after(:suite) do
40
- `zkServer stop #{ CELLECT_ZK_CONFIG } > /dev/null 2>&1`
40
+ `zkServer stop #{ CELLECT_ZK_CONFIG } > /dev/null 2>&1` if SPAWN_ZK
41
41
  end
42
42
  end
@@ -2,24 +2,24 @@ shared_examples_for 'node set' do
2
2
  let(:node_set){ Cellect::NodeSet.new }
3
3
 
4
4
  it 'should connect to zoo keeper' do
5
- node_set.zk.should be_nil
5
+ expect(node_set.zk).to be_nil
6
6
  pass_until node_set, is: :ready
7
- node_set.zk.should be_connected
7
+ expect(node_set.zk).to be_connected
8
8
  end
9
9
 
10
10
  it 'should know the connection state' do
11
- node_set.state.should be :initializing
11
+ expect(node_set.state).to be :initializing
12
12
  pass_until node_set, is: :ready
13
- node_set.should be_ready
13
+ expect(node_set).to be_ready
14
14
  end
15
15
 
16
16
  it 'should accept a connection string' do
17
17
  begin
18
18
  pass_until node_set, is: :ready
19
19
  ENV['ZK_URL'] = 'foobar'
20
- node_set.send(:zk_url).should == 'foobar'
20
+ expect(node_set.send(:zk_url)).to eq 'foobar'
21
21
  ENV.delete 'ZK_URL'
22
- node_set.send(:zk_url).should == 'localhost:2181'
22
+ expect(node_set.send(:zk_url)).to eq 'localhost:2181'
23
23
  ensure
24
24
  ENV['ZK_URL'] = 'localhost:21811'
25
25
  end
@@ -1,11 +1,11 @@
1
1
  shared_examples_for 'a set' do
2
2
  it 'should convert to an Array' do
3
- set.to_a.should =~ (1..5).to_a
3
+ expect(set.to_a).to eq (1..5).to_a
4
4
  end
5
5
 
6
6
  it 'should add elements' do
7
7
  set.add 100
8
- set.to_a.should include 100
8
+ expect(set.to_a).to include 100
9
9
  end
10
10
 
11
11
  it 'should remove elements' do
@@ -14,7 +14,7 @@ shared_examples_for 'a set' do
14
14
  end
15
15
 
16
16
  it 'should sample elements' do
17
- set.sample(2).length.should == 2
17
+ expect(set.sample(2).length).to eq 2
18
18
  end
19
19
 
20
20
  it 'should not include removed elements in samples' do
@@ -29,6 +29,6 @@ shared_examples_for 'a set' do
29
29
  it 'should know if it contains an element' do
30
30
  set.should_not include 100
31
31
  set.add 100
32
- set.should include 100
32
+ expect(set).to include 100
33
33
  end
34
34
  end
@@ -6,21 +6,21 @@ shared_examples_for 'workflow' do |name|
6
6
  end
7
7
 
8
8
  it 'should add singleton instances to the registry' do
9
- obj.class[:foo].should be_a_kind_of Cellect::Server::Workflow
10
- obj.class[:foo].object_id.should == obj.class[:foo].object_id
9
+ expect(obj.class[:foo]).to be_a_kind_of Cellect::Server::Workflow
10
+ expect(obj.class[:foo].object_id).to eq obj.class[:foo].object_id
11
11
  end
12
12
 
13
13
  it 'should initialize empty' do
14
- obj.name.should be_a String
15
- obj.users.should be_a Hash
14
+ expect(obj.name).to be_a String
15
+ expect(obj.users).to be_a Hash
16
16
 
17
17
  set_klass = obj.prioritized? ? DiffSet::PrioritySet : DiffSet::RandomSet
18
- obj.subjects.should be_a set_klass
18
+ expect(obj.subjects).to be_a set_klass
19
19
  end
20
20
 
21
21
  it 'should provide a user lookup' do
22
- obj.user(1).should be_a Cellect::Server::User
23
- obj.user(1).object_id.should == obj.user(1).object_id
24
- obj.users.keys.should include 1
22
+ expect(obj.user(1)).to be_a Cellect::Server::User
23
+ expect(obj.user(1).object_id).to eq obj.user(1).object_id
24
+ expect(obj.users.keys).to include 1
25
25
  end
26
26
  end
@@ -1,26 +1,28 @@
1
- zk_dir = File.join CELLECT_ROOT, 'tmp/zookeeper'
2
-
3
- `rm -rf #{ zk_dir }; mkdir -p #{ zk_dir }`
4
-
5
- CELLECT_ZK_CONFIG = "#{ zk_dir }/zoo.cfg"
6
- File.open(CELLECT_ZK_CONFIG, 'w') do |out|
7
- out.puts <<-TEXT
8
- tickTime=2000
9
- initLimit=10
10
- syncLimit=5
11
- dataDir=#{ zk_dir }
12
- clientPort=21811
13
- forceSync=no
14
- snapCount=1000000
15
- TEXT
1
+ if SPAWN_ZK
2
+ zk_dir = File.join CELLECT_ROOT, 'tmp/zookeeper'
3
+ CELLECT_ZK_CONFIG = "#{ zk_dir }/zoo.cfg"
4
+
5
+ `rm -rf #{ zk_dir }; mkdir -p #{ zk_dir }`
6
+
7
+ File.open(CELLECT_ZK_CONFIG, 'w') do |out|
8
+ out.puts <<-TEXT
9
+ tickTime=2000
10
+ initLimit=10
11
+ syncLimit=5
12
+ dataDir=#{ zk_dir }
13
+ clientPort=21811
14
+ forceSync=no
15
+ snapCount=1000000
16
+ TEXT
17
+ end
18
+
19
+ if `echo ruok | nc 127.0.0.1 21811`.chomp == 'imok'
20
+ pid = `ps aux | grep -e 'Cellect[\/]tmp[\/]zookeeper'`.split[1]
21
+ puts "Killing rogue zookeeper process: #{ pid }..."
22
+ `kill -s TERM #{ pid }`
23
+ sleep 1
24
+ end
25
+
26
+ `zkServer start #{ CELLECT_ZK_CONFIG } > /dev/null 2>&1`
27
+ ENV['ZK_URL'] = 'localhost:21811'
16
28
  end
17
-
18
- if `echo ruok | nc 127.0.0.1 21811`.chomp == 'imok'
19
- pid = `ps aux | grep -e 'Cellect[\/]tmp[\/]zookeeper'`.split[1]
20
- puts "Killing rogue zookeeper process: #{ pid }..."
21
- `kill -s TERM #{ pid }`
22
- sleep 1
23
- end
24
-
25
- `zkServer start #{ CELLECT_ZK_CONFIG } > /dev/null 2>&1`
26
- ENV['ZK_URL'] = 'localhost:21811'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cellect-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Parrish
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-03 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -302,7 +302,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
302
  version: '0'
303
303
  requirements: []
304
304
  rubyforge_project:
305
- rubygems_version: 2.2.2
305
+ rubygems_version: 2.4.2
306
306
  signing_key:
307
307
  specification_version: 4
308
308
  summary: ''