guard-yeti 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.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .DS_Store
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@guard-yeti --create
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in guard-yeti.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,25 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ guard-yeti (0.0.1)
5
+ guard
6
+ rake
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ guard (0.7.0)
12
+ thor (~> 0.14.6)
13
+ guard-minitest (0.4.0)
14
+ guard (~> 0.4)
15
+ minitest (2.6.0)
16
+ rake (0.9.2)
17
+ thor (0.14.6)
18
+
19
+ PLATFORMS
20
+ ruby
21
+
22
+ DEPENDENCIES
23
+ guard-minitest
24
+ guard-yeti!
25
+ minitest
data/Guardfile ADDED
@@ -0,0 +1,6 @@
1
+ guard 'minitest' do
2
+ watch(%r|^spec/(.*)_spec\.rb|)
3
+ watch(%r|^lib/(.*)\.rb|) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch(%r|^lib/guard/(.*)\.rb|) { |m| "spec/guard_#{m[1]}_spec.rb" }
5
+ watch(%r|^spec/spec_helper\.rb|) { "spec" }
6
+ end
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Guard::Yeti
2
+
3
+ ## Install
4
+
5
+ Please be sure to have [Guard](https://github.com/guard/guard) and [Yeti](http://yuilibrary.com/projects/yeti/) installed before continue.
6
+
7
+ Install the gem:
8
+
9
+ $ gem install guard-yeti
10
+
11
+ Add it to your Gemfile (inside test group):
12
+
13
+ gem 'guard-yeti'
14
+
15
+ Add guard definition to your Guardfile with:
16
+
17
+ $ guard init yeti
18
+
19
+ ## Usage
20
+
21
+ Please read the [Guard usage documentation](https://github.com/guard/guard#readme).
22
+
23
+ ## Guardfile
24
+
25
+ Please read [Guard doc](https://github.com/guard/guard#readme) for more info about the Guardfile DSL.
26
+
27
+ ### Rails app
28
+
29
+ ``` ruby
30
+ guard 'yeti' do
31
+ watch(%r{^public/javascripts/.*\.js}) { |m| "public/javascripts/test/#{m[1]}_test.html" }
32
+ watch(%r{^public/javascripts/test/.*\.html})
33
+ end
34
+ ```
35
+ ## Author
36
+
37
+ [Simon Højberg](http://twitter.com/shojberg)
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+ require 'bundler/gem_tasks'
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+
9
+ Rake::TestTask.new do |t|
10
+ t.pattern = "spec/*_spec.rb"
11
+ t.libs << "spec"
12
+ end
13
+
14
+ task :default => [:test]
@@ -0,0 +1,24 @@
1
+ # encoding: UTF-8
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "guard-yeti"
5
+ s.version = "0.0.1"
6
+ s.authors = ["Simon Højberg", "Christopher Meiklejohn"]
7
+ s.email = ["r.hackr@gmail.com", "christopher.meiklejohn@gmail.com"]
8
+ s.homepage = "https://github.com/hojberg/guard-yeti"
9
+ s.summary = %q{Guard::Yeti automatically run's your YUI tests via Yeti}
10
+ s.description = %q{Guard watches files. Use guard-yeti to run your YUI unit test via Yeti, when your implementation files change}
11
+
12
+ s.rubyforge_project = "guard-yeti"
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ s.add_dependency "guard"
20
+ s.add_dependency "rake"
21
+
22
+ s.add_development_dependency "minitest"
23
+ s.add_development_dependency "guard-minitest"
24
+ end
@@ -0,0 +1,31 @@
1
+ require 'guard/notifier'
2
+
3
+ module Guard
4
+ class Yeti
5
+ class Notifier
6
+
7
+ def self.guard_message(test_count, assertion_count, failure_count, error_count, skip_count, duration)
8
+ message = "#{test_count} examples, #{assertion_count} assertions, #{failure_count} failures, #{error_count} errors"
9
+ if skip_count > 0
10
+ message << " (#{skip_count} skips)"
11
+ end
12
+ message << "\nin %.6f seconds, %.4f tests/s, %.4f assertions/s." % [duration, test_count / duration, assertion_count / duration]
13
+ message
14
+ end
15
+
16
+ # failed | pending (skip) | success
17
+ def self.guard_image(failure_count, skip_count)
18
+ icon = if failure_count > 0
19
+ :failed
20
+ elsif skip_count > 0
21
+ :pending
22
+ else
23
+ :success
24
+ end
25
+ end
26
+
27
+ def self.notify(result, message)
28
+ end
29
+ end
30
+ end
31
+ end
data/lib/guard/yeti.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'guard'
2
+ require 'guard/guard'
3
+
4
+ module Guard
5
+ class Yeti < Guard
6
+
7
+ autoload :Notifier, 'guard/yeti/notifier'
8
+
9
+ def initialize(watches = [], options = {})
10
+ super
11
+ UI.info "init"
12
+ @latest_output = "sucks"
13
+ end
14
+
15
+ def start
16
+ UI.info "Guard::Yeti is running!"
17
+ end
18
+
19
+ def run_on_change(paths)
20
+ return false if paths.empty?
21
+
22
+ UI.info("yeti #{paths[0]} --solo=1", :reset => true)
23
+
24
+ output = %x[yeti #{paths[0]} --solo=1]
25
+ result = $?.success?
26
+
27
+ Notifier.notify(result, result ? "Passed" : "Failed")
28
+
29
+ [result, output]
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "guard-yeti" do
6
+
7
+ before do
8
+ # mock of the kernel system call
9
+ module Kernel
10
+ def `(cmd)
11
+ cmd
12
+ end
13
+ end
14
+ end
15
+
16
+ it "runs yeti on update" do
17
+ yeti = Guard::Yeti.new
18
+ yeti.run_on_change(["yui_test_file.html"]).
19
+ must_equal [true, "yeti yui_test_file.html --solo=1"]
20
+ end
21
+
22
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: UTF-8
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+ Bundler.setup
6
+
7
+ $:.unshift File.expand_path("../../lib", __FILE__)
8
+
9
+ require "guard/yeti"
10
+
11
+ require 'minitest/spec'
12
+ require 'minitest/autorun'
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guard-yeti
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Simon Højberg
9
+ - Christopher Meiklejohn
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2011-10-06 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: guard
17
+ requirement: &2156145380 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2156145380
26
+ - !ruby/object:Gem::Dependency
27
+ name: rake
28
+ requirement: &2156144940 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2156144940
37
+ - !ruby/object:Gem::Dependency
38
+ name: minitest
39
+ requirement: &2156144520 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *2156144520
48
+ - !ruby/object:Gem::Dependency
49
+ name: guard-minitest
50
+ requirement: &2156144100 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *2156144100
59
+ description: Guard watches files. Use guard-yeti to run your YUI unit test via Yeti,
60
+ when your implementation files change
61
+ email:
62
+ - r.hackr@gmail.com
63
+ - christopher.meiklejohn@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - .gitignore
69
+ - .rvmrc
70
+ - Gemfile
71
+ - Gemfile.lock
72
+ - Guardfile
73
+ - README.md
74
+ - Rakefile
75
+ - guard-yeti.gemspec
76
+ - lib/guard/yeti.rb
77
+ - lib/guard/yeti/notifier.rb
78
+ - spec/guard_yeti_spec.rb
79
+ - spec/spec_helper.rb
80
+ homepage: https://github.com/hojberg/guard-yeti
81
+ licenses: []
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project: guard-yeti
100
+ rubygems_version: 1.8.11
101
+ signing_key:
102
+ specification_version: 3
103
+ summary: Guard::Yeti automatically run's your YUI tests via Yeti
104
+ test_files:
105
+ - spec/guard_yeti_spec.rb
106
+ - spec/spec_helper.rb