bridge_blueprint 0.0.05 → 0.0.06

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: 8e40854d5a34a871c4f3b9384ea89c36357c67d8
4
- data.tar.gz: a30a814a45d27d9a3bc531139e076f2f0f4aa61e
3
+ metadata.gz: d8a68f02757c7f40a292efbc3881a81da73d0700
4
+ data.tar.gz: 7ac7101287000b7426ea73bb80ddc2a4c069db33
5
5
  SHA512:
6
- metadata.gz: f8705c4f29857b0b0b4911081f0c2d59315d1ff208a6de31fcc056beac681cc9666c64669459168b35a91c549b009ee557d74823fafde8cc879a1241a481ffe6
7
- data.tar.gz: c4b3c49049a61d6dc5155c784bca1ba010159ac849f291196492f2ed67e4ddcca9ddb9714f1228887336634459282e7c5bb78468043562a0834b6f7076e7cf50
6
+ metadata.gz: 0c4496431f46b3182cbe48da9531f5a95645ae692a54fc22b3fbdea074cebafba82562ab0f00dc2f1c92a360f487fd68d1885215652e85261f970065811d9d93
7
+ data.tar.gz: 203ea3230d0dd1a513afca9624caa8fa94e26035356645439b57209a610b1b7b6d332ec3833917e0d0e136e2ca74fe75b52fbf9febb919d7b5d39ec698df7eff
data/.gitignore CHANGED
@@ -2,5 +2,5 @@
2
2
  .idea/
3
3
  bridge_api.iml
4
4
  .byebug.*
5
-
5
+ .byebug_history
6
6
  .*.gem
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
- gemspec
4
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bridge_blueprint (0.0.05)
4
+ bridge_blueprint (0.0.06)
5
5
  bridge_api (~> 0.1.16)
6
6
  open_uri_redirections (~> 0.2.1)
7
7
  rubyzip (~> 1.2.1)
@@ -9,14 +9,14 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (5.1.4)
12
+ activesupport (5.2.0)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (~> 0.7)
14
+ i18n (>= 0.7, < 2)
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
17
  addressable (2.5.1)
18
18
  public_suffix (~> 2.0, >= 2.0.2)
19
- bridge_api (0.1.16)
19
+ bridge_api (0.1.19)
20
20
  faraday (~> 0.9.0)
21
21
  faraday_middleware (~> 0.9.0)
22
22
  footrest (>= 0.5.1)
@@ -35,11 +35,11 @@ GEM
35
35
  faraday (~> 0.9.0)
36
36
  link_header (>= 0.0.7)
37
37
  hashdiff (0.3.4)
38
- i18n (0.9.1)
38
+ i18n (1.0.0)
39
39
  concurrent-ruby (~> 1.0)
40
40
  link_header (0.0.8)
41
41
  method_source (0.8.2)
42
- minitest (5.11.1)
42
+ minitest (5.11.3)
43
43
  multipart-post (2.0.0)
44
44
  open_uri_redirections (0.2.1)
45
45
  pry (0.10.4)
@@ -68,7 +68,7 @@ GEM
68
68
  slop (3.6.0)
69
69
  thread_safe (0.3.6)
70
70
  tilt (1.4.1)
71
- tzinfo (1.2.4)
71
+ tzinfo (1.2.5)
72
72
  thread_safe (~> 0.1)
73
73
  webmock (2.3.2)
74
74
  addressable (>= 2.3.6)
@@ -90,4 +90,4 @@ DEPENDENCIES
90
90
  webmock (~> 2.3.1)
91
91
 
92
92
  BUNDLED WITH
93
- 1.14.6
93
+ 1.16.1
@@ -1,33 +1,35 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
1
+
2
+ # frozen_string_literal: true
3
+
4
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
3
5
  require 'bridge_blueprint/version'
4
6
 
5
7
  Gem::Specification.new do |gem|
