bobross 0.1.11 → 0.1.13
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/.DS_Store +0 -0
- data/.ruby-version +1 -0
- data/.vscode/settings.json +5 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +30 -28
- data/Rakefile +2 -2
- data/bin/console +4 -4
- data/bobross.gemspec +21 -25
- data/lib/bobross.rb +18 -15
- data/lib/bobross/version.rb +1 -1
- data/lib/models/canvas_account.rb +9 -8
- data/lib/models/canvas_assignment.rb +4 -3
- data/lib/models/canvas_assignment_grade.rb +1 -1
- data/lib/models/canvas_assignment_group.rb +1 -1
- data/lib/models/canvas_assignment_submission.rb +1 -1
- data/lib/models/canvas_course.rb +8 -8
- data/lib/models/canvas_group_in_account.rb +1 -1
- data/lib/models/canvas_group_in_course.rb +1 -1
- data/lib/models/canvas_object.rb +25 -0
- data/lib/models/canvas_section.rb +7 -5
- data/lib/models/canvas_user.rb +8 -8
- metadata +25 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5dfc9b8d00273c1d4816504bd7db83f2c4c4fc724dd48b584ccd2e3efb26e966
|
|
4
|
+
data.tar.gz: 807ebbcb86ee7ca86270a5127c9696d3ec86cd190a041337a5aef1efd304183d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aec090be04a0eadfc294c9a27463fce834b9a285b8e3d08d3cc0554aee77a19316925a76deeb92454b4237ff61f9ae44cfdb18303177bd6d8a4390e37981909a
|
|
7
|
+
data.tar.gz: 6af9c06a97e9b907afe3e0e6b48d48e3ad92df25ac3d9b0da9032622165c6169d18dca7d22c4f124f6a2214383162ca7cadb51e1de597ed0e4298f024e41d8ef
|
data/.DS_Store
CHANGED
|
Binary file
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.7.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,65 +1,67 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bobross (0.1.
|
|
4
|
+
bobross (0.1.13)
|
|
5
|
+
bearcat (~> 1.4.1)
|
|
6
|
+
bundler (~> 2.1.4)
|
|
7
|
+
forgery (~> 0.7.0)
|
|
8
|
+
rake (~> 13.0.1)
|
|
5
9
|
|
|
6
10
|
GEM
|
|
7
11
|
remote: https://rubygems.org/
|
|
8
12
|
specs:
|
|
9
|
-
activesupport (
|
|
13
|
+
activesupport (6.0.3.2)
|
|
10
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
11
15
|
i18n (>= 0.7, < 2)
|
|
12
16
|
minitest (~> 5.1)
|
|
13
17
|
tzinfo (~> 1.1)
|
|
14
|
-
|
|
18
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
|
19
|
+
bearcat (1.4.1)
|
|
15
20
|
activesupport
|
|
16
21
|
footrest (>= 0.2.2)
|
|
17
22
|
paul_walker (~> 0.1.1)
|
|
18
|
-
concurrent-ruby (1.1.
|
|
19
|
-
diff-lcs (1.
|
|
20
|
-
faraday (0.
|
|
23
|
+
concurrent-ruby (1.1.6)
|
|
24
|
+
diff-lcs (1.4.4)
|
|
25
|
+
faraday (0.17.3)
|
|
21
26
|
multipart-post (>= 1.2, < 3)
|
|
22
27
|
footrest (0.5.3)
|
|
23
28
|
activesupport (>= 3.0.0)
|
|
24
29
|
faraday (>= 0.9.0, < 1)
|
|
25
30
|
link_header (>= 0.0.7)
|
|
26
31
|
forgery (0.7.0)
|
|
27
|
-
i18n (1.
|
|
32
|
+
i18n (1.8.4)
|
|
28
33
|
concurrent-ruby (~> 1.0)
|
|
29
34
|
link_header (0.0.8)
|
|
30
|
-
minitest (5.
|
|
35
|
+
minitest (5.14.1)
|
|
31
36
|
multipart-post (2.1.1)
|
|
32
37
|
paul_walker (0.1.2)
|
|
33
38
|
redis (>= 4.0)
|
|
34
|
-
rake (
|
|
35
|
-
redis (4.1
|
|
36
|
-
rspec (3.
|
|
37
|
-
rspec-core (~> 3.
|
|
38
|
-
rspec-expectations (~> 3.
|
|
39
|
-
rspec-mocks (~> 3.
|
|
40
|
-
rspec-core (3.
|
|
41
|
-
rspec-support (~> 3.
|
|
42
|
-
rspec-expectations (3.
|
|
39
|
+
rake (13.0.1)
|
|
40
|
+
redis (4.2.1)
|
|
41
|
+
rspec (3.9.0)
|
|
42
|
+
rspec-core (~> 3.9.0)
|
|
43
|
+
rspec-expectations (~> 3.9.0)
|
|
44
|
+
rspec-mocks (~> 3.9.0)
|
|
45
|
+
rspec-core (3.9.2)
|
|
46
|
+
rspec-support (~> 3.9.3)
|
|
47
|
+
rspec-expectations (3.9.2)
|
|
43
48
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
44
|
-
rspec-support (~> 3.
|
|
45
|
-
rspec-mocks (3.
|
|
49
|
+
rspec-support (~> 3.9.0)
|
|
50
|
+
rspec-mocks (3.9.1)
|
|
46
51
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
47
|
-
rspec-support (~> 3.
|
|
48
|
-
rspec-support (3.
|
|
52
|
+
rspec-support (~> 3.9.0)
|
|
53
|
+
rspec-support (3.9.3)
|
|
49
54
|
thread_safe (0.3.6)
|
|
50
|
-
tzinfo (1.2.
|
|
55
|
+
tzinfo (1.2.7)
|
|
51
56
|
thread_safe (~> 0.1)
|
|
57
|
+
zeitwerk (2.4.0)
|
|
52
58
|
|
|
53
59
|
PLATFORMS
|
|
54
60
|
ruby
|
|
55
61
|
|
|
56
62
|
DEPENDENCIES
|
|
57
|
-
bearcat (~> 1.3.30)
|
|
58
63
|
bobross!
|
|
59
|
-
|
|
60
|
-
forgery (~> 0.7)
|
|
61
|
-
rake (~> 10.0)
|
|
62
|
-
rspec (~> 3.0)
|
|
64
|
+
rspec (~> 3.9)
|
|
63
65
|
|
|
64
66
|
BUNDLED WITH
|
|
65
|
-
2.
|
|
67
|
+
2.1.4
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'bobross'
|
|
5
5
|
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
|
8
8
|
|
|
9
9
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require
|
|
10
|
+
# require 'pry'
|
|
11
11
|
# Pry.start
|
|
12
12
|
|
|
13
|
-
require
|
|
13
|
+
require 'irb'
|
|
14
14
|
IRB.start(__FILE__)
|
data/bobross.gemspec
CHANGED
|
@@ -1,44 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
3
|
+
require 'bobross/version'
|
|
5
4
|
|
|
6
5
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name =
|
|
6
|
+
spec.name = 'bobross'
|
|
8
7
|
spec.version = Bobross::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
8
|
+
spec.authors = ['Jacob Slack', 'Trevor Byington']
|
|
9
|
+
spec.email = ['jacobs@instructure.com', 'tbyington@instructure.com', 'tabyington@gmail.com']
|
|
11
10
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
14
|
-
spec.homepage =
|
|
15
|
-
spec.license =
|
|
11
|
+
spec.summary = 'Generates data to put in your canvas instance.'
|
|
12
|
+
spec.description = 'Generates data to put in your canvas instance. Data can be exported as CSV for uploading or sent directly via api call'
|
|
13
|
+
spec.homepage = 'https://rubygems.org/gems/bobross'
|
|
14
|
+
spec.license = 'MIT'
|
|
16
15
|
|
|
17
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
18
17
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
|
19
18
|
if spec.respond_to?(:metadata)
|
|
20
|
-
spec.metadata[
|
|
21
|
-
|
|
22
|
-
spec.metadata[
|
|
23
|
-
spec.metadata["source_code_uri"] = "https://github.com/instructurecustomdevqa/bobross"
|
|
24
|
-
#pec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
|
19
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
|
20
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
21
|
+
spec.metadata['source_code_uri'] = 'https://github.com/instructurecustomdevqa/bobross'
|
|
25
22
|
else
|
|
26
|
-
raise
|
|
27
|
-
"public gem pushes."
|
|
23
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
|
28
24
|
end
|
|
29
25
|
|
|
30
26
|
# Specify which files should be added to the gem when it is released.
|
|
31
27
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
32
|
-
spec.files
|
|
28
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
33
29
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
34
30
|
end
|
|
35
|
-
spec.bindir =
|
|
31
|
+
spec.bindir = 'exe'
|
|
36
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
37
|
-
spec.require_paths = [
|
|
33
|
+
spec.require_paths = ['lib']
|
|
38
34
|
|
|
39
|
-
spec.
|
|
40
|
-
spec.
|
|
41
|
-
spec.
|
|
42
|
-
spec.
|
|
43
|
-
spec.add_development_dependency
|
|
35
|
+
spec.add_dependency 'bearcat', '~> 1.4.1'
|
|
36
|
+
spec.add_dependency 'bundler', '~> 2.1.4'
|
|
37
|
+
spec.add_dependency 'forgery', '~> 0.7.0'
|
|
38
|
+
spec.add_dependency 'rake', '~> 13.0.1'
|
|
39
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
|
44
40
|
end
|
data/lib/bobross.rb
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
10
|
-
require
|
|
11
|
-
require
|
|
12
|
-
require
|
|
13
|
-
require
|
|
14
|
-
require
|
|
1
|
+
require 'bobross/version'
|
|
2
|
+
require 'forgery'
|
|
3
|
+
require 'models/canvas_object'
|
|
4
|
+
require 'models/canvas_account'
|
|
5
|
+
require 'models/canvas_assignment_grade'
|
|
6
|
+
require 'models/canvas_assignment_group'
|
|
7
|
+
require 'models/canvas_assignment_submission'
|
|
8
|
+
require 'models/canvas_assignment'
|
|
9
|
+
require 'models/canvas_course'
|
|
10
|
+
require 'models/canvas_group_in_account'
|
|
11
|
+
require 'models/canvas_group_in_course'
|
|
12
|
+
require 'models/canvas_section'
|
|
13
|
+
require 'models/canvas_user'
|
|
14
|
+
require 'active_support/time'
|
|
15
|
+
require 'csv'
|
|
16
|
+
require 'net/http'
|
|
17
|
+
require 'uri'
|
|
15
18
|
|
|
16
19
|
module Bobross
|
|
17
20
|
class Error < StandardError; end
|
|
18
21
|
|
|
19
|
-
puts %q{
|
|
22
|
+
puts %q{
|
|
20
23
|
&&& && & &&
|
|
21
24
|
&& &\/&\|& ()|/ @, &&
|
|
22
25
|
&\/(/&/&||/& /_/)_&/_&
|
data/lib/bobross/version.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
class CanvasAccount <
|
|
1
|
+
class CanvasAccount < CanvasObject
|
|
2
|
+
|
|
2
3
|
attr_reader :name, :uid, :parent_uid, :root_uid, :time_zone, :sis_id, :workflow
|
|
3
4
|
|
|
4
5
|
def to_s
|
|
@@ -6,11 +7,10 @@ class CanvasAccount < Forgery
|
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
def to_csv
|
|
9
|
-
#row = [name, uid, parent_uid, root_uid, time_zone, sis_id, workflow]
|
|
10
10
|
row = [uid, parent_uid, name, 'active', nil]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
#future relase: Make fields reuired by canvas required here
|
|
13
|
+
# future relase: Make fields reuired by canvas required here
|
|
14
14
|
def initialize(opts = {})
|
|
15
15
|
@name = opts[:name] if opts[:name]
|
|
16
16
|
@uid = opts[:uid] if opts[:uid]
|
|
@@ -26,11 +26,11 @@ class CanvasAccount < Forgery
|
|
|
26
26
|
CanvasAccount.new(
|
|
27
27
|
{
|
|
28
28
|
name: a,
|
|
29
|
-
uid: "#{a}-#{rand(
|
|
29
|
+
uid: "#{a}-#{rand(10_000)}",
|
|
30
30
|
parent: parent_id,
|
|
31
31
|
root: root_id,
|
|
32
32
|
time_zone: Forgery('time').zone,
|
|
33
|
-
sis_id: (
|
|
33
|
+
sis_id: (10_000+rand(10_000_000)),
|
|
34
34
|
workflow: 'active'
|
|
35
35
|
}
|
|
36
36
|
)
|
|
@@ -46,12 +46,13 @@ class CanvasAccount < Forgery
|
|
|
46
46
|
accounts.push(CanvasAccount.random(parent, root))
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
CSV.open("./accounts.csv", "wb", write_headers: true, headers: header) do |csv|
|
|
49
|
+
header = %w[account_id parent_account_id name status integration_id]
|
|
50
|
+
CSV.open('./accounts.csv', 'wb', write_headers: true, headers: header) do |csv|
|
|
52
51
|
accounts.each do |acc|
|
|
53
52
|
csv << acc.to_csv
|
|
54
53
|
end
|
|
55
54
|
end
|
|
55
|
+
return accounts
|
|
56
56
|
end
|
|
57
|
+
|
|
57
58
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class CanvasAssignment <
|
|
1
|
+
class CanvasAssignment < CanvasObject
|
|
2
2
|
attr_reader :name, :description, :course_uid, :assignment_group
|
|
3
3
|
attr_accessor :due_at, :lock_at, :host_info
|
|
4
4
|
|
|
@@ -44,12 +44,13 @@ class CanvasAssignment < Forgery
|
|
|
44
44
|
assignments.push(CanvasAssignment.random(course, group))
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
|
-
header = [
|
|
48
|
-
CSV.open(
|
|
47
|
+
header = %w[name description due_at lock_at course_id assignment_group]
|
|
48
|
+
CSV.open('./assignments.csv', 'wb', write_headers: true, headers: header) do |csv|
|
|
49
49
|
assignments.each do |acc|
|
|
50
50
|
csv << acc.to_csv
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
|
+
return assignments
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
end
|
data/lib/models/canvas_course.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
class CanvasCourse <
|
|
1
|
+
class CanvasCourse < CanvasObject
|
|
2
2
|
attr_reader :name, :uid, :sis_id, :description, :account_id, :term_id, :start_date, :end_date
|
|
3
|
-
@@local_dictionaries =
|
|
3
|
+
@@local_dictionaries = $LOAD_PATH.grep(/bobross.*lib/).first
|
|
4
4
|
|
|
5
5
|
def initialize(opts = {})
|
|
6
6
|
@name = opts[:name] if opts[:name]
|
|
@@ -18,8 +18,7 @@ class CanvasCourse < Forgery
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def to_csv
|
|
21
|
-
|
|
22
|
-
row = [sis_id, uid, name, account_id, term_id, "active", nil, start_date, end_date, "online", nil]
|
|
21
|
+
row = [sis_id, uid, name, account_id, term_id, 'active', nil, start_date, end_date, 'online', nil]
|
|
23
22
|
end
|
|
24
23
|
|
|
25
24
|
def self.set_prefix prefix
|
|
@@ -31,7 +30,7 @@ class CanvasCourse < Forgery
|
|
|
31
30
|
{
|
|
32
31
|
name: CanvasCourse.course_name,
|
|
33
32
|
uid: CanvasCourse.course_code,
|
|
34
|
-
sis: (
|
|
33
|
+
sis: (12_000+rand(1_000_000)).to_s,
|
|
35
34
|
desc: CanvasCourse.description
|
|
36
35
|
}
|
|
37
36
|
)
|
|
@@ -61,12 +60,13 @@ class CanvasCourse < Forgery
|
|
|
61
60
|
courses.push(CanvasCourse.random)
|
|
62
61
|
end
|
|
63
62
|
end
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
CSV.open("./courses.csv", "wb", write_headers: true, headers: header) do |csv|
|
|
63
|
+
header = %w[course_id short_name long_name account_id term_id status integration_id start_date end_date course_format blueprint_course_id]
|
|
64
|
+
CSV.open('./courses.csv', 'wb', write_headers: true, headers: header) do |csv|
|
|
67
65
|
courses.each do |acc|
|
|
68
66
|
csv << acc.to_csv
|
|
69
67
|
end
|
|
70
68
|
end
|
|
69
|
+
return courses
|
|
71
70
|
end
|
|
71
|
+
|
|
72
72
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class CanvasObject < Forgery
|
|
2
|
+
|
|
3
|
+
def self.push_csv_to_canvas(opts={})
|
|
4
|
+
if(opts.nil? || opts[:host].nil? || opts[:token].nil?)
|
|
5
|
+
raise 'Please provide options hash with both :host and :token'
|
|
6
|
+
end
|
|
7
|
+
if(!File.file?(opts[:file]))
|
|
8
|
+
raise 'Please gen_file before trying to push to canvas'
|
|
9
|
+
end
|
|
10
|
+
uri = URI.parse("https://#{opts[:host]}/api/v1/accounts/self/sis_imports.json?import_type=instructure_csv")
|
|
11
|
+
request = Net::HTTP::Post.new(uri)
|
|
12
|
+
request.content_type = 'text/csv'
|
|
13
|
+
request['Authorization'] = "Bearer #{opts[:token]}"
|
|
14
|
+
request.body = ''
|
|
15
|
+
request.body << File.read(opts[:file])
|
|
16
|
+
|
|
17
|
+
req_options = {
|
|
18
|
+
use_ssl: uri.scheme == 'https',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
|
22
|
+
http.request(request)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
class CanvasSection <
|
|
1
|
+
class CanvasSection < CanvasObject
|
|
2
2
|
attr_reader :name, :sis_id, :start_date, :end_date
|
|
3
3
|
attr_accessor :course_uid, :course_sis_id
|
|
4
4
|
|
|
5
5
|
def to_csv
|
|
6
|
-
row = [sis_id, course_sis_id, name,
|
|
6
|
+
row = [sis_id, course_sis_id, name, 'active', nil, start_date, end_date]
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def initialize(opts = {})
|
|
@@ -35,12 +35,14 @@ class CanvasSection < Forgery
|
|
|
35
35
|
sections.push(CanvasSection.random)
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
|
-
|
|
39
|
-
header = [
|
|
40
|
-
CSV.open(
|
|
38
|
+
|
|
39
|
+
header = %w[section_id course_id name status integration_id start_date end_date]
|
|
40
|
+
CSV.open('./sections.csv', 'wb', write_headers: true, headers: header) do |csv|
|
|
41
41
|
sections.each do |acc|
|
|
42
42
|
csv << acc.to_csv
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
|
+
return sections
|
|
45
46
|
end
|
|
47
|
+
|
|
46
48
|
end
|
data/lib/models/canvas_user.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class CanvasUser <
|
|
1
|
+
class CanvasUser < CanvasObject
|
|
2
2
|
attr_reader :name, :sis_id, :login_id, :email, :time_zone
|
|
3
3
|
|
|
4
4
|
def to_s
|
|
@@ -7,8 +7,7 @@ class CanvasUser < Forgery
|
|
|
7
7
|
|
|
8
8
|
def to_csv
|
|
9
9
|
names = name.split(' ')
|
|
10
|
-
|
|
11
|
-
row = [sis_id, nil, login_id, nil, nil, nil, names.first, names.last, name, "#{names.last}, #{names.first}", "#{names.first[0].downcase}#{names.last.downcase}", email, "active"]
|
|
10
|
+
row = [sis_id, nil, login_id, nil, nil, nil, names.first, names.last, name, "#{names.last}, #{names.first}", "#{names.first[0].downcase}#{names.last.downcase}", email, 'active']
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
def initialize (opts = {})
|
|
@@ -22,7 +21,7 @@ class CanvasUser < Forgery
|
|
|
22
21
|
def self.random (opts = {})
|
|
23
22
|
fn = Forgery('name').first_name
|
|
24
23
|
ln = Forgery('name').last_name
|
|
25
|
-
domain =
|
|
24
|
+
domain = 'instructure.com'
|
|
26
25
|
if opts
|
|
27
26
|
opts[:email_prefix] ? epre = "#{opts[:email_prefix]}+" : epre = ''
|
|
28
27
|
opts[:sis_prefix] ? sispre = "#{opts[:sis_prefix]}_" : sispre = ''
|
|
@@ -32,7 +31,7 @@ class CanvasUser < Forgery
|
|
|
32
31
|
CanvasUser.new(
|
|
33
32
|
{
|
|
34
33
|
name: "#{fn} #{ln}",
|
|
35
|
-
sis: "#{sispre}#{(
|
|
34
|
+
sis: "#{sispre}#{(3_000+rand(1_000_000))}",
|
|
36
35
|
login: e,
|
|
37
36
|
email: e,
|
|
38
37
|
time_zone: Forgery('time').zone
|
|
@@ -49,12 +48,13 @@ class CanvasUser < Forgery
|
|
|
49
48
|
users.push(CanvasUser.random(settings))
|
|
50
49
|
end
|
|
51
50
|
end
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
CSV.open("./users.csv", "wb", write_headers: true, headers: header) do |csv|
|
|
51
|
+
header = %w[user_id integration_id login_id password ssha_password authentication_provider_id first_name last_name full_name sortable_name short_name email status]
|
|
52
|
+
CSV.open('./users.csv', 'wb', write_headers: true, headers: header) do |csv|
|
|
55
53
|
users.each do |acc|
|
|
56
54
|
csv << acc.to_csv
|
|
57
55
|
end
|
|
58
56
|
end
|
|
57
|
+
return users
|
|
59
58
|
end
|
|
59
|
+
|
|
60
60
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bobross
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jacob Slack
|
|
@@ -9,78 +9,78 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2020-07-21 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
15
|
+
name: bearcat
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
18
|
- - "~>"
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version:
|
|
21
|
-
type: :
|
|
20
|
+
version: 1.4.1
|
|
21
|
+
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
25
|
- - "~>"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version:
|
|
27
|
+
version: 1.4.1
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
29
|
+
name: bundler
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
32
|
- - "~>"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
35
|
-
type: :
|
|
34
|
+
version: 2.1.4
|
|
35
|
+
type: :runtime
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
39
|
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
41
|
+
version: 2.1.4
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
43
|
+
name: forgery
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
46
|
- - "~>"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version:
|
|
49
|
-
type: :
|
|
48
|
+
version: 0.7.0
|
|
49
|
+
type: :runtime
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
53
|
- - "~>"
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version:
|
|
55
|
+
version: 0.7.0
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
57
|
+
name: rake
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
60
|
- - "~>"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
63
|
-
type: :
|
|
62
|
+
version: 13.0.1
|
|
63
|
+
type: :runtime
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
67
|
- - "~>"
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
69
|
+
version: 13.0.1
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
|
-
name:
|
|
71
|
+
name: rspec
|
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
|
74
74
|
- - "~>"
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '
|
|
76
|
+
version: '3.9'
|
|
77
77
|
type: :development
|
|
78
78
|
prerelease: false
|
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
|
81
81
|
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: '
|
|
83
|
+
version: '3.9'
|
|
84
84
|
description: Generates data to put in your canvas instance. Data can be exported as
|
|
85
85
|
CSV for uploading or sent directly via api call
|
|
86
86
|
email:
|
|
@@ -95,7 +95,9 @@ files:
|
|
|
95
95
|
- ".gitignore"
|
|
96
96
|
- ".rbenv-gemsets"
|
|
97
97
|
- ".rspec"
|
|
98
|
+
- ".ruby-version"
|
|
98
99
|
- ".travis.yml"
|
|
100
|
+
- ".vscode/settings.json"
|
|
99
101
|
- Gemfile
|
|
100
102
|
- Gemfile.lock
|
|
101
103
|
- LICENSE.txt
|
|
@@ -116,6 +118,7 @@ files:
|
|
|
116
118
|
- lib/models/canvas_course.rb
|
|
117
119
|
- lib/models/canvas_group_in_account.rb
|
|
118
120
|
- lib/models/canvas_group_in_course.rb
|
|
121
|
+
- lib/models/canvas_object.rb
|
|
119
122
|
- lib/models/canvas_section.rb
|
|
120
123
|
- lib/models/canvas_user.rb
|
|
121
124
|
homepage: https://rubygems.org/gems/bobross
|
|
@@ -140,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
140
143
|
- !ruby/object:Gem::Version
|
|
141
144
|
version: '0'
|
|
142
145
|
requirements: []
|
|
143
|
-
rubygems_version: 3.
|
|
146
|
+
rubygems_version: 3.1.2
|
|
144
147
|
signing_key:
|
|
145
148
|
specification_version: 4
|
|
146
149
|
summary: Generates data to put in your canvas instance.
|