pdd 0.21.0 → 0.21.1

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: 61cbd66550df0bd17c8916fa490a6e85f8c3991475c609a013b73db2e5891f16
4
- data.tar.gz: 015351fbd2e277409faf706ccd1a590d5a962e49f6fdfb4c6318e371f658c96a
3
+ metadata.gz: ef027790e2aa528548fcb97f52632e7740f2a28a9ed7180677bf189ba86b504f
4
+ data.tar.gz: 2432ac79d70ebb056a6b1338ca52b170e2c7134d14b32d0e8454e34ff86f57ad
5
5
  SHA512:
6
- metadata.gz: fbb82db1bbb0d5246caa98cc376a7a2ea32aefc217d567191f03fd3dc346d833d55cca141430b6b6f12dec1e5580faa5b83d28da3156b88ef3a0cdfd70fbbdf5
7
- data.tar.gz: 81f23444974fd4d1359d9bbf2bd07adc370d05302369be00ee67c210c12c1c3d83648b9dcfd8e454d161781b06cef9430b72a774fa9ddcc3508493cb52540f45
6
+ metadata.gz: 8c91ee447d2b8aefde998e6516fdd1679c845b3a2360f8325a944e0833fe5818f23c7dfb465b0242dabc9828742849220951cbd8e91fc014e9603c78c83e4be8
7
+ data.tar.gz: 2910617b72caa5ad9b083fd6e1471fd6dcf8bb9e3ccea0ecf3577c5eaa060e4468f0278798cca1e77ce5ad9b77117486d55e5e3d536308c27931dce9dec0c60d
data/.rubocop.yml CHANGED
@@ -1,13 +1,13 @@
1
1
  AllCops:
2
2
  Exclude:
3
- - 'assets/**/*'
3
+ - "assets/**/*"
4
4
  DisplayCopNames: true
5
5
  TargetRubyVersion: 2.3
6
6
 
7
7
  Layout/EndOfLine:
8
8
  EnforcedStyle: lf
9
9
  Metrics/ClassLength:
10
- Max: 300
10
+ Max: 360
11
11
  Metrics/LineLength:
12
12
  Max: 90
13
13
  Metrics/MethodLength:
data/CITATION.cff ADDED
@@ -0,0 +1,25 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below."
3
+ authors:
4
+ - family-names: "Bugayenko"
5
+ given-names: "Yegor"
6
+ orcid: "https://orcid.org/0000-0001-6370-0678"
7
+ - family-names: "Bakare"
8
+ given-names: "Ayomide"
9
+ - family-names: "Cheverda"
10
+ given-names: "Arina"
11
+ - family-names: "Farina"
12
+ given-names: "Mirko"
13
+ - family-names: "Kruglov"
14
+ given-names: "Artem"
15
+ - family-names: "Plaksin"
16
+ given-names: "Yaroslav"
17
+ - family-names: "Succi"
18
+ given-names: "Giancarlo"
19
+ - family-names: "Pedrycz"
20
+ given-names: "Witold"
21
+ title: "Automatically Prioritizing and Assigning Tasks from Code Repositories in Puzzle Driven Development"
22
+ version: 0.21.0
23
+ doi: 10.1145/3524842.3528512
24
+ date-released: 2022-05-09
25
+ url: "https://github.com/cqfn/pdd"
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <img alt="pdd logo" src="https://avatars2.githubusercontent.com/u/24456188" width="64px" height="64px"/>
1
+ <img alt="pdd logo" src="https://avatars2.githubusercontent.com/u/24456188" width="92px" height="92px"/>
2
2
 
3
3
  [![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
4
4
  [![DevOps By Rultor.com](http://www.rultor.com/b/cqfn/pdd)](http://www.rultor.com/p/cqfn/pdd)
@@ -25,7 +25,8 @@ Read
25
25
  [_PDD in Action_](http://www.yegor256.com/2017/04/05/pdd-in-action.html)
26
26
  and watch [this webinar](https://www.youtube.com/watch?v=nsYGC2aUwfQ).
27
27
 
28
- Install it first:
28
+ You should have [Ruby installed](https://www.ruby-lang.org/en/documentation/installation/).
29
+ Then, install our gem:
29
30
 
30
31
  ```bash
31
32
  $ gem install pdd
@@ -39,26 +40,32 @@ $ pdd --help
39
40
 
40
41
  You can exclude & include certain number of files from the search via these options:
41
42
 
42
- `` --exclude=glob ``
43
+ ```
44
+ $ pdd --exclude=glob
45
+ ```
43
46
 
44
47
  You can skip any file(s) with a name suffix that matches the pattern glob, using wildcard matching;
45
48
  a name suffix is either the whole path and name, or reg expr, for example:
46
49
 
47
50
  ```bash
48
- pdd --exclude=src/**/*.java --exclude=target/**/*
49
- pdd --exclude=src/**/*.java # exclude .java files in src/
50
- pdd --exclude=src/**/* # exclude all files in src/
51
+ $ pdd --exclude=src/**/*.java --exclude=target/**/*
52
+ $ pdd --exclude=src/**/*.java # exclude .java files in src/
53
+ $ pdd --exclude=src/**/* # exclude all files in src/
51
54
  ```
52
55
 
53
- `` --include=glob ``
56
+ You can include too:
57
+
58
+ ```
59
+ $ pdd --include=glob
60
+ ```
54
61
 
55
62
  Search only files whose name matches glob, using wildcard matching as described under ``--exclude``.
56
63
  If contradictory ``--include`` and ``--exclude`` options are given, the last matching one wins.
57
64
  If no ``--include`` or ``--exclude`` options are given, all files from working directory are included, example:
58
- аомтрптм
65
+
59
66
  ```bash
60
- pdd --include=src/**/*.py # include only .py files in src/
61
- pdd --include=src/**/* # include all files in src/
67
+ $ pdd --include=src/**/*.py # include only .py files in src/
68
+ $ pdd --include=src/**/* # include all files in src/
62
69
  ```
63
70
 
64
71
  ## How to Format?
data/lib/pdd/source.rb CHANGED
@@ -104,7 +104,8 @@ see https://github.com/cqfn/pdd#how-to-format"
104
104
 
105
105
  # Fetch puzzle
106
106
  def puzzle(lines, match, idx)
107
- tail = tail(lines, match[1])
107
+ col_idx = match[0].length - match[0].lstrip.length
108
+ tail = tail(lines, match[1], col_idx)
108
109
  body = "#{match[3]} #{tail.join(' ')}".gsub(/\s+/, ' ').strip
109
110
  body = body.chomp('*/-->').strip
110
111
  marker = marker(match[2])
@@ -141,8 +142,9 @@ against the rules explained here: https://github.com/cqfn/pdd#how-to-format"
141
142
  end
142
143
 
143
144
  # Fetch puzzle tail (all lines after the first one)
144
- def tail(lines, prefix)
145
+ def tail(lines, prefix, start)
145
146
  prefix = prefix.rstrip
147
+ prefix = " #{' ' * start}" if prefix.empty? # fallback to space indentation
146
148
  lines
147
149
  .take_while { |t| match_markers(t).none? && t.start_with?(prefix) }
148
150
  .take_while do |t|
data/lib/pdd/version.rb CHANGED
@@ -23,5 +23,5 @@
23
23
  # Copyright:: Copyright (c) 2014-2022 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module PDD
26
- VERSION = '0.21.0'.freeze
26
+ VERSION = '0.21.1'.freeze
27
27
  end
data/test/test_source.rb CHANGED
@@ -79,6 +79,30 @@ class TestSource < Minitest::Test
79
79
  end
80
80
  end
81
81
 
82
+ def test_no_prefix_multiline_puzzle_block
83
+ Dir.mktmpdir 'test' do |dir|
84
+ file = File.join(dir, 'a.txt')
85
+ File.write(
86
+ file,
87
+ "
88
+ <!--
89
+ \x40todo #01:30min correctly formatted multi-line puzzle, with no
90
+ comment prefix before todo marker
91
+ -->
92
+ "
93
+ )
94
+ stub_source_find_github_user(file, 'hey') do |source|
95
+ PDD.opts = nil
96
+ assert_equal 1, source.puzzles.size
97
+ puzzle = source.puzzles.last
98
+ assert_equal '3-4', puzzle.props[:lines]
99
+ assert_equal 'correctly formatted multi-line puzzle, with no ' \
100
+ 'comment prefix before todo marker', puzzle.props[:body]
101
+ assert_equal '01', puzzle.props[:ticket]
102
+ end
103
+ end
104
+ end
105
+
82
106
  def test_multiple_puzzles_single_comment_block
83
107
  Dir.mktmpdir 'test' do |dir|
84
108
  file = File.join(dir, 'a.txt')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-30 00:00:00.000000000 Z
11
+ date: 2022-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -241,6 +241,7 @@ files:
241
241
  - ".rubocop.yml"
242
242
  - ".rultor.yml"
243
243
  - ".simplecov"
244
+ - CITATION.cff
244
245
  - Gemfile
245
246
  - LICENSE.txt
246
247
  - README.md