6
- gem.authors = ["Jay Shaffer"]
7
- gem.email = ["jshaffer@instructure.com"]
8
- gem.description = %q{Tools for consuming bridge data dumps}
9
- gem.summary = %q{Bridge Blueprint}
10
- gem.homepage = "https://getbridge.com"
8
+ gem.authors = ['Jay Shaffer']
9
+ gem.email = ['jshaffer@instructure.com']
10
+ gem.description = 'Tools for consuming bridge data dumps'
11
+ gem.summary = 'Bridge Blueprint'
12
+ gem.homepage = 'https://getbridge.com'
11
13
  gem.license = 'MIT'
12
14
 
13
15
  gem.files = `git ls-files`.split("\n")
14
- gem.files += Dir.glob("lib/**/*.rb")
15
- gem.files += Dir.glob("spec/**/*")
16
- gem.test_files = Dir.glob("spec/**/*")
17
- gem.name = "bridge_blueprint"
18
- gem.require_paths = ["lib"]
16
+ gem.files += Dir.glob('lib/**/*.rb')
17
+ gem.files += Dir.glob('spec/**/*')
18
+ gem.test_files = Dir.glob('spec/**/*')
19
+ gem.name = 'bridge_blueprint'
20
+ gem.require_paths = ['lib']
19
21
  gem.version = BridgeBlueprint::VERSION
20
22
 
21
23
  gem.add_runtime_dependency 'bridge_api', '~> 0.1.16'
22
24
  gem.add_runtime_dependency 'open_uri_redirections', '~> 0.2.1'
23
25
  gem.add_runtime_dependency 'rubyzip', '~> 1.2.1'
24
26
 
25
- gem.add_development_dependency 'rake', '~> 0'
26
27
  gem.add_development_dependency 'bundler', '~> 1.0', '>= 1.0.0'
27
- gem.add_development_dependency 'rspec', '~> 2.6'
28
- gem.add_development_dependency 'webmock', '~>2.3.1'
28
+ gem.add_development_dependency 'byebug', '~> 8.2.2'
29
29
  gem.add_development_dependency 'pry', '~> 0'
30
- gem.add_development_dependency 'tilt', '>= 1.3.4', '~> 1.3'
30
+ gem.add_development_dependency 'rake', '~> 0'
31
+ gem.add_development_dependency 'rspec', '~> 2.6'
31
32
  gem.add_development_dependency 'sinatra', '~> 1.0'
32
- gem.add_development_dependency 'byebug', '~> 8.2.2'
33
+ gem.add_development_dependency 'tilt', '>= 1.3.4', '~> 1.3'
34
+ gem.add_development_dependency 'webmock', '~>2.3.1'
33
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BridgeBlueprint
2
4
  class Constants
3
5
  STATUS_FAILED = 'failed'
@@ -1,16 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'csv'
2
4
  require 'zip'
3
5
 
4
6
  module BridgeBlueprint
5
7
  class DataDump
6
-
7
8
  @path = nil
8
9
 
9
10
  def initialize(path)
10
11
  @path = path
11
- unless File.exists?(path)
12
- raise "File not found #{path}"
13
- end
12
+ raise "File not found #{path}" unless File.exist?(path)
14
13
  end
15
14
 
16
15
  def each_row(name)
@@ -29,11 +28,10 @@ module BridgeBlueprint
29
28
  file = nil
30
29
  Zip::File.open(@path) do |zip_file|
31
30
  zip_file.each do |entry|
32
- if "#{name.to_s}" == entry.name
33
- path = "#{dir}/#{entry.name}"
34
- file = entry.extract(path)
35
- break
36
- end
31
+ next unless name.to_s == entry.name
32
+ path = "#{dir}/#{entry.name}"
33
+ file = entry.extract(path)
34
+ break
37
35
  end
38
36
  end
39
37
  if file
@@ -1,18 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open-uri'
2
4
  require 'open_uri_redirections'
3
5
  require 'net/http'
4
6
  require 'uri'
5
7
  require 'base64'
6
- require "bridge_api"
8
+ require 'bridge_api'
7
9
 
8
10
  module BridgeBlueprint
9
-
10
11
  class RemoteData
11
-
12
12
  USERS_CSV_NAME = 'users.csv'
