repo_miner 0.2.2 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6517108ad6ca331b2250bb189f21960ca6978749
4
- data.tar.gz: 3aca9cac7682c8c0f1d085191ee77a22557efdd9
3
+ metadata.gz: 79ca893738983fde2915ffd07fbbea2ac46ed331
4
+ data.tar.gz: 6f879d2ca48825f551fe0ddcccc973519b6bb059
5
5
  SHA512:
6
- metadata.gz: 4dae2b7f6ff9155932767d2bd12f27323766e987f5a23ad958f316348076bc4d6d051ee8fecc65c883df83805d9e44c578c395450aad109691ad1321c8b8a98b
7
- data.tar.gz: d47cac6e4c262fa7b25edcb583c30bf518d2895038214e2840852714361e306e7976c8d1d21ca86d3f6af8a8b19b1bb5f704cfac21e05743186afccc2c64803e
6
+ metadata.gz: 12b3b6adc619fa8238eca5170225a0cfb32b91ab22925228c9c58c4cc642996878cedeb4e333d8308204db86c21b13b377871c18f0f4649be54324b706183d59
7
+ data.tar.gz: '09a3c002cc25e35fc6daa133c04e93ae67042776850e66ca5c01829663d4eaf54212c21f2731a91411244ef48ea85355acaf36d467d59df52345bc8d9ab3c9c1'
data/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.3.0] - 2017-07-20
8
+ ### Added
9
+ - Add ability to skip previously analsyed commits
10
+
11
+
12
+ ## [0.2.2] - 2017-07-19
13
+ ### Added
14
+ - timestamp as method on commit
15
+
16
+
17
+ ## [0.2.1] - 2017-07-17
18
+ ### Added
19
+ - Contribution documentation and changelog
20
+ - Badges to readme
21
+
22
+ ### Changed
23
+ - Improve #inspect output
24
+ - Kind of manifest (manifest or lockfile) to dependency mining return data
25
+
26
+
7
27
  ## [0.2.0] - 2017-07-17
8
28
  ### Added
9
29
  - Parsing of modified dependency manifest files
data/README.md CHANGED
@@ -50,9 +50,18 @@ commits = repository.analyse('master')
50
50
  See mined dependency data for a given commit:
51
51
 
52
52
  ```ruby
53
+ commits.length #=> 34
54
+
53
55
  commits.last #=> <RepoMiner::Commit:0x007fd87fdf1150(message: "Fixes 1597", sha: c656e48ada19c6c83f7705893f0a73cfc1844abf, data: {:email=>{:committer=>"andrewnez@gmail.com", :author=>"andrewnez@gmail.com"}, :dependencies=>{:added_manifests=>[], :modified_manifests=>[{:path=>"Gemfile", :platform=>"rubygems", :added_dependencies=>[], :modified_dependencies=>[], :removed_dependencies=>[{:name=>"sass", :requirement=>"= 3.4.24", :type=>:runtime}]}, {:path=>"Gemfile.lock", :platform=>"rubygems", :added_dependencies=>[{:name=>"sass-listen", :requirement=>"4.0.0", :type=>"runtime"}], :modified_dependencies=>[{:name=>"commonmarker", :requirement=>"0.16.8", :type=>"runtime", :previous_requirement=>"0.16.7"}, {:name=>"gitlab", :requirement=>"4.2.0", :type=>"runtime", :previous_requirement=>"4.1.0"}, {:name=>"rack-cors", :requirement=>"1.0.0", :type=>"runtime", :previous_requirement=>"0.4.1"}, {:name=>"sass", :requirement=>"3.5.1", :type=>"runtime", :previous_requirement=>"3.4.24"}, {:name=>"sassc", :requirement=>"1.11.4", :type=>"runtime", :previous_requirement=>"1.11.2"}], :removed_dependencies=>[]}], :removed_manifests=>[]}})>
54
56
  ```
55
57
 
58
+ You can also skip commits that you've already analysed:
59
+
60
+ ```ruby
61
+ commits = repository.analyse('master', '00e7221')
62
+ commits.length # => 9
63
+ ```
64
+
56
65
  ## Development
57
66
 
58
67
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/repo_miner.rb CHANGED
@@ -9,7 +9,7 @@ end
9
9
  require 'rugged'
10
10
 
11
11
  module RepoMiner
12
- def self.analyse(repo_path, branch = 'master')
13
- Repository.new(repo_path).analyse(branch)
12
+ def self.analyse(repo_path, branch = 'master', since = nil)
13
+ Repository.new(repo_path).analyse(branch, since)
14
14
  end
15
15
  end
@@ -11,15 +11,16 @@ module RepoMiner
11
11
  @repository ||= Rugged::Repository.new(repo_path)
12
12
  end
13
13
 
14
- def walk(branch)
14
+ def walk(branch, since = nil)
15
15
  @walker = Rugged::Walker.new(rugged_repository)
16
16
  @walker.sorting(Rugged::SORT_TOPO | Rugged::SORT_REVERSE)
17
+ @walker.hide(rugged_repository.lookup(since)) if since
17
18
  @walker.push(rugged_repository.branches[branch].target_id)
18
19
  @walker
19
20
  end
20
21
 
21
- def analyse(branch = 'master')
22
- walk(branch).map do |commit|
22
+ def analyse(branch = 'master', since = nil)
23
+ walk(branch, since).map do |commit|
23
24
  Commit.new(self, commit).analyse
24
25
  end
25
26
  end
@@ -1,3 +1,3 @@
1
1
  module RepoMiner
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repo_miner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-19 00:00:00.000000000 Z
11
+ date: 2017-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rugged