cch 0.1.0 → 0.2.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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTg3OWZkMGY4NjYxOGJiMzNiZTUyMzU4ZTk4MmM1NWNkNmNjMGEyNw==
4
+ YTlhZjNmMjc4OTU2ODQ1MTJhYzRlNDRhZTI0OWRiMmFhY2U0MTU4Zg==
5
5
  data.tar.gz: !binary |-
6
- Yjg2NmRkMmE1YmNjMDhlMTgyNzBmM2Q1YzYzYTEzMTgwZjk3ZTk4MA==
6
+ MDBhZGFhZmQ5ZjI4ZDViZjY3NjFjZDUzN2RiZGRiZGIzNGRiYTBhYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- N2MzOTA1MzAwZDkxNGY1YTY1YWMwNDI1YWY5ZjNlNmI0ZDNhYjIxMDdjZDZi
10
- MzZmYTIyMmQ5OTdjYzU1MzdkNjAzZWExNmY4OWE5NTM0OWZlYWVmNTU2YzJj
11
- ZmRmZWJmOWY0NDc2YzUyNDFiMTNmZTNiNWExNmEyNTZkY2UxMDE=
9
+ MzU4OGJlZTQyZDljZWNiMWU2ZWZhNDg2MmI2NjE4N2JlNzMwYTFlYjU0Y2Zi
10
+ Y2VkOTAzNzVhYmEwYzlhZWEzNmMwNDA1OTVlMjZlZGJiOTgwZDRlOWZkZjFl
11
+ NmRiNzIxYTA3YmRhOTY2ODhiNTU2NzFkNGIyOTEzMTkxYjc5MzI=
12
12
  data.tar.gz: !binary |-
13
- NGNjZThmMjQ2MTJiMzQ4Mzc4MzA3MTY3ZDhjNGJmMzQ0YWZiYzYxYzY1ZGNk
14
- ODQ3OTFiMDlmYmZkNDM0MjFiNjUxZDY2OWFkMmM0NDk4ZDQyNzU4N2YzZWU4
15
- NzllODgwMDNmOTJjYmFmNDc5ZmQ2ZjM0MTI5OGVlN2RmYTlhZDI=
13
+ NWJlMWVkNjVhNDc2OGIyNDMzY2I2YTc2ZmVlZmE4OGE1ZGYwNTNhOWIzYzJm
14
+ NGQzM2U4NTM4MmU4ZjQ3ZWI0ZGNhMTQyY2FlZjIyOTBiOGMwMTU0ZWM1OTU5
15
+ MGE5NWFkZGIyM2MwNWQ4NDdkYTAwMjRhZWI2YjBiNmZhN2JlMzc=
data/.travis.yml CHANGED
@@ -16,3 +16,5 @@ script:
16
16
  deploy:
17
17
  provider: rubygems
18
18
  api_key: 4672b2d03693ff646f79dfb823e02a60
19
+ on:
20
+ tags: true
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cch (0.1.0)
4
+ cch (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -4,9 +4,11 @@ CCH - Check on changes for ruby projects
4
4
  ## gem status
5
5
 
6
6
  [![Build Status](https://travis-ci.org/vnegrisolo/cch.svg)](https://travis-ci.org/vnegrisolo/cch)
7
+ [![Gem Version](https://badge.fury.io/rb/cch.svg)](http://badge.fury.io/rb/cch)
7
8
  [![Code Climate](https://codeclimate.com/github/vnegrisolo/cch/badges/gpa.svg)](https://codeclimate.com/github/vnegrisolo/cch)
8
9
  [![Test Coverage](https://codeclimate.com/github/vnegrisolo/cch/badges/coverage.svg)](https://codeclimate.com/github/vnegrisolo/cch/coverage)
9
10
  [![Dependency Status](https://gemnasium.com/vnegrisolo/cch.svg)](https://gemnasium.com/vnegrisolo/cch)
11
+ [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://www.rubydoc.info/github/vnegrisolo/cch)
10
12
 
11
13
  ## Installation
12
14
 
@@ -18,8 +20,9 @@ Create a `Cchfile` on your project folder:
18
20
 
19
21
  ```ruby
20
22
  Cch::Setup.tap do |setup|
21
- setup.run :rspec
22
23
  setup.run :rubocop
24
+ setup.run :haml_lint
25
+ setup.run :rspec
23
26
  end
24
27
  ```
25
28
 
data/cch.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Vinicius Ferreira Negrisolo']
10
10
  spec.email = ['vinicius.negrisolo@gmail.com']
11
11
 
12
- spec.summary = 'cch - check on changes'
13
- spec.description = 'cch - check on changes'
12
+ spec.summary = 'cch - check on changes for ruby projects'
13
+ spec.description = 'cch - check on changes for ruby projects'
14
14
  spec.homepage = 'https://github.com/vnegrisolo/cch'
15
15
  spec.license = 'MIT'
16
16
 
data/config/Cchfile CHANGED
@@ -12,7 +12,20 @@ Cch::Setup.tap do |setup|
12
12
  runner.watch /\.rb$/
13
13
  end
14
14
 
15
+ setup.add_runner :haml_lint do |runner|
16
+ runner.watch /\.haml$/
17
+ end
18
+
15
19
  setup.add_runner :rspec do |runner|
16
20
  runner.watch /_spec\.rb$/
21
+
22
+ runner.watch /^spec\/spec_helper.rb$/, proc { |m| %W(spec) }
23
+ runner.watch /^spec\/rails_helper.rb$/, proc { |m| %W(spec) }
24
+ runner.watch /^config\/routes.rb$/, proc { |m| %W(spec/routing) }
25
+ runner.watch /^app\/controllers\/application_controller.rb$/, proc { |m| %W(spec/controllers) }
26
+
27
+ runner.watch /^lib\/(.+)\.rb$/, proc { |m| %W(spec/#{m[1]}_spec.rb spec/lib/#{m[1]}_spec.rb) }
28
+ runner.watch /^app\/(.+)\.rb$/, proc { |m| %W(spec/#{m[1]}_spec.rb) }
29
+ runner.watch /^app\/controllers\/(.+)_(controller)\.rb$/, proc { |m| %W(spec/routing/#{m[1]}_routing_spec.rb spec/requests/#{m[1]}_spec.rb spec/features/#{m[1]}_spec.rb) }
17
30
  end
18
31
  end
@@ -0,0 +1,28 @@
1
+ module Cch
2
+ module Commands
3
+ module FileSystem
4
+ def filter_files(files, patterns)
5
+ filtered_files = patterns.flat_map do |pattern, transform|
6
+ find_matched_files(files, pattern, transform)
7
+ end
8
+
9
+ filtered_files = existing_files(filtered_files)
10
+ puts "=> #{filtered_files.size.to_s.color(:yellow)} files=#{filtered_files}"
11
+ filtered_files
12
+ end
13
+
14
+ private
15
+
16
+ def find_matched_files(files, pattern, transform)
17
+ files.flat_map do |file|
18
+ matched = file.match(pattern)
19
+ transform ? transform.call(matched) : file if matched
20
+ end
21
+ end
22
+
23
+ def existing_files(files)
24
+ files.flatten.compact.sort.uniq.select { |f| File.exist?(f) }
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/cch/runner.rb CHANGED
@@ -1,35 +1,28 @@
1
1
  module Cch
2
2
  class Runner
3
3
  include Commands::Shell
4
+ include Commands::FileSystem
4
5
 
5
6
  attr_reader :name, :patterns
6
7
  attr_accessor :command, :on
7
8
 
8
9
  def initialize(name)
9
10
  @name = name
10
- @command = "bundle exec #{@name} %{files}"
11
+ @command = "bundle exec #{name} %{files}"
11
12
  @on = false
12
- @patterns = []
13
+ @patterns = {}
13
14
  end
14
15
 
15
- def watch(pattern)
16
- @patterns << pattern
16
+ def watch(pattern, transform = nil)
17
+ @patterns[pattern] = transform
17
18
  end
18
19
 
19
20
  def run(files)
20
- puts "=> running #{@name.to_s.color(:black, :green)}"
21
- files = filter_files(files)
22
- puts "=> #{files.size.to_s.color(:yellow)} files=#{files}"
23
- return unless run?(files)
21
+ puts "=> running #{name.to_s.color(:black, :green)}"
22
+ filtered_files = filter_files(files, patterns)
23
+ return unless run?(filtered_files)
24
24
 
25
- system_command(@command % { files: files.join(' ') })
26
- end
27
-
28
- def filter_files(files)
29
- filtered_files = patterns.flat_map { |pattern| files.grep(pattern) }
30
- puts "=> filtered_files='#{filtered_files}'" if Setup.debug
31
-
32
- filtered_files.sort.uniq.select { |f| File.exist?(f) }
25
+ system_command(command % { files: filtered_files.join(' ') })
33
26
  end
34
27
 
35
28
  def run?(files)
data/lib/cch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cch
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/cch.rb CHANGED
@@ -4,6 +4,7 @@ require 'cch/extensions/string'
4
4
  require 'cch/version'
5
5
  require 'cch/setup'
6
6
  require 'cch/commands/shell'
7
+ require 'cch/commands/file_system'
7
8
  require 'cch/watcher'
8
9
  require 'cch/runner'
9
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinicius Ferreira Negrisolo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-08 00:00:00.000000000 Z
11
+ date: 2015-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description: cch - check on changes
97
+ description: cch - check on changes for ruby projects
98
98
  email:
99
99
  - vinicius.negrisolo@gmail.com
100
100
  executables:
@@ -121,6 +121,7 @@ files:
121
121
  - cch.gemspec
122
122
  - config/Cchfile
123
123
  - lib/cch.rb
124
+ - lib/cch/commands/file_system.rb
124
125
  - lib/cch/commands/shell.rb
125
126
  - lib/cch/extensions/string.rb
126
127
  - lib/cch/runner.rb
@@ -151,5 +152,5 @@ rubyforge_project:
151
152
  rubygems_version: 2.4.5
152
153
  signing_key:
153
154
  specification_version: 4
154
- summary: cch - check on changes
155
+ summary: cch - check on changes for ruby projects
155
156
  test_files: []