meta_commit 0.2.0.pre.alpha → 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 +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +3 -3
- data/exe/meta_commit +1 -1
- data/lib/meta_commit/changelog/adapters/changelog.rb +1 -1
- data/lib/meta_commit/changelog/commands/commit_diff_examiner.rb +1 -1
- data/lib/meta_commit/changelog/formatters/keep_a_changelog_ver_report_builder.rb +1 -1
- data/lib/meta_commit/git/repo.rb +3 -1
- data/lib/meta_commit/index/adapters/git_notes.rb +1 -1
- data/lib/meta_commit/index/commands/diff_examiner.rb +1 -1
- data/lib/meta_commit/message/commands/diff_index_examiner.rb +1 -1
- data/lib/meta_commit/message/formatters/commit_message_builder.rb +3 -3
- data/lib/meta_commit/version.rb +1 -1
- data/lib/meta_commit.rb +0 -1
- metadata +5 -5
- data/lib/meta_commit/models/diffs/diff.rb +0 -62
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 714f1ef542aa5c01085288e1d02eafb8e405a0bf
|
4
|
+
data.tar.gz: 40cd2dab04ce2a9c597411cbfc5c22d2c480870d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91f560c202ff6675cd68a3f4375072928687201c8dd8733ae23371cd61a2c8e4a1df7fa935846bbedfe7f58da5fd94601be5e4b96b49aa9842db7b1bef080754
|
7
|
+
data.tar.gz: 8468bd6fea1b6732fa04269f4561b8bc8c354fd1a55856ad2c59032477f8b5e4f6a492c152917ab5107cca79a96225582e90a21a127162ffc90a0ad540dcb533
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
|
+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## 0.2.0 - 2017-10-25
|
8
|
+
### Added
|
9
|
+
- Code documentation
|
10
|
+
- Contribution guide
|
11
|
+
- Configuration using `.meta_commit.yml` file
|
12
|
+
- Handle `MissingRepoError` error
|
13
|
+
|
14
|
+
### Changed
|
15
|
+
- Dynamically include extensions
|
16
|
+
- Directory parameter is not longer required for commands, cli receives directory via `--directory` option
|
17
|
+
|
18
|
+
### Removed
|
19
|
+
- Extract ruby specific diffs and parser to separate [extension](https://github.com/meta-commit/ruby_support)
|
20
|
+
- Extract contracts to separate [gem](https://github.com/meta-commit/contracts)
|
21
|
+
- Delete base diff class
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
## Description
|
11
11
|
|
12
|
-
[](https://asciinema.org/a/svV2TBICPgp7pOWneRI30WDel?autoplay=1)
|
13
13
|
|
14
14
|
meta commit - is set of commands for git repository, which extracts useful information from commits and allows to get more insights from usual actions with repository.
|
15
15
|
|
@@ -54,13 +54,13 @@ Elements of `extensions` list are gem names (without `meta_commit_` prefix) that
|
|
54
54
|
|
55
55
|
### Message
|
56
56
|
|
57
|
-
meta_commit message [--
|
57
|
+
meta_commit message [--directory=$(pwd)]
|
58
58
|
|
59
59
|
Prints description of current changes in repository index
|
60
60
|
|
61
61
|
### Index
|
62
62
|
|
63
|
-
meta_commit index [--
|
63
|
+
meta_commit index [--directory=$(pwd)]
|
64
64
|
|
65
65
|
Walks over repository commits and writes meta information to git notes
|
66
66
|
|
data/exe/meta_commit
CHANGED
@@ -20,7 +20,7 @@ module MetaCommit::Changelog
|
|
20
20
|
|
21
21
|
# Builds changelog message and adds it after description text and before latest version
|
22
22
|
# @param repo
|
23
|
-
# @param [Array<MetaCommit::
|
23
|
+
# @param [Array<MetaCommit::Contracts::Diff>] diffs
|
24
24
|
# @return [String]
|
25
25
|
def write_repository_change_chunk(repo, diffs)
|
26
26
|
message_builder = changelog_message_builder(@tag, @date)
|
@@ -15,7 +15,7 @@ module MetaCommit::Changelog
|
|
15
15
|
# @param [MetaCommit::Git::Repo] repo
|
16
16
|
# @param [String] left_commit commit id
|
17
17
|
# @param [String] right_commit commit id
|
18
|
-
# @return [Array<MetaCommit::
|
18
|
+
# @return [Array<MetaCommit::Contracts::Diff>]
|
19
19
|
def meta(repo, left_commit, right_commit)
|
20
20
|
diffs = []
|
21
21
|
commit_id_old = left_commit.oid
|
data/lib/meta_commit/git/repo.rb
CHANGED
@@ -5,6 +5,8 @@ module MetaCommit::Git
|
|
5
5
|
# @attr [Rugged::Repository] repo
|
6
6
|
class Repo
|
7
7
|
DIFF_OPTIONS = {:context_lines => 0, :ignore_whitespace => true}
|
8
|
+
INDEX_DIFF_OPTIONS = {:context_lines => 0, :ignore_whitespace => true, :reverse => true}
|
9
|
+
|
8
10
|
FILE_NOT_EXISTS_OID = '0000000000000000000000000000000000000000'
|
9
11
|
|
10
12
|
attr_accessor :repo
|
@@ -72,7 +74,7 @@ module MetaCommit::Git
|
|
72
74
|
# @yield [old_file_path, new_file_path, patch, line]
|
73
75
|
# @return [Object]
|
74
76
|
def index_diff_with_optimized_lines
|
75
|
-
diff = index_diff(
|
77
|
+
diff = index_diff(INDEX_DIFF_OPTIONS)
|
76
78
|
diff.deltas.zip(diff.patches).each do |delta, patch|
|
77
79
|
lines = organize_lines(delta, patch)
|
78
80
|
lines.each do |line|
|
@@ -18,7 +18,7 @@ module MetaCommit::Index
|
|
18
18
|
commit_changes.file_changes.uniq.each do |change|
|
19
19
|
diffs.push(" - #{change.string_representation}")
|
20
20
|
end
|
21
|
-
write_to_notes(commit_changes.new_commit_id, diffs.join("\n"))
|
21
|
+
write_to_notes(commit_changes.new_commit_id, diffs.uniq.join("\n"))
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -23,7 +23,7 @@ module MetaCommit::Index
|
|
23
23
|
repo_changes
|
24
24
|
end
|
25
25
|
|
26
|
-
# @return [Array<MetaCommit::
|
26
|
+
# @return [Array<MetaCommit::Contracts::Diff>]
|
27
27
|
def examine_diff(repo, left_commit, right_commit)
|
28
28
|
diffs = []
|
29
29
|
repo.diff_with_optimized_lines(left_commit, right_commit) do |old_file_path, new_file_path, patch, line|
|
@@ -12,7 +12,7 @@ module MetaCommit::Message
|
|
12
12
|
|
13
13
|
# Creates diff objects with meta information of changes in index staged files
|
14
14
|
# @param [MetaCommit::Git::Repo] repo
|
15
|
-
# @return [Array<MetaCommit::
|
15
|
+
# @return [Array<MetaCommit::Contracts::Diff>]
|
16
16
|
def index_meta(repo)
|
17
17
|
diffs = MetaCommit::Models::Changes::Commit.new(repo.last_commit_oid, 'staged')
|
18
18
|
repo.index_diff_with_optimized_lines do |old_file_path, new_file_path, patch, line|
|
@@ -2,14 +2,14 @@ module MetaCommit::Message
|
|
2
2
|
module Formatters
|
3
3
|
# Class builds message to commit changes
|
4
4
|
class CommitMessageBuilder
|
5
|
-
# @param [Array<MetaCommit::
|
5
|
+
# @param [Array<MetaCommit::Contracts::Diff>] diffs
|
6
6
|
# @return [String]
|
7
7
|
def build(diffs)
|
8
|
-
result =
|
8
|
+
result = []
|
9
9
|
diffs.each do |diff|
|
10
10
|
result << "- #{diff.string_representation} \n"
|
11
11
|
end
|
12
|
-
result
|
12
|
+
result.uniq.join
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/lib/meta_commit/version.rb
CHANGED
data/lib/meta_commit.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta_commit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stanislav Dobrovolskiy
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-10-
|
12
|
+
date: 2017-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: meta_commit_contracts
|
@@ -204,6 +204,7 @@ extra_rdoc_files: []
|
|
204
204
|
files:
|
205
205
|
- ".gitignore"
|
206
206
|
- ".travis.yml"
|
207
|
+
- CHANGELOG.md
|
207
208
|
- CODE_OF_CONDUCT.md
|
208
209
|
- CONTRIBUTING.md
|
209
210
|
- Gemfile
|
@@ -234,7 +235,6 @@ files:
|
|
234
235
|
- lib/meta_commit/models/changes/commit.rb
|
235
236
|
- lib/meta_commit/models/changes/repository.rb
|
236
237
|
- lib/meta_commit/models/contextual_ast_node.rb
|
237
|
-
- lib/meta_commit/models/diffs/diff.rb
|
238
238
|
- lib/meta_commit/models/line.rb
|
239
239
|
- lib/meta_commit/services/change_saver.rb
|
240
240
|
- lib/meta_commit/services/parse.rb
|
@@ -255,9 +255,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
255
255
|
version: '0'
|
256
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
257
|
requirements:
|
258
|
-
- - "
|
258
|
+
- - ">="
|
259
259
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
260
|
+
version: '0'
|
261
261
|
requirements: []
|
262
262
|
rubyforge_project:
|
263
263
|
rubygems_version: 2.5.1
|
@@ -1,62 +0,0 @@
|
|
1
|
-
module MetaCommit::Models::Diffs
|
2
|
-
# Base class for diffs
|
3
|
-
# @attr [Symbol] diff_type
|
4
|
-
# @attr [String] commit_old
|
5
|
-
# @attr [String] commit_new
|
6
|
-
# @attr [String] old_file
|
7
|
-
# @attr [String] new_file
|
8
|
-
# @attr [String] old_lineno
|
9
|
-
# @attr [String] new_lineno
|
10
|
-
# @attr [MetaCommit::Models::ContextualAstNode] old_ast_path
|
11
|
-
# @attr [MetaCommit::Models::ContextualAstNode] new_ast_path
|
12
|
-
class Diff
|
13
|
-
|
14
|
-
TYPE_ADDITION = :addition
|
15
|
-
TYPE_DELETION = :deletion
|
16
|
-
TYPE_REPLACE = :replace
|
17
|
-
|
18
|
-
attr_accessor :diff_type
|
19
|
-
attr_accessor :commit_old, :commit_new
|
20
|
-
attr_accessor :old_file, :new_file
|
21
|
-
attr_accessor :old_lineno, :new_lineno
|
22
|
-
attr_accessor :old_ast_path, :new_ast_path
|
23
|
-
|
24
|
-
# @return [String]
|
25
|
-
def inspect
|
26
|
-
string_representation
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [String]
|
30
|
-
def to_s
|
31
|
-
string_representation
|
32
|
-
end
|
33
|
-
|
34
|
-
# @return [String]
|
35
|
-
def string_representation
|
36
|
-
"#{diff_type} was performed"
|
37
|
-
end
|
38
|
-
|
39
|
-
# @param [Symbol] type
|
40
|
-
# @param [String] old_file_name
|
41
|
-
# @param [String] new_file_name
|
42
|
-
# @param [String] old_ast_path
|
43
|
-
# @param [String] new_ast_path
|
44
|
-
# @return [Boolean]
|
45
|
-
def supports_change(type, old_file_name, new_file_name, old_ast_path, new_ast_path)
|
46
|
-
true
|
47
|
-
end
|
48
|
-
|
49
|
-
# @return [Boolean]
|
50
|
-
def type_addition?
|
51
|
-
@diff_type == TYPE_ADDITION
|
52
|
-
end
|
53
|
-
# @return [Boolean]
|
54
|
-
def type_deletion?
|
55
|
-
@diff_type == TYPE_DELETION
|
56
|
-
end
|
57
|
-
# @return [Boolean]
|
58
|
-
def type_replace?
|
59
|
-
@diff_type == TYPE_REPLACE
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|