attractor 2.0.3 → 2.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 +4 -4
- data/README.md +33 -6
- data/Rakefile +13 -13
- data/app/assets/javascripts/index.pack.js +1 -1
- data/app/assets/stylesheets/main.css +1 -1
- data/exe/attractor +1 -1
- data/lib/attractor.rb +29 -13
- data/lib/attractor.rb~ +44 -0
- data/lib/attractor/cache.rb +82 -0
- data/lib/attractor/cache.rb~ +67 -0
- data/lib/attractor/calculators/base_calculator.rb +38 -14
- data/lib/attractor/calculators/base_calculator.rb~ +64 -0
- data/lib/attractor/cli.rb +48 -44
- data/lib/attractor/cli.rb~ +84 -0
- data/lib/attractor/detectors/base_detector.rb~ +4 -0
- data/lib/attractor/duration_parser.rb +7 -5
- data/lib/attractor/duration_parser.rb~ +27 -0
- data/lib/attractor/gem_names.rb +3 -1
- data/lib/attractor/gem_names.rb~ +23 -0
- data/lib/attractor/registry_entry.rb +0 -1
- data/lib/attractor/registry_entry.rb~ +2 -0
- data/lib/attractor/reporters/base_reporter.rb +22 -14
- data/lib/attractor/reporters/base_reporter.rb~ +54 -0
- data/lib/attractor/reporters/console_reporter.rb +4 -4
- data/lib/attractor/reporters/console_reporter.rb~ +21 -0
- data/lib/attractor/reporters/html_reporter.rb +23 -25
- data/lib/attractor/reporters/html_reporter.rb~ +48 -0
- data/lib/attractor/reporters/sinatra_reporter.rb +18 -24
- data/lib/attractor/suggester.rb +3 -1
- data/lib/attractor/tmp/churn/9f86bc9b7ec6bf59cbf7a111ce8b1159ae128347.json +1 -0
- data/lib/attractor/value.rb +8 -4
- data/lib/attractor/value.rb~ +30 -0
- data/lib/attractor/version.rb +1 -1
- data/lib/attractor/watcher.rb +7 -3
- data/lib/attractor/watcher.rb~ +24 -0
- metadata +29 -31
- data/.babelrc +0 -4
- data/.eslintrc.json +0 -25
- data/.gitignore +0 -20
- data/.rubocop.yml +0 -2
- data/CHANGELOG.md +0 -99
- data/Gemfile +0 -4
- data/Guardfile +0 -27
- data/attractor.gemspec +0 -65
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/bin/standardize +0 -4
- data/bin/test +0 -6
- data/dist/calculator.bundle.js +0 -1
- data/lib/attractor/reporters/.keep +0 -0
- data/package-lock.json +0 -6906
- data/package.json +0 -53
- data/webpack.config.js +0 -23
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Attractor
|
4
|
+
# functionality for watching file system changes
|
5
|
+
class Watcher
|
6
|
+
def initialize(file_prefix, callback)
|
7
|
+
@file_prefix = file_prefix
|
8
|
+
@callback = callback
|
9
|
+
end
|
10
|
+
|
11
|
+
def watch
|
12
|
+
@callback.call
|
13
|
+
|
14
|
+
listener = Listen.to(@file_prefix, ignore: /^attractor_output/) do |modified, _added, _removed|
|
15
|
+
if modified
|
16
|
+
puts "#{modified.map(&:to_s).join(', ')} modified, recalculating..."
|
17
|
+
@callback.call
|
18
|
+
end
|
19
|
+
end
|
20
|
+
listener.start
|
21
|
+
sleep
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attractor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Rubisch
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: churn
|
@@ -154,30 +154,30 @@ dependencies:
|
|
154
154
|
name: attractor-javascript
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 0.2.0
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 0.2.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: attractor-ruby
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 0.2.0
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - "
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: 0.2.0
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: autoprefixer-rails
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -358,13 +358,6 @@ executables:
|
|
358
358
|
extensions: []
|
359
359
|
extra_rdoc_files: []
|
360
360
|
files:
|
361
|
-
- ".babelrc"
|
362
|
-
- ".eslintrc.json"
|
363
|
-
- ".gitignore"
|
364
|
-
- ".rubocop.yml"
|
365
|
-
- CHANGELOG.md
|
366
|
-
- Gemfile
|
367
|
-
- Guardfile
|
368
361
|
- LICENSE
|
369
362
|
- README.md
|
370
363
|
- Rakefile
|
@@ -376,32 +369,37 @@ files:
|
|
376
369
|
- app/assets/javascripts/index.pack.js
|
377
370
|
- app/assets/stylesheets/main.css
|
378
371
|
- app/views/index.html.erb
|
379
|
-
- attractor.gemspec
|
380
|
-
- bin/console
|
381
|
-
- bin/setup
|
382
|
-
- bin/standardize
|
383
|
-
- bin/test
|
384
|
-
- dist/calculator.bundle.js
|
385
372
|
- exe/attractor
|
386
373
|
- lib/attractor.rb
|
374
|
+
- lib/attractor.rb~
|
375
|
+
- lib/attractor/cache.rb
|
376
|
+
- lib/attractor/cache.rb~
|
387
377
|
- lib/attractor/calculators/base_calculator.rb
|
378
|
+
- lib/attractor/calculators/base_calculator.rb~
|
388
379
|
- lib/attractor/cli.rb
|
380
|
+
- lib/attractor/cli.rb~
|
389
381
|
- lib/attractor/detectors/base_detector.rb
|
382
|
+
- lib/attractor/detectors/base_detector.rb~
|
390
383
|
- lib/attractor/duration_parser.rb
|
384
|
+
- lib/attractor/duration_parser.rb~
|
391
385
|
- lib/attractor/gem_names.rb
|
386
|
+
- lib/attractor/gem_names.rb~
|
392
387
|
- lib/attractor/registry_entry.rb
|
393
|
-
- lib/attractor/
|
388
|
+
- lib/attractor/registry_entry.rb~
|
394
389
|
- lib/attractor/reporters/base_reporter.rb
|
390
|
+
- lib/attractor/reporters/base_reporter.rb~
|
395
391
|
- lib/attractor/reporters/console_reporter.rb
|
392
|
+
- lib/attractor/reporters/console_reporter.rb~
|
396
393
|
- lib/attractor/reporters/html_reporter.rb
|
394
|
+
- lib/attractor/reporters/html_reporter.rb~
|
397
395
|
- lib/attractor/reporters/sinatra_reporter.rb
|
398
396
|
- lib/attractor/suggester.rb
|
397
|
+
- lib/attractor/tmp/churn/9f86bc9b7ec6bf59cbf7a111ce8b1159ae128347.json
|
399
398
|
- lib/attractor/value.rb
|
399
|
+
- lib/attractor/value.rb~
|
400
400
|
- lib/attractor/version.rb
|
401
401
|
- lib/attractor/watcher.rb
|
402
|
-
-
|
403
|
-
- package.json
|
404
|
-
- webpack.config.js
|
402
|
+
- lib/attractor/watcher.rb~
|
405
403
|
homepage: https://github.com/julianrubisch/attractor
|
406
404
|
licenses:
|
407
405
|
- MIT
|
@@ -410,7 +408,7 @@ metadata:
|
|
410
408
|
source_code_uri: https://github.com/julianrubisch/attractor
|
411
409
|
bug_tracker_uri: https://github.com/julianrubisch/attractor/issues
|
412
410
|
changelog_uri: https://github.com/julianrubisch/attractor/CHANGELOG.md
|
413
|
-
post_install_message:
|
411
|
+
post_install_message:
|
414
412
|
rdoc_options: []
|
415
413
|
require_paths:
|
416
414
|
- lib
|
@@ -425,8 +423,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
425
423
|
- !ruby/object:Gem::Version
|
426
424
|
version: '0'
|
427
425
|
requirements: []
|
428
|
-
rubygems_version: 3.
|
429
|
-
signing_key:
|
426
|
+
rubygems_version: 3.2.3
|
427
|
+
signing_key:
|
430
428
|
specification_version: 4
|
431
429
|
summary: Churn vs Complexity Chart Generator
|
432
430
|
test_files: []
|
data/.babelrc
DELETED
data/.eslintrc.json
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"rules": {},
|
3
|
-
"env": {
|
4
|
-
"es6": true,
|
5
|
-
"browser": true
|
6
|
-
},
|
7
|
-
"parserOptions": {
|
8
|
-
"ecmaVersion": 2018,
|
9
|
-
"sourceType": "module",
|
10
|
-
"ecmaFeatures": {
|
11
|
-
"jsx": true
|
12
|
-
}
|
13
|
-
},
|
14
|
-
"extends": [
|
15
|
-
"eslint:recommended",
|
16
|
-
"plugin:prettier/recommended"
|
17
|
-
],
|
18
|
-
"globals": {
|
19
|
-
"Atomics": "readonly",
|
20
|
-
"SharedArrayBuffer": "readonly"
|
21
|
-
},
|
22
|
-
"plugins": [
|
23
|
-
"react"
|
24
|
-
]
|
25
|
-
}
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
data/CHANGELOG.md
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
## RELEASE 2.0.3
|
2
|
-
|
3
|
-
* ENHANCEMENT: fetch from relative path, prepare for attractor-rails
|
4
|
-
|
5
|
-
## RELEASE 2.0.2
|
6
|
-
|
7
|
-
* FIX: Require forwardable
|
8
|
-
|
9
|
-
## RELEASE 2.0.1
|
10
|
-
|
11
|
-
* ENHANCEMENT: Add CLI option to Output gem version
|
12
|
-
|
13
|
-
## RELEASE 2.0.0
|
14
|
-
|
15
|
-
* BREAKING: Move to a plug-in architecture, see README
|
16
|
-
|
17
|
-
## RELEASE 1.2.0
|
18
|
-
|
19
|
-
* FEATURE: Backport React to static output
|
20
|
-
|
21
|
-
## RELEASE 1.1.1
|
22
|
-
|
23
|
-
* ENHANCEMENT: `--minimum_churn` and `--start_ago` CLI options
|
24
|
-
|
25
|
-
## RELEASE 1.1.0
|
26
|
-
|
27
|
-
* FEATURE: Auto-detect ruby and js projects
|
28
|
-
|
29
|
-
## RELEASE 1.0.2
|
30
|
-
|
31
|
-
* ENHANCEMENT: make launching of browser optional
|
32
|
-
|
33
|
-
## RELEASE 1.0.1
|
34
|
-
|
35
|
-
* FIX: fix sinatra reporter
|
36
|
-
|
37
|
-
## RELEASE 1.0.0
|
38
|
-
|
39
|
-
* BREAKING: Add Javascript / ES6 support via typhonjs-escomplex
|
40
|
-
|
41
|
-
## RELEASE 0.6.1
|
42
|
-
|
43
|
-
* ENHANCEMENT: add histogram for complexity/churn only measurements
|
44
|
-
|
45
|
-
## RELEASE 0.6.0
|
46
|
-
|
47
|
-
* FEATURE: Add treemap visualization
|
48
|
-
|
49
|
-
## RELEASE 0.5.1
|
50
|
-
|
51
|
-
* ENHANCEMENT: Make filenames in graph optional
|
52
|
-
|
53
|
-
## RELEASE 0.5.0
|
54
|
-
|
55
|
-
* FEATURE: display additional information (method teardown, git file history) when you click on a data point
|
56
|
-
|
57
|
-
## RELEASE 0.4.3
|
58
|
-
|
59
|
-
* ENHANCEMENT: Client side filtering of data points via text input
|
60
|
-
|
61
|
-
## RELEASE 0.4.2
|
62
|
-
|
63
|
-
* ENHANCEMENT: Axis labels
|
64
|
-
|
65
|
-
## RELEASE 0.4.1
|
66
|
-
|
67
|
-
* FIX: fix a bug where the regression would show NaN values
|
68
|
-
|
69
|
-
## RELEASE 0.4.0
|
70
|
-
|
71
|
-
* FEATURE: Specify suggestion threshold and regression type via UI
|
72
|
-
|
73
|
-
## RELEASE 0.3.4
|
74
|
-
|
75
|
-
* ENHANCEMENT: let's not depend on an internet connection
|
76
|
-
|
77
|
-
## RELEASE 0.3.3
|
78
|
-
|
79
|
-
* ENHANCEMENT: use sinatra to serve values and suggestions asynchronously
|
80
|
-
|
81
|
-
## RELEASE 0.3.2
|
82
|
-
|
83
|
-
* ENHANCEMENT: logo
|
84
|
-
|
85
|
-
## RELEASE 0.3.1
|
86
|
-
|
87
|
-
* ENHANCEMENT: make an actual UI
|
88
|
-
|
89
|
-
## RELEASE 0.3.0
|
90
|
-
|
91
|
-
* FEATURE: Rack live reload
|
92
|
-
|
93
|
-
## RELEASE 0.2.1
|
94
|
-
|
95
|
-
* ENHANCEMENT: automatically open browser window
|
96
|
-
|
97
|
-
## RELEASE 0.2.0
|
98
|
-
|
99
|
-
* FEATURE: add file watching functionality
|
data/Gemfile
DELETED
data/Guardfile
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# A sample Guardfile
|
4
|
-
# More info at https://github.com/guard/guard#readme
|
5
|
-
|
6
|
-
## Uncomment and set this to only include directories you want to watch
|
7
|
-
# directories %w(app lib config test spec features) \
|
8
|
-
# .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
9
|
-
|
10
|
-
## Note: if you are using the `directories` clause above and you are not
|
11
|
-
## watching the project directory ('.'), then you will want to move
|
12
|
-
## the Guardfile to a watched dir and symlink it back, e.g.
|
13
|
-
#
|
14
|
-
# $ mkdir config
|
15
|
-
# $ mv Guardfile config/
|
16
|
-
# $ ln -s config/Guardfile .
|
17
|
-
#
|
18
|
-
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
19
|
-
|
20
|
-
# guard 'rake', task: 'assets' do
|
21
|
-
# watch(%r{^app/.+\.scss})
|
22
|
-
# end
|
23
|
-
|
24
|
-
guard 'rake', task: 'install' do
|
25
|
-
watch(%r{^lib/.+\.rb})
|
26
|
-
watch(%r{^src/.+\.(scss|jsx?)$})
|
27
|
-
end
|
data/attractor.gemspec
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path('lib', __dir__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require 'attractor/version'
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = 'attractor'
|
9
|
-
spec.version = Attractor::VERSION
|
10
|
-
spec.authors = ['Julian Rubisch']
|
11
|
-
spec.email = ['julian@julianrubisch.at']
|
12
|
-
|
13
|
-
spec.summary = 'Churn vs Complexity Chart Generator'
|
14
|
-
spec.description = <<-DESCRIPTION
|
15
|
-
Many authors (Michael Feathers, Sandi Metz) have shown that an evaluation of
|
16
|
-
churn vs complexity of files in software projects provide a valuable metric
|
17
|
-
towards code quality. This is another take on the matter, for ruby code, using the
|
18
|
-
`churn` and `flog` projects.
|
19
|
-
DESCRIPTION
|
20
|
-
spec.homepage = 'https://github.com/julianrubisch/attractor'
|
21
|
-
spec.licenses = ['MIT']
|
22
|
-
|
23
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
24
|
-
spec.metadata['source_code_uri'] = 'https://github.com/julianrubisch/attractor'
|
25
|
-
spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues"
|
26
|
-
spec.metadata['changelog_uri'] = 'https://github.com/julianrubisch/attractor/CHANGELOG.md'
|
27
|
-
|
28
|
-
# Specify which files should be added to the gem when it is released.
|
29
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
30
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
31
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
32
|
-
f.match(%r{^(src|tmp|test|spec|features|\.github)/}) ||
|
33
|
-
%w[.all-contributorsrc .rspec .rspec_status .travis.yml].include?(f)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
spec.bindir = 'exe'
|
37
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
|
-
spec.require_paths = ['lib']
|
39
|
-
|
40
|
-
spec.add_dependency 'churn', '>= 1.0.4'
|
41
|
-
spec.add_dependency 'descriptive_statistics'
|
42
|
-
spec.add_dependency 'flog', '~> 4.0'
|
43
|
-
spec.add_dependency 'launchy'
|
44
|
-
spec.add_dependency 'listen', '~> 3.0'
|
45
|
-
spec.add_dependency 'rack-livereload'
|
46
|
-
spec.add_dependency 'sinatra'
|
47
|
-
spec.add_dependency 'thor'
|
48
|
-
spec.add_dependency 'tilt'
|
49
|
-
|
50
|
-
spec.add_development_dependency 'aruba'
|
51
|
-
spec.add_development_dependency 'attractor-javascript'
|
52
|
-
spec.add_development_dependency 'attractor-ruby'
|
53
|
-
spec.add_development_dependency 'autoprefixer-rails'
|
54
|
-
spec.add_development_dependency 'bootstrap', '~> 4.3.1'
|
55
|
-
spec.add_development_dependency 'bundler', '~> 2.0'
|
56
|
-
spec.add_development_dependency 'cucumber'
|
57
|
-
spec.add_development_dependency 'guard'
|
58
|
-
spec.add_development_dependency 'guard-rake'
|
59
|
-
spec.add_development_dependency 'pry'
|
60
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
61
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
62
|
-
spec.add_development_dependency 'sassc'
|
63
|
-
spec.add_development_dependency 'standard'
|
64
|
-
spec.add_development_dependency 'structured_changelog'
|
65
|
-
end
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "attractor"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|