license_auto 0.1.1.2 → 0.1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +9 -2
  5. data/README.md +10 -8
  6. data/lib/license_auto/exceptions.rb +10 -0
  7. data/lib/license_auto/license/frequency.rb +1 -1
  8. data/lib/license_auto/license/readme.rb +21 -2
  9. data/lib/license_auto/license/similarity.rb +4 -3
  10. data/lib/license_auto/license_info_wrapper.rb +16 -0
  11. data/lib/license_auto/matcher.rb +14 -4
  12. data/lib/license_auto/package.rb +29 -15
  13. data/lib/license_auto/package_manager.rb +6 -2
  14. data/lib/license_auto/package_manager/bundler.rb +10 -6
  15. data/lib/license_auto/package_manager/gemfury.rb +2 -0
  16. data/lib/license_auto/package_manager/git_module.rb +73 -0
  17. data/lib/license_auto/package_manager/golang.rb +155 -0
  18. data/lib/license_auto/package_manager/gradle.rb +145 -0
  19. data/lib/license_auto/package_manager/maven.rb +133 -0
  20. data/lib/license_auto/package_manager/npm.rb +117 -1
  21. data/lib/license_auto/package_manager/pip.rb +8 -2
  22. data/lib/license_auto/repo.rb +51 -3
  23. data/lib/license_auto/source_code_server.rb +13 -0
  24. data/lib/license_auto/var/golang_std_libs.rb +160 -0
  25. data/lib/license_auto/version.rb +1 -1
  26. data/lib/license_auto/website.rb +1 -0
  27. data/lib/license_auto/website/cocoapods_org.rb +10 -0
  28. data/lib/license_auto/website/github_com.rb +43 -18
  29. data/lib/license_auto/website/homepage_spider.rb +56 -0
  30. data/lib/license_auto/website/maven_central_repository.rb +258 -0
  31. data/lib/license_auto/website/npm_registry.rb +178 -0
  32. data/lib/license_auto/website/ruby_gems_org.rb +119 -8
  33. data/license_auto.gemspec +1 -0
  34. data/package.json +30 -0
  35. metadata +25 -40
  36. data/lib/license_auto/package_manager/golang_stdlibs.rb +0 -161
  37. data/remove/api.rb +0 -60
  38. data/remove/api/bitbucket.rb +0 -142
  39. data/remove/api/code_google_com.rb +0 -66
  40. data/remove/api/excel_export.rb +0 -189
  41. data/remove/api/gem_data.rb +0 -30
  42. data/remove/api/git_kernel_org.rb +0 -59
  43. data/remove/api/github.rb +0 -376
  44. data/remove/api/go_pkg_in.rb +0 -41
  45. data/remove/api/golang_org.rb +0 -63
  46. data/remove/api/google_source_com.rb +0 -68
  47. data/remove/api/gradle2.rb +0 -41
  48. data/remove/api/helper.rb +0 -26
  49. data/remove/api/j_center.rb +0 -23
  50. data/remove/api/maven_central_repository.rb +0 -192
  51. data/remove/api/mq.rb +0 -30
  52. data/remove/api/npm_registry.rb +0 -169
  53. data/remove/api/pattern.rb +0 -33
  54. data/remove/api/remote_source_package.rb +0 -319
  55. data/remove/api/spider.rb +0 -47
  56. data/remove/cloner.rb +0 -154
  57. data/remove/db.rb +0 -267
  58. data/remove/license_auto +0 -4
  59. data/remove/misc.rb +0 -131
  60. data/remove/mq_pack.rb +0 -219
  61. data/remove/mq_repo.rb +0 -106
  62. data/remove/parser/gemfile_parser.rb +0 -221
  63. data/remove/parser/golang_parser.rb +0 -104
  64. data/remove/parser/gradle_parser.rb +0 -141
  65. data/remove/parser/manifest_parser.rb +0 -66
  66. data/remove/parser/maven_parser.rb +0 -91
  67. data/remove/parser/npm_parser.rb +0 -82
  68. data/remove/parser/pip_parser.rb +0 -1
  69. data/remove/parser/rebar_parser.rb +0 -61
  70. data/remove/recorder.rb +0 -184
  71. data/remove/script/apt-get.deps.sh +0 -37
  72. data/remove/script/debian_dpkg_list.sh +0 -2
  73. data/remove/script/rubygems.org.importdb.sh +0 -22
@@ -24,7 +24,7 @@ class RubyGemsOrg < Website
24
24
  begin
25
25
  @package.version = get_latest_version['number']
26
26
  rescue Exception => e
27
- # TODO: what returned value is better?
27
+ LicenseAuto.logger.error(e)
28
28
  return nil
29
29
  end
30
30
  end
@@ -33,21 +33,132 @@ class RubyGemsOrg < Website
33
33
 
34
34
  raise LicenseAuto::PackageNotFound if gem_info.nil?
35
35
 
36
- source_code_matcher = LicenseAuto::Matcher::SourceURL.new(gem_info.source_code_uri)
36
+ license_info = LicenseAuto::LicenseInfoWrapper.new
37
37
 
38
+ source_code_matcher = LicenseAuto::Matcher::SourceURL.new(gem_info.source_code_uri || gem_info.homepage_uri)
38
39
  github_matched = source_code_matcher.match_github_resource
40
+ bitbucket_matched = source_code_matcher.match_bitbucket_resource
41
+
39
42
  if github_matched
40
43
  license_info = GithubCom.new(@package, github_matched[:owner], github_matched[:repo]).get_license_info
41
- elsif false
42
-
44
+ elsif bitbucket_matched
45
+ # TODO bitbucket_matched
46
+ elsif gem_info.homepage_uri
47
+ # TODO: HomepageSpider
48
+ # LicenseAuto.logger.warn("TODO: HomepageSpider")
49
+ # homepage_spider = HomepageSpider.new(gem_info.homepage_uri, @package.name)
50
+ # source_code_uri = homepage_spider.get_source_code_uri
51
+ # if source_code_uri
52
+ # LicenseAuto.logger.warn("TODO: call myself recursively")
53
+ # else
54
+ # license_wrapper = homepage_spider.get_license_page
55
+ # LicenseAuto.logger.warn("TODO: HomepageSpider")
56
+ # end
57
+
58
+ elsif not gem_info.licenses.empty?
59
+ license_files = gem_info.licenses.map {|license_name|
60
+ LicenseAuto::LicenseWrapper.new(
61
+ name: license_name,
62
+ sim_ratio: 1.0,
63
+ html_url: gem_info.project_uri,
64
+ download_url: gem_info.project_uri,
65
+ text: nil
66
+ )
67
+ }
68
+
69
+ license_info[:licenses] = license_files
70
+ LicenseAuto.logger.debug(license_info)
43
71
  end
44
72
 
45
- # bitbucket_matched = source_code_matcher.match_bitbucket_resource()
46
- # if github_matched
47
- # # TODO: bitbucket_matched
48
- # end
73
+ # TODO:
74
+ pack_wrapper = LicenseAuto::PackWrapper.new(
75
+ project_url: gem_info.project_uri,
76
+ homepage: gem_info.homepage_uri,
77
+ source_url: gem_info.source_code_uri || source_code_matcher.url
78
+ )
79
+
80
+ license_info[:pack] = pack_wrapper
81
+ license_info
49
82
  end
50
83
 
84
+ # @return eg. Hashie::Mash (19 elements)
85
+ # {
86
+ # "name":"diff-lcs",
87
+ # "downloads":42036753,
88
+ # "version":"1.2.5",
89
+ # "version_downloads":25578122,
90
+ # "platform":"ruby",
91
+ # "authors":"Austin Ziegler",
92
+ # "info":"Diff::LCS computes the difference between two Enumerable sequences using the\nMcIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities\nto create a simple HTML diff output format and a standard diff-like tool.\n\nThis is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did\nnot properly prune common sequences at the beginning of a comparison set.\nThanks to Paul Kunysch for fixing this issue.\n\nCoincident with the release of diff-lcs 1.2.3, we reported an issue with\nRubinius in 1.9 mode\n({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).\nWe are happy to report that this issue has been resolved.",
93
+ # "licenses":[
94
+ # "MIT",
95
+ # "Perl Artistic v2",
96
+ # "GNU GPL v2"
97
+ # ],
98
+ # "metadata":{
99
+ #
100
+ # },
101
+ # "sha":"a1d3dde665292317a883d319066792e3f0e6a24cade4bc4cc47605d27664c9ed",
102
+ # "project_uri":"https://rubygems.org/gems/diff-lcs",
103
+ # "gem_uri":"https://rubygems.org/gems/diff-lcs-1.2.5.gem",
104
+ # "homepage_uri":"http://diff-lcs.rubyforge.org/",
105
+ # "wiki_uri":null,
106
+ # "documentation_uri":"http://www.rubydoc.info/gems/diff-lcs/1.2.5",
107
+ # "mailing_list_uri":null,
108
+ # "source_code_uri":null,
109
+ # "bug_tracker_uri":null,
110
+ # "dependencies":{
111
+ # "development":[
112
+ # {
113
+ # "name":"hoe",
114
+ # "requirements":"~> 3.7"
115
+ # },
116
+ # {
117
+ # "name":"hoe-bundler",
118
+ # "requirements":"~> 1.2"
119
+ # },
120
+ # {
121
+ # "name":"hoe-doofus",
122
+ # "requirements":"~> 1.0"
123
+ # },
124
+ # {
125
+ # "name":"hoe-gemspec2",
126
+ # "requirements":"~> 1.1"
127
+ # },
128
+ # {
129
+ # "name":"hoe-git",
130
+ # "requirements":"~> 1.5"
131
+ # },
132
+ # {
133
+ # "name":"hoe-rubygems",
134
+ # "requirements":"~> 1.0"
135
+ # },
136
+ # {
137
+ # "name":"hoe-travis",
138
+ # "requirements":"~> 1.2"
139
+ # },
140
+ # {
141
+ # "name":"rake",
142
+ # "requirements":"~> 10.0"
143
+ # },
144
+ # {
145
+ # "name":"rdoc",
146
+ # "requirements":"~> 4.0"
147
+ # },
148
+ # {
149
+ # "name":"rspec",
150
+ # "requirements":"~> 2.0"
151
+ # },
152
+ # {
153
+ # "name":"rubyforge",
154
+ # "requirements":">= 2.0.4"
155
+ # }
156
+ # ],
157
+ # "runtime":[
158
+ #
159
+ # ]
160
+ # }
161
+ # }
51
162
  def get_gem_info()
52
163
  # TODO: Gems.info(@package.name, @package.version)
53
164
  gem_info = Gems.info(@package.name)
data/license_auto.gemspec CHANGED
@@ -38,6 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.add_runtime_dependency "hashie"
39
39
  spec.add_runtime_dependency "log4r"
40
40
  spec.add_runtime_dependency "json"
41
+ spec.add_runtime_dependency "httparty"
41
42
  spec.add_runtime_dependency "gems"
42
43
  spec.add_runtime_dependency "github_api"
43
44
  spec.add_runtime_dependency "tf-idf-similarity"
data/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "license_auto",
3
+ "version": "0.1.1",
4
+ "description": "license_auto is a Ruby Gem for Open Source License collection job inspired by LicenseFinder",
5
+ "main": "index.js",
6
+ "directories": {
7
+ "example": "examples"
8
+ },
9
+ "scripts": {
10
+ "test": "rake spec"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/mineworks/license_auto.git"
15
+ },
16
+ "keywords": [
17
+ "license",
18
+ "auto",
19
+ "spider"
20
+ ],
21
+ "author": "Michael Fan",
22
+ "license": "MIT",
23
+ "bugs": {
24
+ "url": "https://github.com/mineworks/license_auto/issues"
25
+ },
26
+ "homepage": "https://github.com/mineworks/license_auto#readme",
27
+ "dependencies": {
28
+ "semver": "^5.1.0"
29
+ }
30
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_auto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.2
4
+ version: 0.1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - MineWorks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-07 00:00:00.000000000 Z
11
+ date: 2016-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: httparty
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: gems
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +153,7 @@ extensions: []
139
153
  extra_rdoc_files: []
140
154
  files:
141
155
  - ".gitignore"
156
+ - ".gitmodules"
142
157
  - ".travis.yml"
143
158
  - CHANGELOG.md
144
159
  - Gemfile
@@ -215,8 +230,8 @@ files:
215
230
  - lib/license_auto/package_manager/bower.rb
216
231
  - lib/license_auto/package_manager/bundler.rb