13
13
  CUSTOM_FIELD_CSV_NAME = 'custom_fields.csv'
14
14
  GRANTS_CSV_NAME = 'grants.csv'
15
15
 
16
+ attr_accessor :client
17
+
16
18
  @base_url = nil
17
19
  @auth_header = nil
18
20
  @file_url = nil
@@ -22,17 +24,28 @@ module BridgeBlueprint
22
24
 
23
25
  def initialize(base_url, key, secret)
24
26
  @base_url = base_url
25
- @auth_header = 'Basic ' + Base64.strict_encode64("#{key}:#{secret}")
27
+ @auth_header = 'Basic ' + Base64.strict_encode64("#{key}:#{secret}")
26
28
  @client = BridgeAPI::Client.new(prefix: base_url, api_key: key, api_secret: secret)
27
29
  end
28
30
 
29
31
  def start_data_report
30
- @client.create_data_dump
32
+ raw_dumps = get_dumps
33
+ dumps = raw_dumps.members
34
+ unless dumps.empty?
35
+ dump = dumps.first
36
+ case dump['status']
37
+ when 'pending'
38
+ return
39
+ when 'complete'
40
+ return if Time.parse(dump['date']) > Time.now - 300
41
+ end
42
+ end
43
+ @client.create_data_dump
31
44
  end
32
45
 
33
46
  def status
34
47
  dumps = get_dumps
35
- if dumps.members.size > 0
48
+ if !dumps.members.empty?
36
49
  return get_dumps.first['status']
37
50
  else
38
51
  return BridgeBlueprint::Constants::STATUS_NOT_FOUND
@@ -44,12 +57,12 @@ module BridgeBlueprint
44
57
  uri = URI.parse(@base_url)
45
58
  http = Net::HTTP.new(uri.host, uri.port)
46
59
  http.read_timeout = 300
47
- http.use_ssl = (uri.scheme == "https")
60
+ http.use_ssl = (uri.scheme == 'https')
48
61
  req = Net::HTTP::Get.new("#{@base_url}/api/admin/data_dumps/download")
49
- req.add_field("Authorization", @auth_header)
62
+ req.add_field('Authorization', @auth_header)
50
63
  res = http.request(req)
51
64
  redirect_url = res['location']
52
- File.open(@file_path, 'w') do |file|
65
+ File.open(@file_path, 'w') do |_file|
53
66
  IO.copy_stream(open(redirect_url), @file_path)
54
67
  end
55
68
  end
@@ -62,11 +75,10 @@ module BridgeBlueprint
62
75
 
63
76
  def get_headers
64
77
  {
65
- 'Authorization'=> @auth_header,
66
- 'Content-Type'=> 'application/json',
67
- 'Accept'=> 'application/json'
78
+ 'Authorization' => @auth_header,
79
+ 'Content-Type' => 'application/json',
80
+ 'Accept' => 'application/json'
68
81
  }
69
82
  end
70
83
  end
71
-
72
84
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BridgeBlueprint
2
- VERSION = '0.0.05' unless defined?(BridgeBlueprint::VERSION)
4
+ VERSION = '0.0.06' unless defined?(BridgeBlueprint::VERSION)
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bridge_blueprint/version'
2
4
  require 'bridge_blueprint/data_dump'
3
5
  require 'bridge_blueprint/constants'
@@ -1,15 +1,16 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
  require 'zip'
3
5
 
4
6
  describe BridgeBlueprint::DataDump do
5
-
6
7
  before(:each) do
7
8
  dir = Dir.mktmpdir
8
9
  zip_folder_path = "#{File.dirname(__FILE__)}/../fixtures/bridge_zip"
9
10
  input_filenames = [
10
- 'users.csv',
11
- 'custom_fields.csv'
12
- ]
11
+ 'users.csv',
12
+ 'custom_fields.csv'
13
+ ]
13
14
 
14
15
  @zipfile_name = "#{dir}/dump.zip"
15
16
 
@@ -24,11 +25,11 @@ describe BridgeBlueprint::DataDump do
24
25
  it 'should parse a bridge data dump file' do
