devflow 0.0.3 → 0.0.4

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
  SHA256:
3
- metadata.gz: aabd5ba8f8d9adc8ea4b665dfe1c1b03a4963950056bba769300e3c86bc3945d
4
- data.tar.gz: a0661dbe39969fde87d8223f2d7f26f4847df2414bf2bc77a2210192d4e537aa
3
+ metadata.gz: 522a84a07b02411019278e88f44ceb22bdce60ae90b37f1779834096aa86fc85
4
+ data.tar.gz: 04e7cdd660cd65bb4a6cbae00ed346e488f0e957337d1cbd1be5534ac75e8f16
5
5
  SHA512:
6
- metadata.gz: 5ad4d483aae485978e2eeb710c0eb453750ae36d58367101462c34ecbbcdc4926c215c2da202777540a22a3f85c85e729db472bfd9c78f9a5c9bbf05967d819e
7
- data.tar.gz: 97f98c813de002e534d572a915ede57feba97c74a9706227d21058ecf8dabd85680760a52bb3932005bd4819d6e0973550c0db52c7696806c78c4827214e536c
6
+ metadata.gz: 8ea1599bad93df1a17d09809693f81c4bf53506476211122d50b577e5eb37d67428fc09d2ed24035fa8aa7672995b896582d8d7dcf2acf05178179a247e82cef
7
+ data.tar.gz: 65df0c951f96bece6f5ea622714ccb624693356602ca193e7d628221072f5448ce1eac5ebbc1165af5019dcfc3c5868be7d0dd5b700bfb7141f7935276351a8e
data/README.md CHANGED
@@ -23,11 +23,10 @@ This gem aims to solve that.
23
23
  3. run `devflow` when starting working on a new story
24
24
  4. Profit?
25
25
 
26
-
27
26
  ## Bonus
28
27
  Install [hub](https://github.com/github/hub) and add to your .gitconfig;
29
28
  ```
30
29
  [alias]
31
- p-r = "!pr_template_builder | hub -c core.commentChar=';' pull-request -oe -F -"
30
+ p-r = "!devflow pr | hub -c core.commentChar=';' pull-request -oe -F -"
32
31
  ```
33
32
  Now you can easily create PRs from the commandline!
data/bin/devflow CHANGED
@@ -4,25 +4,11 @@ require "devflow"
4
4
 
5
5
  DevFlow::TargetProcess.check_config!
6
6
 
7
- assignments = DevFlow::TargetProcess.assignments
7
+ args = ARGV[1..-1]
8
8
 
9
- if assignments.count == 1
10
- assignment = assignments.first
9
+ case ARGV[0]
10
+ when "pr"
11
+ DevFlow::Commands::PR.new(args)
11
12
  else
12
- puts "Multiple tasks in progress. Which one are you working on?"
13
- assignments.each do |a|
14
- puts "#{a[:id]}: #{a[:name]}"
15
- end
16
- selection = gets.chomp.to_i
17
-
18
- assignment = assignments.find { |a| a[:id] == selection }
19
-
20
- unless assignment
21
- puts "No such task"
22
- exit 1
23
- end
13
+ DevFlow::Commands::Branch.new(args)
24
14
  end
25
-
26
- branch = "#{assignment[:id]}-#{DevFlow.branchify(assignment[:name])}"
27
-
28
- `git checkout -b #{branch}`
@@ -0,0 +1,11 @@
1
+ module DevFlow
2
+ class Command
3
+ def initialize(args)
4
+ @args = args
5
+ end
6
+
7
+ private
8
+
9
+ attr_reader :args
10
+ end
11
+ end
@@ -0,0 +1,37 @@
1
+ module DevFlow
2
+ module Commands
3
+ class Branch < DevFlow::Command
4
+ def call
5
+ unless current_assignment
6
+ puts "No such task"
7
+ exit 1
8
+ end
9
+
10
+ branch = "#{assignment[:id]}-#{DevFlow.branchify(assignment[:name])}"
11
+
12
+ `git checkout -b #{branch}`
13
+ end
14
+
15
+ private
16
+
17
+ def assignments
18
+ DevFlow::TargetProcess.assignments
19
+ end
20
+
21
+ def current_assignment
22
+ @current_assignment =
23
+ if assignments.count == 1
24
+ assignments.first
25
+ else
26
+ puts "Multiple tasks in progress. Which one are you working on?"
27
+ assignments.each do |a|
28
+ puts "#{a[:id]}: #{a[:name]}"
29
+ end
30
+ selection = gets.chomp.to_i
31
+
32
+ assignments.find { |a| a[:id] == selection }
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,50 @@
1
+ module DevFlow
2
+ module Commands
3
+ class PR < DevFlow::Command
4
+ STORY_URL_BASE = "#{DevFlow::TargetProcess::BASE_URI}/entity"
5
+ STORY_URL_PATTERN = /#{STORY_URL_BASE}\/(\d+)/
6
+ STORY_REGEX = /^(\d+)-(.*)/
7
+ FV_REGEX = /^fv-(.*)/
8
+ PR_TEMPLATES_PATHS = %w[
9
+ .github/PULL_REQUEST_TEMPLATE.md
10
+ ]
11
+
12
+ def call
13
+ branch = `git rev-parse --abbrev-ref HEAD`
14
+
15
+ def titleize(str)
16
+ str.tr("-", " ").capitalize
17
+ end
18
+
19
+ case branch
20
+ when story_regex
21
+ story_id = $1
22
+ story_url = STORY_URL_BASE + "/" + story_id
23
+ title = "[#{story_id}] #{titleize($2)}"
24
+ when fv_regex
25
+ story_url = ""
26
+ title = "[FV] #{titleize($1)}"
27
+ else
28
+ story_url = ""
29
+ title = titleize(branch)
30
+ end
31
+
32
+ message = if (file = PR_TEMPLATES_PATHS.find { |p| File.exist?(p) })
33
+ <<~MESS
34
+ #{title}
35
+
36
+ #{File.read(file).gsub(STORY_URL_PATTERN, story_url)}
37
+ MESS
38
+ else
39
+ <<~MESS
40
+ #{title}
41
+
42
+ #{story_url}
43
+ MESS
44
+ end
45
+
46
+ puts message
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module DevFlow
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micke Lisinge
@@ -43,7 +43,6 @@ email:
43
43
  - hi@micke.me
44
44
  executables:
45
45
  - devflow
46
- - pr_template_builder
47
46
  extensions: []
48
47
  extra_rdoc_files: []
49
48
  files:
@@ -53,9 +52,11 @@ files:
53
52
  - LICENSE
54
53
  - README.md
55
54
  - bin/devflow
56
- - bin/pr_template_builder
57
55
  - devflow.gemspec
58
56
  - lib/devflow.rb
57
+ - lib/devflow/command.rb
58
+ - lib/devflow/commands/branch.rb
59
+ - lib/devflow/commands/pr.rb
59
60
  - lib/devflow/target_process.rb
60
61
  - lib/devflow/target_process/error.rb
61
62
  - lib/devflow/version.rb
@@ -1,47 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "devflow"
4
-
5
- DevFlow::TargetProcess.check_config!
6
-
7
- story_url_base = "#{DevFlow::TargetProcess::BASE_URI}/entity"
8
- story_url_pattern = /#{story_url_base}\/(\d+)/
9
- story_regex = /^(\d+)-(.*)/
10
- fv_regex = /^fv-(.*)/
11
- branch = `git rev-parse --abbrev-ref HEAD`
12
- pr_templates_paths = %w[
13
- .github/PULL_REQUEST_TEMPLATE.md
14
- ]
15
-
16
- def titleize(str)
17
- str.tr("-", " ").capitalize
18
- end
19
-
20
- case branch
21
- when story_regex
22
- story_id = $1
23
- story_url = story_url_base + "/" + story_id
24
- title = "[#{story_id}] #{titleize($2)}"
25
- when fv_regex
26
- story_url = ""
27
- title = "[FV] #{titleize($1)}"
28
- else
29
- story_url = ""
30
- title = titleize(branch)
31
- end
32
-
33
- message = if (file = pr_templates_paths.find { |p| File.exist?(p) })
34
- <<~MESS
35
- #{title}
36
-
37
- #{File.read(file).gsub(story_url_pattern, story_url)}
38
- MESS
39
- else
40
- <<~MESS
41
- #{title}
42
-
43
- #{story_url}
44
- MESS
45
- end
46
-
47
- puts message