inch_ci-worker 0.3.4 → 0.3.5

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZDRkYTBiNGZlMjAwYTM1OWUwM2IxYjFiNDQ3ZmFkNGVhMzg1MzI4Yg==
5
- data.tar.gz: !binary |-
6
- NjQ0NzIzNzE2YjZkZTk3OTA3M2FhZDNhZTliNGVlZTQ5YWE2MTYzYg==
2
+ SHA1:
3
+ metadata.gz: 0ade87de9c7f292e99bfa6f398110e81e3f00048
4
+ data.tar.gz: e1179552ffe534a839bb9eb0408b59171b19f249
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NjUwZTdlNDU0YjVhMTY2NzVmYmY2MGUzOTlhMjAzZTkzOGU0NDBkYmI0NTM1
10
- NjRkNDNmYzk4NDFkNTdkODVkMzAzMTQ4NjlhMThhYzQ5YTRlYTdiMDUzOTJk
11
- ZTUwNmNmNTg1OWVkNTU4ZWE3MTQ1OTFhYjJmMzAyYTk0YzYzYWI=
12
- data.tar.gz: !binary |-
13
- NWEzZDU1MDA3YWRlMmYyMzE2NTk3ZjM0ZjE4YTE5M2ZiOThiNzM2YWNiNDVi
14
- YzQzOWQ1NzY2ODdiMzk3ZTM4OTQ5ZDBhNTVmN2Y5NzViNzY0NjkwMjFiODA0
15
- YmQ4NGMzOGU4YmU3NDU3YWVmNzg5NTE2MGZkNTUwNjZiMDA5NmQ=
6
+ metadata.gz: 5e10993f315b60064b839eb8ada7222ce8ace7ddfe78e88204ef7d621c34aeae5d577464a568baca7bae013a2b250eaee2eebe1165238aba8f326738902e523c
7
+ data.tar.gz: 343731654428479292ca501e239d83f1be732c65b48ec86b90c25e42d21783847c6fac6537468d5763e662dd516a7fd203c5703fc0102f55e5872af575bd3224
data/bin/inch_ci-worker CHANGED
@@ -16,8 +16,17 @@ require 'inch_ci/worker'
16
16
 
17
17
  class Command
18
18
  class Build
19
- def initialize(url, branch_name = nil, revision = nil)
20
- InchCI::Worker::Build::Task.new(url, branch_name, revision)
19
+ def initialize(url, branch_name = nil, *args)
20
+ revision, language = nil
21
+ args.each do |arg|
22
+ if arg =~ /^--language=(.+)$/
23
+ language = $1
24
+ else
25
+ revision = arg
26
+ end
27
+ end
28
+
29
+ InchCI::Worker::Build::Task.new(url, branch_name, revision, language)
21
30
  end
22
31
  end
23
32
 
@@ -39,6 +39,21 @@ module InchCI
39
39
  end
40
40
  end
41
41
 
42
+ class ResultDeffered < Result
43
+ def revision_uid; nil; end
44
+ def revision_message; nil; end
45
+ def revision_author_name; nil; end
46
+ def revision_author_email; nil; end
47
+ def revision_authored_at; nil; end
48
+ def tag_uid; nil; end
49
+ def service_name; nil; end
50
+ def user_name; nil; end
51
+ def repo_name; nil; end
52
+ def status
53
+ 'deffered'
54
+ end
55
+ end
56
+
42
57
  class ResultFail < Result
43
58
  def revision_uid; nil; end
44
59
  def revision_message; nil; end
@@ -11,14 +11,14 @@ module InchCI
11
11
  module Worker
12
12
  module Build
13
13
  class Task
14
- def initialize(url, branch_name = 'master', revision = nil)
14
+ def initialize(url, branch_name = 'master', revision = nil, language = nil)
15
15
  @work_dir = Dir.mktmpdir
16
16
  if revision.nil?
17
17
  revision = 'HEAD'
18
18
  @latest_revision = true
19
19
  end
20
20
  started_at = Time.now
21
- @result = build(url, branch_name, revision, !!@latest_revision)
21
+ @result = build(url, branch_name, revision, !!@latest_revision, language)
22
22
  @result.finished_at = Time.now
23
23
  @result.started_at = started_at
24
24
  puts Report.new(@result).to_yaml
@@ -33,12 +33,12 @@ module InchCI
33
33
  BadgeDetector.in_readme?(repo, info)
34
34
  end
35
35
 
36
- def build(url, branch_name, revision, latest_revision)
36
+ def build(url, branch_name, revision, latest_revision, language)
37
37
  @url = url
38
38
  if retrieve_repo
39
39
  if repo.change_branch(branch_name, true)
40
40
  if repo.checkout_revision(revision)
41
- if @codebase = parse_codebase(repo.path)
41
+ if @codebase = parse_codebase(language, repo.path)
42
42
  result = ResultSuccess.new(repo, branch_name, latest_revision, @codebase.objects)
43
43
  result.badge_in_readme = badge_in_readme?(result)
44
44
  result
@@ -56,18 +56,48 @@ module InchCI
56
56
  end
57
57
  end
58
58
 
59
- def parse_codebase(path)
59
+ def parse_codebase(language, path)
60
+ if language.to_s.downcase == 'javascript'
61
+ parse_javascript_codebase(path)
62
+ else
63
+ parse_ruby_codebase(path)
64
+ end
65
+ end
66
+
67
+ def parse_javascript_codebase(path)
68
+ dump_file = prepare_javascript_codebase(path)
69
+ return if dump_file.nil? # this causes ResultParserFailed
70
+
71
+ config = to_config(:javascript, path)
72
+ config.read_dump_file = dump_file
73
+ begin
74
+ ::Inch::Codebase.parse(path, config)
75
+ rescue Exception => e
76
+ warn e.inspect
77
+ nil
78
+ end
79
+ end
80
+
81
+ def parse_ruby_codebase(path)
60
82
  YARD::Config.options[:safe_mode] = true
61
83
 
62
84
  begin
63
- language = :ruby # TODO: make dynamic
64
- ::Inch::Codebase.parse(path, to_config(language, path))
85
+ ::Inch::Codebase.parse(path, to_config(:ruby, path))
65
86
  rescue Exception => e
66
87
  warn e.inspect
67
88
  nil
68
89
  end
69
90
  end
70
91
 
92
+ def prepare_javascript_codebase(path)
93
+ old_path = Dir.pwd
94
+ Dir.chdir path
95
+ `npm install inchjs && inchjs --dry-run`
96
+ Dir.chdir old_path
97
+ dump_file = File.join(path, 'docs.json')
98
+ File.exist?(dump_file) ? dump_file : nil
99
+ end
100
+
71
101
  def repo
72
102
  @repo ||= Repomen::Retriever.new(@url, :work_dir => @work_dir)
73
103
  end
@@ -1,5 +1,5 @@
1
1
  module InchCI
2
2
  module Worker
3
- VERSION = "0.3.4"
3
+ VERSION = "0.3.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inch_ci-worker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Föhring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-04 00:00:00.000000000 Z
11
+ date: 2015-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: inch
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: repomen
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.2.0.rc1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.2.0.rc1
97
97
  description: ''
@@ -102,9 +102,9 @@ executables:
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
- - .gitignore
106
- - .ruby-gemset
107
- - .ruby-version
105
+ - ".gitignore"
106
+ - ".ruby-gemset"
107
+ - ".ruby-version"
108
108
  - Gemfile
109
109
  - LICENSE.txt
110
110
  - README.md
@@ -140,17 +140,17 @@ require_paths:
140
140
  - lib
141
141
  required_ruby_version: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - ! '>='
148
+ - - ">="
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
152
  rubyforge_project:
153
- rubygems_version: 2.1.4
153
+ rubygems_version: 2.2.2
154
154
  signing_key:
155
155
  specification_version: 4
156
156
  summary: Worker for the Inch CI project