guard-mutant 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 94306cebc981553d4ccb81b8681c323633c66496
4
+ data.tar.gz: 29f9ea78a0c62bc148338cd18cad2d676bbe33c6
5
+ SHA512:
6
+ metadata.gz: d27f070737a327a7c4c064b460610dc6215a7928da4dff31c839b65b61cb7eddc2846e5b9eadd38e7690565659baac7f7c749896c9f9a35637b2a4fb0052c946
7
+ data.tar.gz: 6ab49b03fc0b85d957d6123ab15a0fe2e69099d71f73ca5681c65fc414a75e1a839f2d2cd9a01f1a8786b69643880dc3f1298d72d03f36ea7626f288137f4a4b
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'devtools', :git => 'https://github.com/rom-rb/devtools.git'
6
+ eval File.read('Gemfile.devtools')
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+
3
+ group :development do
4
+ gem 'rake', '~> 10.1.0'
5
+ gem 'rspec', '~> 2.14.1'
6
+ gem 'yard', '~> 0.8.6.2'
7
+ end
8
+
9
+ group :yard do
10
+ gem 'kramdown', '~> 1.1.0'
11
+ end
12
+
13
+ group :guard do
14
+ gem 'guard', '~> 1.8.1'
15
+ gem 'guard-bundler', '~> 1.0.0'
16
+ gem 'guard-rspec', '~> 3.0.2'
17
+ gem 'guard-rubocop', '~> 0.2.0'
18
+
19
+ # file system change event handling
20
+ gem 'listen', '~> 1.2.2'
21
+ gem 'rb-fchange', '~> 0.0.6', :require => false
22
+ gem 'rb-fsevent', '~> 0.9.3', :require => false
23
+ gem 'rb-inotify', '~> 0.9.0', :require => false
24
+
25
+ # notification handling
26
+ gem 'libnotify', '~> 0.8.0', :require => false
27
+ gem 'rb-notifu', '~> 0.0.4', :require => false
28
+ gem 'terminal-notifier-guard', '~> 1.5.3', :require => false
29
+ end
30
+
31
+ group :metrics do
32
+ gem 'coveralls', '~> 0.6.7'
33
+ gem 'flay', '~> 2.3.1'
34
+ gem 'flog', '~> 4.1.1'
35
+ gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
36
+ gem 'rubocop', '~> 0.9.1', :git => 'https://github.com/bbatsov/rubocop.git'
37
+ gem 'simplecov', '~> 0.7.1'
38
+ gem 'yardstick', '~> 0.9.6'
39
+
40
+ platforms :ruby_19, :ruby_20 do
41
+ gem 'mutant', '~> 0.3.0.beta15'
42
+ gem 'yard-spellcheck', '~> 0.1.5'
43
+ end
44
+
45
+ platforms :ruby_19 do
46
+ gem 'json', '~> 1.8.0'
47
+ end
48
+
49
+ platforms :rbx do
50
+ gem 'pelusa', '~> 0.2.2'
51
+ end
52
+ end
53
+
54
+ group :benchmarks do
55
+ gem 'rbench', '~> 0.2.3'
56
+ end
57
+
58
+ platform :jruby do
59
+ group :jruby do
60
+ gem 'jruby-openssl', '~> 0.8.5'
61
+ end
62
+ end
@@ -0,0 +1,2 @@
1
+ require 'devtools'
2
+ Devtools.init_rake_tasks
data/TODO ADDED
@@ -0,0 +1,4 @@
1
+ * Accept cli options in guard config
2
+ * Fix "multiple subjects in same file"
3
+ * Add docs
4
+ * Add mutation coverage
@@ -0,0 +1,2 @@
1
+ ---
2
+ unit_test_timeout: 1.0
@@ -0,0 +1,3 @@
1
+ ---
2
+ threshold: 2
3
+ total_score: 2
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 0
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: guard-mutant
3
+ namespace: Guard::Mutant
@@ -0,0 +1,101 @@
1
+ ---
2
+ UnusedParameters:
3
+ exclude: []
4
+ UncommunicativeParameterName:
5
+ accept: []
6
+ exclude: []
7
+ enabled: true
8
+ reject:
9
+ - !ruby/regexp /^.$/
10
+ - !ruby/regexp /[0-9]$/
11
+ - !ruby/regexp /[A-Z]/
12
+ TooManyInstanceVariables:
13
+ exclude: []
14
+ enabled: true
15
+ max_instance_variables: 3
16
+ TooManyMethods:
17
+ exclude:
18
+ - Unparser::Emitter # TODO: 13 methods, mostly helpers for deduplicate sublcasses
19
+ enabled: true
20
+ max_methods: 10
21
+ UncommunicativeMethodName:
22
+ accept: []
23
+ exclude: []
24
+ enabled: true
25
+ reject:
26
+ - !ruby/regexp /^[a-z]$/
27
+ - !ruby/regexp /[0-9]$/
28
+ - !ruby/regexp /[A-Z]/
29
+ LongParameterList:
30
+ max_params: 3
31
+ exclude:
32
+ - Unparser#self.transquote
33
+ enabled: true
34
+ overrides: {}
35
+ FeatureEnvy:
36
+ exclude: []
37
+ enabled: true
38
+ ClassVariable:
39
+ exclude: []
40
+ enabled: true
41
+ BooleanParameter:
42
+ exclude: []
43
+ enabled: true
44
+ IrresponsibleModule:
45
+ exclude: []
46
+ enabled: true
47
+ UncommunicativeModuleName:
48
+ accept: []
49
+ exclude: []
50
+ enabled: true
51
+ reject:
52
+ - !ruby/regexp /^.$/
53
+ - !ruby/regexp /[0-9]$/
54
+ NestedIterators:
55
+ ignore_iterators: []
56
+ exclude:
57
+ - Unparser::Emitter#self.children
58
+ enabled: true
59
+ max_allowed_nesting: 1
60
+ TooManyStatements:
61
+ max_statements: 5
62
+ exclude: []
63
+ enabled: true
64
+ DuplicateMethodCall:
65
+ allow_calls: []
66
+ exclude: []
67
+ enabled: false
68
+ max_calls: 1
69
+ UtilityFunction:
70
+ max_helper_calls: 1
71
+ exclude: []
72
+ enabled: true
73
+ Attribute:
74
+ exclude: []
75
+ enabled: false
76
+ UncommunicativeVariableName:
77
+ accept: []
78
+ exclude: []
79
+ enabled: true
80
+ reject:
81
+ - !ruby/regexp /^.$/
82
+ - !ruby/regexp /[0-9]$/
83
+ - !ruby/regexp /[A-Z]/
84
+ RepeatedConditional:
85
+ exclude: []
86
+ enabled: true
87
+ max_ifs: 1
88
+ DataClump:
89
+ exclude: []
90
+ enabled: true
91
+ max_copies: 1
92
+ min_clump_size: 3
93
+ ControlParameter:
94
+ exclude: []
95
+ enabled: true
96
+ NilCheck:
97
+ enabled: false
98
+ LongYieldList:
99
+ max_params: 1
100
+ exclude: []
101
+ enabled: true
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 100
@@ -0,0 +1,18 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'guard-mutant'
3
+ spec.version = '0.0.1'
4
+ spec.authors = ['Markus Schirp']
5
+ spec.email = ['mbj@schirp-dso.com']
6
+ spec.summary = 'Guard plugin for Mutant'
7
+ spec.description = 'Guard::Mutant automatically mutates Ruby when files are modified.'
8
+ spec.homepage = 'https://github.com/yujinakayama/guard-rubocop'
9
+ spec.license = 'MIT'
10
+
11
+ spec.files = `git ls-files`.split($/).reject { |f| File.basename(f).start_with?('.') }
12
+ spec.test_files = spec.files.grep(%r(\A(spec)/))
13
+ spec.require_paths = ['lib']
14
+
15
+ spec.add_runtime_dependency 'guard', '~> 1.8'
16
+ spec.add_runtime_dependency 'mutant', '~> 0.3.0.beta15'
17
+ spec.add_runtime_dependency 'inflecto', '~> 0.0.2'
18
+ end
@@ -0,0 +1 @@
1
+ require 'guard/mutant'
@@ -0,0 +1,37 @@
1
+ require 'guard'
2
+ require 'guard/guard'
3
+
4
+ require 'inflecto'
5
+ require 'mutant'
6
+
7
+ module Guard
8
+ # Mutant guard
9
+ class Mutant < Guard
10
+
11
+ PREFIX = %r(\A#{Regexp.union('lib', 'app/models', 'app/controllers')})
12
+ SUFFIX = %r(\.rb\z)
13
+ EMPTY_STRING = ''.freeze
14
+
15
+ # Hook called when paths where changed
16
+ #
17
+ # @param [Enumerable<String>]
18
+ #
19
+ # @raise [:task_has_failed]
20
+ # if mutant run failed
21
+ #
22
+ # @return [self]
23
+ # otherwise
24
+ #
25
+ # @api private
26
+ #
27
+ def run_on_changes(paths)
28
+ subjects = paths.map do |path|
29
+ Inflecto.camelize(path.sub(PREFIX, EMPTY_STRING).sub(SUFFIX, EMPTY_STRING))
30
+ end
31
+ status = ::Mutant::CLI.run(%w(--rspec-dm2 --fail-fast) + subjects)
32
+ throw :task_has_failed if status.nonzero?
33
+ self
34
+ end
35
+
36
+ end # Mutant
37
+ end # Guard
@@ -0,0 +1,5 @@
1
+ require 'guard-mutant'
2
+ require 'devtools/spec_helper'
3
+
4
+ RSpec.configure do |config|
5
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guard-mutant
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Markus Schirp
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: guard
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mutant
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.0.beta15
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.0.beta15
41
+ - !ruby/object:Gem::Dependency
42
+ name: inflecto
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.2
55
+ description: Guard::Mutant automatically mutates Ruby when files are modified.
56
+ email:
57
+ - mbj@schirp-dso.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - Gemfile
63
+ - Gemfile.devtools
64
+ - Rakefile
65
+ - TODO
66
+ - config/devtools.yml
67
+ - config/flay.yml
68
+ - config/flog.yml
69
+ - config/mutant.yml
70
+ - config/reek.yml
71
+ - config/yardstick.yml
72
+ - guard-mutant.gemspec
73
+ - lib/guard-mutant.rb
74
+ - lib/guard/mutant.rb
75
+ - spec/spec_helper.rb
76
+ homepage: https://github.com/yujinakayama/guard-rubocop
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 2.0.2
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: Guard plugin for Mutant
100
+ test_files:
101
+ - spec/spec_helper.rb
102
+ has_rdoc: