makers_toolbelt 0.1.3 → 0.2.0

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: 483a84750e0628343f363d6e54df722bc83ebcb2
4
- data.tar.gz: 35a0e3b06df60fff7bf73b0b54c1ba56cc6a2366
3
+ metadata.gz: f5c7bcc459271d34a0af77e7190c313db9a5ee33
4
+ data.tar.gz: 0d93bea6d24743f08bd144c33f3fa60b90468f83
5
5
  SHA512:
6
- metadata.gz: cb11599fd4a0f5547fb5e8e812dff0e82ef0534b754945a63c6421841407b56cffaf54879493c67fbc44c6c70cad027954339105712dc0daae01d1ddb0cef6f2
7
- data.tar.gz: c337b59998774e7ac403e2e6444a33ddc0d6afaa35f4019e45288f42a0da2ecdfab627e3bebf8af989d812bd9024bed7ada88e52a54ba144c87ea74eab113caa
6
+ metadata.gz: c9b0f4268dfdda1c4fe98a09d2770e9be6616dc7efaf2ccbd926a6547ae1f713c43c3f6408f6d9760ee4eaf2dc4d87f74dcff83304472842522e8751247c246d
7
+ data.tar.gz: 0faccf941161b48a6ef31b31f8ff2df3724365170f74a6f427d76ef5fb2bb36a8c7014a5bf08c0fec05c0c4d943a22a8550bbc3aeb37b597afc6cc1af6e68cd1
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: makers_toolbelt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Forrest
8
8
  - Sam Joseph
9
+ - Daniel Le Dosquet-Bergquist
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2016-01-18 00:00:00.000000000 Z
13
+ date: 2017-07-25 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: octokit
@@ -39,20 +40,116 @@ dependencies:
39
40
  - - ">="
40
41
  - !ruby/object:Gem::Version
41
42
  version: '0'
42
- description:
43
- email:
43
+ - !ruby/object:Gem::Dependency
44
+ name: commander
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: httparty
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rspec
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: webmock
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: byebug
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: bundler
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rake
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ description: Makers Academy command toolbelt
142
+ email:
143
+ - dan@makersacademy.com
44
144
  executables:
45
145
  - makers
46
146
  extensions: []
47
147
  extra_rdoc_files: []
48
148
  files:
49
149
  - bin/makers
50
- - command_map.yml
51
- - lib/makers_toolbelt.rb
52
- - lib/makers_toolbelt/fetch_pull_requests.rb
53
- - lib/makers_toolbelt/generate_pairs.rb
54
- homepage:
55
- licenses: []
150
+ homepage: http://www.makersacademy.com
151
+ licenses:
152
+ - MIT
56
153
  metadata: {}
57
154
  post_install_message:
58
155
  rdoc_options: []
@@ -62,7 +159,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
159
  requirements:
63
160
  - - ">="
64
161
  - !ruby/object:Gem::Version
65
- version: '0'
162
+ version: 2.4.1
66
163
  required_rubygems_version: !ruby/object:Gem::Requirement
67
164
  requirements:
68
165
  - - ">="
@@ -70,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
70
167
  version: '0'
71
168
  requirements: []
72
169
  rubyforge_project:
73
- rubygems_version: 2.4.5.1
170
+ rubygems_version: 2.6.11
74
171
  signing_key:
75
172
  specification_version: 4
76
173
  summary: Makers Academy command toolbelt
data/command_map.yml DELETED
@@ -1,6 +0,0 @@
1
- fetch_pull_requests:
2
- class: FetchPullRequests
3
- args: [filter]
4
- generate_pairs:
5
- class: GeneratePairs
6
- args: [source]
@@ -1,108 +0,0 @@
1
- require 'octokit'
2
-
3
- module MakersToolbelt
4
- class FetchPullRequests
5
- OPEN_SWITCHES = ['-a', '--all', '-o', '--open']
6
- CLOSED_SWITCHES = ['-a', '--all', '-c', '--closed']
7
-
8
- GITHUB_REMOTE_REGEX = /github\.com(?::|\/)?(.+\/[\w\-]+)(?:\.git|\/)?\n/
9
-
10
- attr_reader :options, :filter
11
-
12
- def initialize(options = {})
13
- @options = options
14
- @filter = options[:filter] || '--open'
15
- end
16
-
17
- def run()
18
- pulls = []
19
- pulls << open_pull_requests if include_open?
20
- pulls << closed_pull_requests if include_closed?
21
-
22
- pulls.flatten!.select! {|p| p.head.repo }
23
-
24
- pulls.map { |p| [p.head.repo.owner.login, p.head.repo.html_url] }.each do |name, url|
25
- puts "adding #{name}"
26
- `git remote add #{name} #{url}`
27
- puts "fetching #{url}"
28
- `git fetch #{name}`
29
- end
30
- end
31
-
32
- def repo
33
- @repo ||= repo_from_remote_path(origin_path)
34
- end
35
-
36
- def repo_from_remote_path(path)
37
- @regex ||= GITHUB_REMOTE_REGEX
38
- @regex.match(path).captures.first
39
- rescue
40
- fail NotFoundError.new('Could not find remote origin')
41
- end
42
-
43
- def include_open?
44
- OPEN_SWITCHES.include? filter
45
- end
46
-
47
- def include_closed?
48
- CLOSED_SWITCHES.include? filter
49
- end
50
-
51
- private
52
-
53
- def open_pull_requests
54
- puts "fetching open pull requests from #{repo}..."
55
- fetch_pull_requests('open')
56
- end
57
-
58
- def closed_pull_requests
59
- puts "fetching closed pull requests from #{repo}..."
60
- fetch_pull_requests('closed')
61
- end
62
-
63
- def fetch_pull_requests(state)
64
- pulls = client.pull_requests repo, state: state, per_page: 100
65
- fetch_more_pages(pulls)
66
- rescue StandardError => e
67
- puts "Error occurred while fetching pull requests: #{e.message}"
68
- ensure
69
- pulls
70
- end
71
-
72
- def fetch_more_pages(into_array)
73
- next_page = client.last_response.rels[:next]
74
- while next_page do
75
- response = next_page.get
76
- into_array << response.data
77
- next_page = response.rels[:next]
78
- end
79
- into_array
80
- end
81
-
82
- def origin_path
83
- @origin_path ||= `git remote show origin | grep 'Fetch URL:'`
84
- end
85
-
86
- def client
87
- @client ||= create_client
88
- end
89
-
90
- def create_client
91
- token = ENV['MAKERS_TOOLBELT_GITHUB_TOKEN']
92
- if token
93
- Octokit::Client.new access_token: token
94
- else
95
- create_client_from_config
96
- end
97
- end
98
-
99
- def create_client_from_config
100
- print 'Enter your GitHub username: '
101
- username = STDIN.gets.chomp
102
- print "Enter GitHub password for #{username}: "
103
- password = STDIN.noecho(&:gets).chomp
104
- Octokit::Client.new login: username, password: password
105
- end
106
- end
107
-
108
- end
@@ -1,38 +0,0 @@
1
- require 'one_factorization'
2
- require 'json'
3
-
4
- class GeneratePairs
5
- FILE_EXTENSION = 'pairs'
6
-
7
- attr_reader :source
8
-
9
- def self.load_names(file_path)
10
- File.readlines(file_path).map(&:strip)
11
- end
12
-
13
- def initialize(options = {})
14
- @source = options[:source]
15
- end
16
-
17
- def run
18
- names = GeneratePairs.load_names(source)
19
- File.open(path, 'w') do |file|
20
- puts "Pair assignments created in file #{path}"
21
- file.write names.one_factorize.shuffle.to_json
22
- end
23
- end
24
-
25
- def path
26
- File.join(source_directory, filename)
27
- end
28
-
29
- private
30
-
31
- def source_directory
32
- File.dirname(source)
33
- end
34
-
35
- def filename
36
- "#{File.basename(source)}.#{FILE_EXTENSION}"
37
- end
38
- end
@@ -1,7 +0,0 @@
1
- require 'yaml'
2
- require 'makers_toolbelt/fetch_pull_requests'
3
- require 'makers_toolbelt/generate_pairs'
4
-
5
- module MakersToolbelt
6
- class NotFoundError < StandardError; end
7
- end