newline_hw 1.1.8 → 1.2.0

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: c40e8bdb05fbe46ffa6b7f7d2b6b9dd750dfe7dc
4
- data.tar.gz: e691b4b10cabe3a9e64c0e9dbba00587f959c335
3
+ metadata.gz: 6f57670257d14b08ce22422c0e0d9d7abbed9fb4
4
+ data.tar.gz: 89614b4a1c0b89695867526759519ce55375b74f
5
5
  SHA512:
6
- metadata.gz: f464282cf73d618cd2e1d7436cbce9494916d22ade231918f88471e8c32a0b7841d1a5e3cac25c675e939967119f9d9717aa754d47244763cfe1c894765c737e
7
- data.tar.gz: ab615c2f6dffdc00ed5a40bd4766630fbf92445adfc3705f0fca225c049d4d11b99907ea97139682884b992f498876af03e31b1f7449198bdcff93dcb5a71e10
6
+ metadata.gz: 97e395b23dc733330ddf7f2165768128ead455b5f1230e1808d0972cb68a0819f5833bc5e48b5d7178bd983c6eb14586b6b2f47a93282e58a5b4ec3e2b691040
7
+ data.tar.gz: 7ab360621efbdd342fa56b0694b97ef7865a2cdcb43899eac49aa1aa225fa959b1a308e716de59ab1ab31ce5603f9445072cb03d9ab830ea0c2e475ddc08f8db
@@ -1,5 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
  # coding: utf-8
3
+
4
+ require "rubygems"
5
+
6
+ begin
7
+ require "bundler/setup"
8
+ rescue
9
+ end
10
+
3
11
  require "logger"
4
12
  require "json"
5
13
  require_relative "../lib/newline_hw"
@@ -17,7 +25,6 @@ begin
17
25
  rescue StandardError => e
18
26
  logger.error e
19
27
  exit 1
20
-
21
28
  rescue SystemExit
22
29
  exit 0
23
30
  end
@@ -21,4 +21,4 @@ elif ( [ -f /usr/local/share/chruby/chruby.sh ] && [ -n "$BASH_VERSION" ] || [ -
21
21
  fi
22
22
 
23
23
  exeDir=$(dirname -- "$BASH_SOURCE")
24
- $exeDir/newline_hw_stream
24
+ "$exeDir/newline_hw_stream"
@@ -24,7 +24,7 @@ module NewlineHw
24
24
  end
25
25
 
26
26
  def cloneable?
27
- pr? || gist? || github_project_link? || git? || false
27
+ pr? || gist? || branch? || github_project_link? || git? || false
28
28
  end
29
29
 
30
30
  def sha
@@ -55,6 +55,10 @@ module NewlineHw
55
55
  %r{\/\/github.com}.match(url) && %r{\/pull\/\d+}.match(url)
56
56
  end
57
57
 
58
+ def branch?
59
+ %r{\/\/github.com}.match(url) && %r{\/tree\/([^\\]+)}.match(url)
60
+ end
61
+
58
62
  def dir_name
59
63
  git_url.split(%r{[\/\.]})[-3..-2].join("-")
60
64
  end
@@ -79,7 +83,8 @@ module NewlineHw
79
83
  cmds << "git clone #{git_url} #{dir_name}"
80
84
  cmds << "cd #{dir_name}"
81
85
  cmds << fetch_and_checkout_pr if pr?
82
- cmds << "git checkout #{sha} -b #{BRANCH_NAME}" if sha
86
+ cmds << fetch_and_checkout_branch if branch?
87
+ cmds << "git checkout -b #{BRANCH_NAME} #{sha}" if sha
83
88
  cmds << "echo #{Shellwords.escape JSON.pretty_generate submission_info} > .newline_submission_meta.json" if newline_submission_id
84
89
  cmds.join(" && ")
85
90
  end
@@ -88,6 +93,14 @@ module NewlineHw
88
93
  "git fetch origin pull/#{pr_id}/head:#{BRANCH_NAME} && git checkout #{BRANCH_NAME}"
89
94
  end
90
95
 
96
+ def submitted_branch_name
97
+ branch?[1]
98
+ end
99
+
100
+ private def fetch_and_checkout_branch
101
+ "git fetch origin #{submitted_branch_name}:#{BRANCH_NAME} && git checkout #{BRANCH_NAME}"
102
+ end
103
+
91
104
  private def infer_git_url_from_pr
92
105
  url.split("/pull/").first + ".git"
93
106
  end
@@ -1,3 +1,3 @@
1
1
  module NewlineHw
2
- VERSION = "1.1.8".freeze
2
+ VERSION = "1.2.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newline_hw
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russell Osborne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-04 00:00:00.000000000 Z
11
+ date: 2017-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  version: '0'
183
183
  requirements: []
184
184
  rubyforge_project:
185
- rubygems_version: 2.5.2
185
+ rubygems_version: 2.6.11
186
186
  signing_key:
187
187
  specification_version: 4
188
188
  summary: Quickly Clone and setup basic ruby and JS projects.