meta_commit 0.2.0.pre.alpha → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![v0.
|
12
|
+
[![v0.2 demonstration](https://asciinema.org/a/svV2TBICPgp7pOWneRI30WDel.png)](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
|