learn-co 2.5.3 → 3.0.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: ba1a0db8c675aa61daf82c25e9964ac0240bfea0
4
- data.tar.gz: 79054954a8b884879be731b982f70d952043eaa9
3
+ metadata.gz: 6004d385cb67eb2766777f6bc0a1d6da7cdaa3b3
4
+ data.tar.gz: 4b8556abc9643c2c73d9ef9b9cc8f90dc98a7f30
5
5
  SHA512:
6
- metadata.gz: 3f01a5574fca0b08fc6d8771a101bc266641a7023c126e8a8c3cb17c82d5514be7fb6869954a9bec02401a7e9cd0fd461a7c573c87006650928bc5f6d96c9bcd
7
- data.tar.gz: eb0dbb6e3eca35f5b1189d7293c5689e113281597165c19103e59844fb2adbe633d83c6dfee6e696e93f924235babf5e836e52bca3db326a098dfa9ed1c81832
6
+ metadata.gz: bb45b4f663f8c78be64d561c523b54469f1c07077d2dc099043c2bdd373bad5427088bbe056952808a40c8d24e95f123919bdf1fe5d2fec23048666223ae7294
7
+ data.tar.gz: 2da3e2838819f1922520e2ffdbd83dee8b637143bc953d829abe3ea2a9947b68288925bf1ab896176018a5e2aa26f9bf906d70de89f4218181e34840814ed912
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "learn-test", ">= 1.2.23"
25
25
  spec.add_runtime_dependency "learn-config", ">= 1.0.74"
26
26
  spec.add_runtime_dependency "learn-open", ">= 1.1.52"
27
- spec.add_runtime_dependency "learn-submit", ">= 1.0.13"
27
+ spec.add_runtime_dependency "learn-submit", ">= 1.1.0"
28
28
  spec.add_runtime_dependency "learn-doctor", ">= 1.0.3"
29
29
  spec.add_runtime_dependency "learn-generate", ">= 1.0.14"
30
30
  spec.add_runtime_dependency "learn-status", ">= 1.0.1"
@@ -2,6 +2,7 @@ require 'thor'
2
2
 
3
3
  require 'learn/version'
4
4
  require 'learn/internet_connection'
5
+ require 'learn/team_members/parser'
5
6
  require 'learn/cli'
6
7
  require 'learn/options_sanitizer'
7
8
  require 'learn/lab/parser'
@@ -24,14 +24,24 @@ module Learn
24
24
  puts Learn::VERSION
25
25
  end
26
26
 
27
- desc 'submit ["message"]', 'Submit your completed lesson'
27
+ desc 'submit [-m|--message "message"] [-t|--team @username @username2]', 'Submit your completed lesson'
28
+ option :message, required: false, type: :string, aliases: ['m']
29
+ option :team, required: false, type: :string, aliases: ['t']
28
30
  long_desc <<-LONGDESC
29
- `learn submit ["message"]` will submit your lesson to Learn.
31
+ `learn submit [-m|--message "message"] [-t|--team @username, @username2]` will submit your lesson to Learn.
32
+
33
+ If you provide the -t|--team flag, specified team memebers will also get credit.
30
34
 
31
35
  It will add your changes, commit them, push to GitHub, and issue a pull request.
32
36
  LONGDESC
33
37
  def submit(*opts)
34
- system("learn-submit #{opts.join(' ')}")
38
+ commit_message = if options['team']
39
+ Learn::TeamMembers::Parser.new(ARGV).execute
40
+ else
41
+ options['message']
42
+ end
43
+
44
+ system("learn-submit #{commit_message}")
35
45
  end
36
46
 
37
47
  desc "open [lesson-name] [--editor=editor-binary]", "Open your current lesson [or the given lesson] [with your editor]"
@@ -0,0 +1,71 @@
1
+ module Learn
2
+ module TeamMembers
3
+ class Parser
4
+ attr_reader :full_args
5
+ attr_accessor :members_list
6
+
7
+ def initialize(full_args)
8
+ @full_args = full_args
9
+ end
10
+
11
+ def execute
12
+ parse_full_args
13
+ sanitize_members
14
+ return_message
15
+ end
16
+
17
+ private
18
+
19
+ def parse_full_args
20
+ index = (full_args.index('-t') || full_args.index('--t') || full_args.index('--team') || full_args.index('-team')) + 1
21
+ message_index = full_args.index('-m') || full_args.index('--message')
22
+
23
+ self.members_list = if !message_index || (message_index && (index > message_index))
24
+ full_args[index..-1]
25
+ else
26
+ full_args[index...message_index]
27
+ end
28
+ end
29
+
30
+ def sanitize_members
31
+ remove_trailing_commas!
32
+
33
+ if members_list.any? {|m| m.include?(',')}
34
+ split_members_list!
35
+ end
36
+
37
+ if !every_member_starts_with_at_symbol?
38
+ prepend_at_symbols!
39
+ end
40
+ end
41
+
42
+ def split_members_list!
43
+ members_list.map! do |m|
44
+ if m.include?(',')
45
+ m.split(',')
46
+ else
47
+ m
48
+ end
49
+ end
50
+
51
+ members_list.flatten!
52
+ end
53
+
54
+ def remove_trailing_commas!
55
+ members_list.map! {|m| m.chomp(',').strip}
56
+ end
57
+
58
+ def every_member_starts_with_at_symbol?
59
+ members_list.all? {|m| m.start_with?('@')}
60
+ end
61
+
62
+ def prepend_at_symbols!
63
+ members_list.each {|m| m.prepend('@') if !m.start_with?('@')}
64
+ end
65
+
66
+ def return_message
67
+ "team: #{self.members_list.join(' ')}"
68
+ end
69
+ end
70
+ end
71
+ end
@@ -1,3 +1,3 @@
1
1
  module Learn
2
- VERSION = '2.5.3'
2
+ VERSION = '3.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: learn-co
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.3
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flatiron School
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-09 00:00:00.000000000 Z
11
+ date: 2015-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.13
103
+ version: 1.1.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.13
110
+ version: 1.1.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: learn-doctor
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -184,6 +184,7 @@ files:
184
184
  - lib/learn/internet_connection.rb
185
185
  - lib/learn/lab/parser.rb
186
186
  - lib/learn/options_sanitizer.rb
187
+ - lib/learn/team_members/parser.rb
187
188
  - lib/learn/version.rb
188
189
  homepage: https://learn.co
189
190
  licenses: