cutting_edge 0.0.1 → 0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +7 -2
- data/Gemfile.lock +130 -0
- data/LICENSE +68 -81
- data/Procfile +1 -0
- data/README.md +272 -74
- data/Rakefile +0 -5
- data/bin/cutting_edge +60 -45
- data/config.rb +55 -0
- data/cutting_edge.gemspec +33 -4
- data/heroku.config.rb +20 -0
- data/lib/cutting_edge.rb +1 -1
- data/lib/cutting_edge/app.rb +95 -19
- data/lib/cutting_edge/langs.rb +7 -1
- data/lib/cutting_edge/langs/python.rb +5 -1
- data/lib/cutting_edge/langs/ruby.rb +5 -1
- data/lib/cutting_edge/langs/rust.rb +5 -1
- data/lib/cutting_edge/public/images/error.svg +24 -0
- data/lib/cutting_edge/public/images/languages/python.svg +1 -0
- data/lib/cutting_edge/public/images/languages/ruby.svg +1 -0
- data/lib/cutting_edge/public/images/languages/rust.svg +1 -0
- data/lib/cutting_edge/public/images/ok.svg +24 -0
- data/lib/cutting_edge/public/javascript/clipboard.min.js +7 -0
- data/lib/cutting_edge/public/javascript/cuttingedge.js +53 -0
- data/lib/cutting_edge/public/stylesheets/primer.css +22 -0
- data/lib/cutting_edge/repo.rb +124 -18
- data/lib/cutting_edge/templates/_footer.html.erb +3 -0
- data/lib/cutting_edge/templates/_header.html.erb +8 -0
- data/lib/cutting_edge/templates/_overview.html.erb +9 -0
- data/lib/cutting_edge/templates/badge.svg.erb +39 -0
- data/lib/cutting_edge/templates/index.html.erb +62 -0
- data/lib/cutting_edge/templates/info.html.erb +101 -0
- data/lib/cutting_edge/templates/mail.html.erb +163 -0
- data/lib/cutting_edge/workers/badge.rb +33 -11
- data/lib/cutting_edge/workers/dependency.rb +36 -16
- data/lib/cutting_edge/workers/helpers.rb +8 -0
- data/lib/cutting_edge/workers/mail.rb +38 -0
- data/projects.yml +25 -0
- data/spec/app_spec.rb +115 -0
- data/spec/badge_worker_spec.rb +77 -0
- data/spec/dependency_worker_spec.rb +132 -0
- data/spec/email_worker_spec.rb +43 -0
- data/spec/fixtures.rb +180 -0
- data/spec/fixtures/projects.yml +27 -0
- data/spec/langs/python_spec.rb +47 -5
- data/spec/langs/ruby_spec.rb +105 -0
- data/spec/langs/rust_spec.rb +31 -0
- data/spec/repo_spec.rb +52 -0
- data/spec/spec_helper.rb +9 -1
- metadata +43 -15
- data/lib/cutting_edge/badge.rb +0 -46
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'simplecov'
|
2
|
+
require 'fixtures'
|
3
|
+
require 'rack/test'
|
2
4
|
|
3
5
|
if ENV['TRAVIS']
|
4
6
|
require 'coveralls'
|
5
7
|
Coveralls.wear!
|
6
8
|
end
|
7
9
|
|
10
|
+
ENV['RACK_ENV'] = 'test'
|
11
|
+
|
8
12
|
require File.expand_path('../../lib/cutting_edge/app.rb', __FILE__)
|
9
13
|
CuttingEdge::App.set(:enable_logging, false)
|
10
14
|
::SemanticLogger.add_appender(io: STDOUT)
|
@@ -108,4 +112,8 @@ RSpec.configure do |config|
|
|
108
112
|
# as the one that triggered the failure.
|
109
113
|
Kernel.srand config.seed
|
110
114
|
=end
|
111
|
-
|
115
|
+
|
116
|
+
config.include Rack::Test::Methods
|
117
|
+
config.include ::CuttingEdgeHelpers
|
118
|
+
config.include ::WorkerHelpers
|
119
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cutting_edge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dawa Ometto
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-02
|
12
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gemnasium-parser
|
@@ -82,61 +82,61 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.2'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: rufus-scheduler
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
90
|
+
version: '3.6'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
97
|
+
version: '3.6'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: sinatra-logger
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '3
|
104
|
+
version: '0.3'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '3
|
111
|
+
version: '0.3'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
113
|
+
name: toml-rb
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: '0
|
118
|
+
version: '2.0'
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0
|
125
|
+
version: '2.0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: mail
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '2.
|
132
|
+
version: '2.7'
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: '2.
|
139
|
+
version: '2.7'
|
140
140
|
description: Self-hosted dependency monitoring, including shiny badges.
|
141
141
|
email: d.ometto@gmail.com
|
142
142
|
executables:
|
@@ -145,25 +145,53 @@ extensions: []
|
|
145
145
|
extra_rdoc_files: []
|
146
146
|
files:
|
147
147
|
- Gemfile
|
148
|
+
- Gemfile.lock
|
148
149
|
- LICENSE
|
150
|
+
- Procfile
|
149
151
|
- README.md
|
150
152
|
- Rakefile
|
151
153
|
- bin/cutting_edge
|
154
|
+
- config.rb
|
152
155
|
- cutting_edge.gemspec
|
156
|
+
- heroku.config.rb
|
153
157
|
- lib/cutting_edge.rb
|
154
158
|
- lib/cutting_edge/app.rb
|
155
|
-
- lib/cutting_edge/badge.rb
|
156
159
|
- lib/cutting_edge/langs.rb
|
157
160
|
- lib/cutting_edge/langs/python.rb
|
158
161
|
- lib/cutting_edge/langs/ruby.rb
|
159
162
|
- lib/cutting_edge/langs/rust.rb
|
163
|
+
- lib/cutting_edge/public/images/error.svg
|
164
|
+
- lib/cutting_edge/public/images/languages/python.svg
|
165
|
+
- lib/cutting_edge/public/images/languages/ruby.svg
|
166
|
+
- lib/cutting_edge/public/images/languages/rust.svg
|
167
|
+
- lib/cutting_edge/public/images/ok.svg
|
168
|
+
- lib/cutting_edge/public/javascript/clipboard.min.js
|
169
|
+
- lib/cutting_edge/public/javascript/cuttingedge.js
|
170
|
+
- lib/cutting_edge/public/stylesheets/primer.css
|
160
171
|
- lib/cutting_edge/repo.rb
|
172
|
+
- lib/cutting_edge/templates/_footer.html.erb
|
173
|
+
- lib/cutting_edge/templates/_header.html.erb
|
174
|
+
- lib/cutting_edge/templates/_overview.html.erb
|
175
|
+
- lib/cutting_edge/templates/badge.svg.erb
|
176
|
+
- lib/cutting_edge/templates/index.html.erb
|
177
|
+
- lib/cutting_edge/templates/info.html.erb
|
178
|
+
- lib/cutting_edge/templates/mail.html.erb
|
161
179
|
- lib/cutting_edge/versions.rb
|
162
180
|
- lib/cutting_edge/workers/badge.rb
|
163
181
|
- lib/cutting_edge/workers/dependency.rb
|
164
182
|
- lib/cutting_edge/workers/helpers.rb
|
183
|
+
- lib/cutting_edge/workers/mail.rb
|
184
|
+
- projects.yml
|
185
|
+
- spec/app_spec.rb
|
186
|
+
- spec/badge_worker_spec.rb
|
187
|
+
- spec/dependency_worker_spec.rb
|
188
|
+
- spec/email_worker_spec.rb
|
189
|
+
- spec/fixtures.rb
|
190
|
+
- spec/fixtures/projects.yml
|
165
191
|
- spec/langs/python_spec.rb
|
192
|
+
- spec/langs/ruby_spec.rb
|
166
193
|
- spec/langs/rust_spec.rb
|
194
|
+
- spec/repo_spec.rb
|
167
195
|
- spec/spec_helper.rb
|
168
196
|
homepage: http://github.com/repotag/cutting_edge
|
169
197
|
licenses:
|
data/lib/cutting_edge/badge.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'victor'
|
2
|
-
|
3
|
-
class Badge
|
4
|
-
BADGE_OPTIONS = {
|
5
|
-
up_to_date: {
|
6
|
-
bg_color: '#32CD32',
|
7
|
-
text: 'up-to-date',
|
8
|
-
width: 180
|
9
|
-
},
|
10
|
-
out_of_date: {
|
11
|
-
bg_color: '#ff0000',
|
12
|
-
text: 'out-of-date',
|
13
|
-
width: 190
|
14
|
-
},
|
15
|
-
unknown: {
|
16
|
-
bg_color: '#666',
|
17
|
-
text: 'unknown',
|
18
|
-
width: 170
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
def self.build_badge(status, num=nil)
|
23
|
-
if ! [:up_to_date, :out_of_date, :unknown].include?(status)
|
24
|
-
status = :unknown
|
25
|
-
end
|
26
|
-
number = Integer(num) rescue nil if num
|
27
|
-
|
28
|
-
svg = Victor::SVG.new width: BADGE_OPTIONS[status][:width], height: 32, template: :html
|
29
|
-
|
30
|
-
style = {
|
31
|
-
stroke: '#d3d3d3',
|
32
|
-
stroke_width: 4
|
33
|
-
}
|
34
|
-
|
35
|
-
svg.build do
|
36
|
-
rect x: 0, y: 0, width: BADGE_OPTIONS[status][:width], height: 32, fill: BADGE_OPTIONS[status][:bg_color], style: style
|
37
|
-
|
38
|
-
g font_size: 14, font_family: 'arial', fill: 'white' do
|
39
|
-
text "#{number} Dependencies #{BADGE_OPTIONS[status][:text]}", x: 10, y: 20
|
40
|
-
end
|
41
|
-
end
|
42
|
-
return svg.render
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|