217
232
  - lib/license_auto/package_manager/gemfury.rb
233
+ - lib/license_auto/package_manager/git_module.rb
218
234
  - lib/license_auto/package_manager/golang.rb
219
- - lib/license_auto/package_manager/golang_stdlibs.rb
220
235
  - lib/license_auto/package_manager/gradle.rb
221
236
  - lib/license_auto/package_manager/ivy.rb
222
237
  - lib/license_auto/package_manager/license_header.rb
@@ -226,51 +241,21 @@ files:
226
241
  - lib/license_auto/package_manager/pip.rb
227
242
  - lib/license_auto/package_manager/yum.rb
228
243
  - lib/license_auto/repo.rb
244
+ - lib/license_auto/source_code_server.rb
245
+ - lib/license_auto/var/golang_std_libs.rb
229
246
  - lib/license_auto/version.rb
230
247
  - lib/license_auto/website.rb
248
+ - lib/license_auto/website/cocoapods_org.rb
231
249
  - lib/license_auto/website/gemfury_com.rb
232
250
  - lib/license_auto/website/github_com.rb
251
+ - lib/license_auto/website/homepage_spider.rb
252
+ - lib/license_auto/website/maven_central_repository.rb
253
+ - lib/license_auto/website/npm_registry.rb
233
254
  - lib/license_auto/website/ruby_gems_org.rb
234
255
  - lib/license_auto/website/ruby_gems_org_db.rb
235
256
  - lib/license_auto/website/rubydoc_info.rb
236
257
  - license_auto.gemspec
237
- - remove/api.rb
238
- - remove/api/bitbucket.rb
239
- - remove/api/code_google_com.rb
240
- - remove/api/excel_export.rb
241
- - remove/api/gem_data.rb
242
- - remove/api/git_kernel_org.rb
243
- - remove/api/github.rb
244
- - remove/api/go_pkg_in.rb
245
- - remove/api/golang_org.rb
246
- - remove/api/google_source_com.rb
247
- - remove/api/gradle2.rb
248
- - remove/api/helper.rb
249
- - remove/api/j_center.rb
250
- - remove/api/maven_central_repository.rb
251
- - remove/api/mq.rb
252
- - remove/api/npm_registry.rb
253
- - remove/api/pattern.rb
254
- - remove/api/remote_source_package.rb
255
- - remove/api/spider.rb
256
- - remove/cloner.rb
257
- - remove/db.rb
258
- - remove/license_auto
259
- - remove/misc.rb
260
- - remove/mq_pack.rb
261
- - remove/mq_repo.rb
262
- - remove/parser/gemfile_parser.rb
263
- - remove/parser/golang_parser.rb
264
- - remove/parser/gradle_parser.rb
265
- - remove/parser/manifest_parser.rb
266
- - remove/parser/maven_parser.rb
267
- - remove/parser/npm_parser.rb
268
- - remove/parser/pip_parser.rb
269
- - remove/parser/rebar_parser.rb
270
- - remove/recorder.rb
271
- - remove/script/apt-get.deps.sh
272
- - remove/script/debian_dpkg_list.sh
273
- - remove/script/rubygems.org.importdb.sh
258
+ - package.json
274
259
  homepage: https://github.com/mineworks/license_auto
275
260
  licenses:
276
261
  - MIT
@@ -1,161 +0,0 @@
1
- ##
2
- # Golang(v1.4.2 darwin/amd64) system libraries
3
-
4
- GOLANG_STD_LIBS = [
5
- 'cmd/addr2line',
6
- 'cmd/cgo',
7
- 'cmd/fix',
8
- 'cmd/go',
9
- 'cmd/gofmt',
10
- 'cmd/nm',
11
- 'cmd/objdump',
12
- 'cmd/pack',
13
- 'cmd/pprof',
14
- 'cmd/yacc',
15
- 'archive/tar',
16
- 'archive/zip',
17
- 'bufio',
18
- 'bytes',
19
- 'cmd/internal/goobj',
20
- 'cmd/internal/objfile',
21
- 'cmd/pprof/internal/commands',
22
- 'cmd/pprof/internal/driver',
23
- 'cmd/pprof/internal/fetch',
24
- 'cmd/pprof/internal/plugin',
25
- 'cmd/pprof/internal/profile',
26
- 'cmd/pprof/internal/report',
27
- 'cmd/pprof/internal/svg',
28
- 'cmd/pprof/internal/symbolizer',
29
- 'cmd/pprof/internal/symbolz',
30
- 'cmd/pprof/internal/tempfile',
31
- 'compress/bzip2',
32
- 'compress/flate',
33
- 'compress/gzip',
34
- 'compress/lzw',
35
- 'compress/zlib',
36
- 'container/heap',
37
- 'container/list',
38
- 'container/ring',
39
- 'crypto',
40
- 'crypto/aes',
41
- 'crypto/cipher',
42
- 'crypto/des',
43
- 'crypto/dsa',
44
- 'crypto/ecdsa',
45
- 'crypto/elliptic',
46
- 'crypto/hmac',
47
- 'crypto/md5',
48
- 'crypto/rand',
49
- 'crypto/rc4',
50
- 'crypto/rsa',
51
- 'crypto/sha1',
52
- 'crypto/sha256',
53
- 'crypto/sha512',
54
- 'crypto/subtle',
55
- 'crypto/tls',
56
- 'crypto/x509',
57
- 'crypto/x509/pkix',
58
- 'database/sql',
59
- 'database/sql/driver',
60
- 'debug/dwarf',
61
- 'debug/elf',
62
- 'debug/gosym',
63
- 'debug/macho',
64
- 'debug/pe',
65
- 'debug/plan9obj',
66
- 'encoding',
67
- 'encoding/ascii85',
68
- 'encoding/asn1',
69
- 'encoding/base32',
70
- 'encoding/base64',
71
- 'encoding/binary',
72
- 'encoding/csv',
73
- 'encoding/gob',
74
- 'encoding/hex',
75
- 'encoding/json',
76
- 'encoding/pem',
77
- 'encoding/xml',
78
- 'errors',
79
- 'expvar',
80
- 'flag',
81
- 'fmt',
82
- 'go/ast',
83
- 'go/build',
84
- 'go/doc',
85
- 'go/format',
86
- 'go/parser',
87
- 'go/printer',
88
- 'go/scanner',
89
- 'go/token',
90
- 'hash',
91
- 'hash/adler32',
92
- 'hash/crc32',
93
- 'hash/crc64',
94
- 'hash/fnv',
95
- 'html',
96
- 'html/template',
97
- 'image',
98
- 'image/color',
99
- 'image/color/palette',
100
- 'image/draw',
101
- 'image/gif',
102
- 'image/jpeg',
103
- 'image/png',
104
- 'index/suffixarray',
105
- 'io',
106
- 'io/ioutil',
107
- 'log',
108
- 'log/syslog',
109
- 'math',
110
- 'math/big',
111
- 'math/cmplx',
112
- 'math/rand',
113
- 'mime',
114
- 'mime/multipart',
115
- 'net',
116
- 'net/http',
117
- 'net/http/cgi',
118
- 'net/http/cookiejar',
119
- 'net/http/fcgi',
120
- 'net/http/httptest',
121
- 'net/http/httputil',
122
- 'net/http/internal',
123
- 'net/http/pprof',
124
- 'net/mail',
125
- 'net/rpc',
126
- 'net/rpc/jsonrpc',
127
- 'net/smtp',
128
- 'net/textproto',
129
- 'net/url',
130
- 'os',
131
- 'os/exec',
132
- 'os/signal',
133
- 'os/user',
134
- 'path',
135
- 'path/filepath',
136
- 'reflect',
137
- 'regexp',
138
- 'regexp/syntax',
139
- 'runtime',
140
- 'runtime/cgo',
141
- 'runtime/debug',
142
- 'runtime/pprof',
143
- 'runtime/race',
144
- 'sort',
145
- 'strconv',
146
- 'strings',
147
- 'sync',
148
- 'sync/atomic',
149
- 'syscall',
150
- 'testing',
151
- 'testing/iotest',
152
- 'testing/quick',
153
- 'text/scanner',
154
- 'text/tabwriter',
155
- 'text/template',
156
- 'text/template/parse',
157
- 'time',
158
- 'unicode',
159
- 'unicode/utf16',
160
- 'unicode/utf8',
161
- 'unsafe']