25
26
  file = BridgeBlueprint::DataDump.new(@zipfile_name)
26
27
  user_count = 0
27
- file.each_row('users') do |user|
28
+ file.each_row('users') do |_user|
28
29
  user_count += 1
29
30
  end
30
31
  custom_field_count = 0
31
- file.each_row('custom_fields') do |custom_field|
32
+ file.each_row('custom_fields') do |_custom_field|
32
33
  custom_field_count += 1
33
34
  end
34
35
  expect(user_count).to(eq(2))
@@ -1,15 +1,16 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
  require 'zip'
3
5
 
4
6
  describe BridgeBlueprint::RemoteData do
5
-
6
7
  before(:each) do
7
8
  @dir = Dir.mktmpdir
8
9
  zip_folder_path = "#{File.dirname(__FILE__)}/../fixtures/bridge_zip"
9
10
  input_filenames = [
10
- 'users.csv',
11
- 'custom_fields.csv'
12
- ]
11
+ 'users.csv',
12
+ 'custom_fields.csv'
13
+ ]
13
14
 
14
15
  @zipfile_name = "#{@dir}/dump.zip"
15
16
 
@@ -19,14 +20,35 @@ describe BridgeBlueprint::RemoteData do
19
20
  end
20
21
  end
21
22
 
22
- stub_request(:get, "https://example.com/fake-file-url").
23
- with(:headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
24
- to_return(:status => 200, :body => lambda{|request| File.open(@zipfile_name)}, :headers => {})
23
+ stub_request(:get, 'https://example.com/fake-file-url')
24
+ .with(headers: { 'Accept' => '*/*', 'User-Agent' => 'Ruby' })
25
+ .to_return(status: 200, body: ->(_request) { File.open(@zipfile_name) }, headers: {})
25
26
  end
26
27
 
27
28
  describe 'completed' do
28
29
  it 'should start a data dump' do
29
30
  data = BridgeBlueprint::RemoteData.new('https://example.com', 'key', 'secret')
31
+ expect(data.client).to receive(:create_data_dump)
32
+ data.start_data_report
33
+ end
34
+ end
35
+
36
+ describe 'completed' do
37
+ it 'should not start a data dump if already pending' do
38
+ data = BridgeBlueprint::RemoteData.new('https://pending.com', 'key', 'secret')
39
+ expect(data.client).not_to receive(:create_data_dump)
40
+ data.start_data_report
41
+ end
42
+
43
+ it 'should not start a data dump if one has already completed in the past 5 minutes' do
44
+ data = BridgeBlueprint::RemoteData.new('https://recent.com', 'key', 'secret')
45
+ expect(data.client).not_to receive(:create_data_dump)
46
+ data.start_data_report
47
+ end
48
+
49
+ it 'should start a data dump if one hasnt already completed in the past 5 minutes' do
50
+ data = BridgeBlueprint::RemoteData.new('https://notrecent.com', 'key', 'secret')
51
+ expect(data.client).to receive(:create_data_dump)
30
52
  data.start_data_report
31
53
  end
32
54
  end
@@ -43,8 +65,7 @@ describe BridgeBlueprint::RemoteData do
43
65
  data = BridgeBlueprint::RemoteData.new('https://example.com', 'key', 'secret')
44
66
  dir = Dir.mktmpdir
45
67
  data.store_file("#{@dir}/data_dump.csv")
46
- expect(File.exists?("#{@dir}/data_dump.csv")).to(eq(true))
68
+ expect(File.exist?("#{@dir}/data_dump.csv")).to(eq(true))
47
69
  end
48
70
  end
49
-
50
71
  end
@@ -0,0 +1,9 @@
1
+ {
2
+ "meta": {},
3
+ "data_dumps": [
4
+ {
5
+ "status": "pending",
6
+ "date": "2015-11-12T19:03:37Z"
7
+ }
8
+ ]
9
+ }
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sinatra/base'
2
4
  require 'tilt'
3
5
 
4
6
  class FakeBridge < Sinatra::Base
5
-
6
7
  ## Course Templates
7
8
 
8
9
  get %r{/api/author/course_templates$} do
@@ -84,7 +85,7 @@ class FakeBridge < Sinatra::Base
84
85
  get_json_data 200, 'enrollment.json'
85
86
  end
86
87
 
87
- #Custom Fields
88
+ # Custom Fields
88
89
 
89
90
  get %r{/api/author/custom_fields} do
90
91
  get_json_data 200, 'custom_fields.json'
@@ -109,7 +110,20 @@ class FakeBridge < Sinatra::Base
109
110
  # Data Dumps
110
111
 
111
112
  get %r{/api/admin/data_dumps$} do
112
- get_json_data 200, 'data_dumps.json'
113
+ host = URI.parse(url).host
114
+ if host == 'pending.com'
115
+ get_json_data 200, 'data_dumps_pending.json'
116
+ elsif host == 'notrecent.com'
117
+ data = JSON.parse(fixture('data_dumps.json').read)
118
+ data['data_dumps'][0]['date'] = (Time.now - 310).to_s
119
+ custom_response(data.to_json)
120
+ elsif host == 'recent.com'
121
+ data = JSON.parse(fixture('data_dumps.json').read)
122
+ data['data_dumps'][0]['date'] = (Time.now - 290).to_s
123
+ custom_response(data.to_json)
124
+ else
125
+ get_json_data 200, 'data_dumps.json'
126
+ end
113
127
  end
114
128
 
115
129
  post %r{/api/admin/data_dumps$} do
@@ -119,19 +133,24 @@ class FakeBridge < Sinatra::Base
119
133
  get %r{/api/admin/data_dumps/download.*} do
120
134
  content_type :json
121
135
  status 200
122
- headers[:location] = "https://example.com/fake-file-url"
136
+ headers[:location] = 'https://example.com/fake-file-url'
123
137
  end
124
138
 
125
139
  private
126
140
 
141
+ def custom_response(data)
142
+ content_type :json
143
+ status 200
144
+ data
145
+ end
146
+
127
147
  def get_json_data(response_code, file_name)
128
148
  content_type :json
129
149
  status response_code
130
- unless file_name.nil?
131
- File.open(File.dirname(__FILE__) + '/../fixtures/' + file_name).read
132
- else
150
+ if file_name.nil?
133
151
  {}
152
+ else
153
+ File.open(File.dirname(__FILE__) + '/../fixtures/' + file_name).read
134
154
  end
135
155
  end
136
-
137
156
  end
data/spec/test_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bridge_blueprint'
2
4
  require 'rspec'
3
5
  require 'webmock/rspec'
@@ -5,7 +7,7 @@ require 'json'
5
7
  require 'pry'
6
8
 
7
9
  RSpec.configure do |config|
8
- Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
10
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
9
11
 
10
12
  config.before(:each) do
11
13
  WebMock.disable_net_connect!
@@ -13,7 +15,6 @@ RSpec.configure do |config|
13
15
  end
14
16
  end
15
17
 
16
-
17
18
  def fixture(*file)
18
- File.new(File.join(File.expand_path("../fixtures", __FILE__), *file))
19
+ File.new(File.join(File.expand_path('fixtures', __dir__), *file))
19
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridge_blueprint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.05
4
+ version: 0.0.06
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Shaffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-15 00:00:00.000000000 Z
11
+ date: 2018-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bridge_api
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.2.1
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: bundler
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -87,35 +73,35 @@ dependencies:
87
73
  - !ruby/object:Gem::Version
88
74
  version: 1.0.0
89
75
  - !ruby/object:Gem::Dependency
90
- name: rspec
76
+ name: byebug
91
77
  requirement: !ruby/object:Gem::Requirement
92
78
  requirements:
93
79
  - - "~>"
94
80
  - !ruby/object:Gem::Version
95
- version: '2.6'
81
+ version: 8.2.2
96
82
  type: :development
97
83
  prerelease: false
98
84
  version_requirements: !ruby/object:Gem::Requirement
99
85
  requirements:
100
86
  - - "~>"
101
87
  - !ruby/object:Gem::Version
102
- version: '2.6'
88
+ version: 8.2.2
103
89
  - !ruby/object:Gem::Dependency
104
- name: webmock
90
+ name: pry
105
91
  requirement: !ruby/object:Gem::Requirement
106
92
  requirements:
107
93
  - - "~>"
108
94
  - !ruby/object:Gem::Version
109
- version: 2.3.1
95
+ version: '0'
110
96
  type: :development
111
97
  prerelease: false
112
98
  version_requirements: !ruby/object:Gem::Requirement
113
99
  requirements:
114
100
  - - "~>"
115
101
  - !ruby/object:Gem::Version
116
- version: 2.3.1
102
+ version: '0'
117
103
  - !ruby/object:Gem::Dependency
118
- name: pry
104
+ name: rake
119
105
  requirement: !ruby/object:Gem::Requirement
120
106
  requirements:
121
107
  - - "~>"
@@ -129,25 +115,19 @@ dependencies:
129
115
  - !ruby/object:Gem::Version
130
116
  version: '0'
131
117
  - !ruby/object:Gem::Dependency
132
- name: tilt
118
+ name: rspec
133
119
  requirement: !ruby/object:Gem::Requirement
134
120
  requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: 1.3.4
138
121
  - - "~>"
139
122
  - !ruby/object:Gem::Version
140
- version: '1.3'
123
+ version: '2.6'
141
124
  type: :development
142
125
  prerelease: false
143
126
  version_requirements: !ruby/object:Gem::Requirement
144
127
  requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: 1.3.4
148
128
  - - "~>"
149
129
  - !ruby/object:Gem::Version
150
- version: '1.3'
130
+ version: '2.6'
151
131
  - !ruby/object:Gem::Dependency
152
132
  name: sinatra
153
133
  requirement: !ruby/object:Gem::Requirement
@@ -163,19 +143,39 @@ dependencies:
163
143
  - !ruby/object:Gem::Version
164
144
  version: '1.0'
165
145
  - !ruby/object:Gem::Dependency
166
- name: byebug
146
+ name: tilt
167
147
  requirement: !ruby/object:Gem::Requirement
168
148
  requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: 1.3.4
169
152
  - - "~>"
170
153
  - !ruby/object:Gem::Version
171
- version: 8.2.2
154
+ version: '1.3'
172
155
  type: :development
173
156
  prerelease: false
174
157
  version_requirements: !ruby/object:Gem::Requirement
175
158
  requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: 1.3.4
176
162
  - - "~>"
177
163
  - !ruby/object:Gem::Version
178
- version: 8.2.2
164
+ version: '1.3'
165
+ - !ruby/object:Gem::Dependency
166
+ name: webmock
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 2.3.1
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 2.3.1
179
179
  description: Tools for consuming bridge data dumps
180
180
  email:
181
181
  - jshaffer@instructure.com
@@ -199,6 +199,7 @@ files:
199
199
  - spec/fixtures/bridge_zip/custom_fields.csv
200
200
  - spec/fixtures/bridge_zip/users.csv
201
201
  - spec/fixtures/data_dumps.json
202
+ - spec/fixtures/data_dumps_pending.json
202
203
  - spec/support/fake_bridge.rb
203
204
  - spec/test_helper.rb
204
205
  homepage: https://getbridge.com
@@ -221,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
222
  version: '0'
222
223
  requirements: []
223
224
  rubyforge_project:
224
- rubygems_version: 2.2.2
225
+ rubygems_version: 2.6.14
225
226
  signing_key:
226
227
  specification_version: 4
227
228
  summary: Bridge Blueprint
@@ -231,6 +232,6 @@ test_files:
231
232
  - spec/fixtures/bridge_zip/custom_fields.csv
232
233
  - spec/fixtures/bridge_zip/users.csv
233
234
  - spec/fixtures/data_dumps.json
235
+ - spec/fixtures/data_dumps_pending.json
234
236
  - spec/support/fake_bridge.rb
235
237
  - spec/test_helper.rb
236
- has_rdoc: