andhapp-decoct 1.4.4 → 1.5.4
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/README.markdown +54 -21
- data/Rakefile +3 -4
- data/VERSION.yml +1 -1
- data/decoct.gemspec +69 -71
- data/lib/dscript.rb +10 -2
- data/lib/templates/.autotest +16 -2
- data/lib/templates/icons/fail.png +0 -0
- data/lib/templates/icons/ok.png +0 -0
- data/test/ts_script.rb +11 -4
- metadata +8 -16
data/README.markdown
CHANGED
@@ -1,29 +1,62 @@
|
|
1
|
-
|
1
|
+
Decoct: Quick start Sinatra with Rspec
|
2
|
+
=====================================
|
2
3
|
|
3
4
|
Decoct is a simple gem that creates a sinatra app directory structure and hooks it up with Rspec.
|
4
5
|
|
5
|
-
|
6
|
+
Installing
|
7
|
+
---------
|
6
8
|
|
7
|
-
|
8
|
-
gem install andhapp-decoct -s http://gems.github.com (on Windows)
|
9
|
+
Install the gem: gem install andhapp-decoct -s http://gems.github.com (on Windows)
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
The gem has only been tested on Windows and the reason that could be a problem is because it depends upon other
|
13
|
-
gems to work properly. I have a workaround in my mind but it has not been implemented as yet.
|
11
|
+
Caveat
|
12
|
+
-------
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
The gem depends on the following libraries:
|
18
|
-
* rspec
|
19
|
-
* ZenTest
|
20
|
-
* ruby-snarl
|
21
|
-
* redgreen
|
22
|
-
* rcov
|
14
|
+
The gem has only been tested on Windows and the reason that could be a problem is because it depends upon other
|
15
|
+
gems to work properly. I have a workaround in my mind but it has not been implemented as yet.
|
23
16
|
|
24
|
-
Also, in order to use ruby-snarl you should have [Snarl](http://www.fullphat.net/index.php) installed on
|
25
|
-
your machine.
|
26
|
-
Snarl is a messaging system for windows. This would give you nice visual messages on the status of your tests.
|
27
|
-
[Here's](http://thewebfellas.com/blog/2007/12/10/rspec-autotest-and-snarl-on-windows) a nice article if you
|
28
|
-
would like to incorporate that into rails projects. Hence, the caveat above.
|
29
17
|
|
18
|
+
Dependencies
|
19
|
+
-----------
|
20
|
+
|
21
|
+
The gem depends on the following libraries:
|
22
|
+
|
23
|
+
* rspec
|
24
|
+
* ZenTest
|
25
|
+
* ruby-snarl
|
26
|
+
* redgreen
|
27
|
+
* rcov
|
28
|
+
|
29
|
+
Also, in order to use ruby-snarl you should have [Snarl][snarl] installed on
|
30
|
+
your machine.
|
31
|
+
Snarl is a messaging system for windows. This would give you nice visual messages on the status of your tests.
|
32
|
+
[Here's][here] a nice article if you
|
33
|
+
would like to incorporate that into rails projects. Hence, the caveat above.
|
34
|
+
|
35
|
+
|
36
|
+
Usage
|
37
|
+
----
|
38
|
+
|
39
|
+
Assuming that you have installed the gem. Use the command line and go to the directory where you would like to create
|
40
|
+
the new project and run the following command:
|
41
|
+
|
42
|
+
decoct {project-name}
|
43
|
+
|
44
|
+
This would create a sinatra project with all the rspec dependencies. If a directory with the same name exists it will
|
45
|
+
overwrite it. Just go into the directory on your command line and run the following command:
|
46
|
+
|
47
|
+
set RSPEC=true autotest
|
48
|
+
|
49
|
+
and finally run the following command:
|
50
|
+
|
51
|
+
autotest
|
52
|
+
|
53
|
+
|
54
|
+
Issues
|
55
|
+
-----
|
56
|
+
|
57
|
+
I have spotted one existing issue with it and it is documented here:
|
58
|
+
[Decoct - Issue1][issue].
|
59
|
+
|
60
|
+
[snarl]: http://www.fullphat.net/index.php
|
61
|
+
[here]: http://thewebfellas.com/blog/2007/12/10/rspec-autotest-and-snarl-on-windows
|
62
|
+
[issue]: http://github.com/andhapp/decoct/issues
|
data/Rakefile
CHANGED
@@ -6,18 +6,17 @@ begin
|
|
6
6
|
require 'jeweler'
|
7
7
|
Jeweler::Tasks.new do |gem|
|
8
8
|
gem.name = "decoct"
|
9
|
-
gem.summary = "Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest,
|
9
|
+
gem.summary = "Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Growl, RedGreen, Rcov"
|
10
10
|
gem.email = "anuj@andhapp.com"
|
11
11
|
gem.homepage = "http://github.com/andhapp/decoct"
|
12
12
|
gem.description = "Sinatra Rspec project generator"
|
13
13
|
gem.authors = ["Anuj Dutta"]
|
14
|
-
gem.files.include %w(lib/
|
14
|
+
gem.files.include %w(lib/icons/*.*)
|
15
15
|
gem.add_dependency 'rspec'
|
16
16
|
gem.add_dependency 'ZenTest'
|
17
|
-
gem.add_dependency '
|
17
|
+
gem.add_dependency 'growl'
|
18
18
|
gem.add_dependency 'redgreen'
|
19
19
|
gem.add_dependency 'rcov'
|
20
|
-
gem.add_dependency 'win32console'
|
21
20
|
end
|
22
21
|
rescue LoadError
|
23
22
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/VERSION.yml
CHANGED
data/decoct.gemspec
CHANGED
@@ -1,71 +1,69 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{decoct}
|
5
|
-
s.version = "1.
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Anuj Dutta"]
|
9
|
-
s.date = %q{2009-05
|
10
|
-
s.default_executable = %q{decoct}
|
11
|
-
s.description = %q{Sinatra Rspec project generator}
|
12
|
-
s.email = %q{anuj@andhapp.com}
|
13
|
-
s.executables = ["decoct"]
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"README.markdown"
|
16
|
-
]
|
17
|
-
s.files = [
|
18
|
-
"README.markdown",
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
s.
|
37
|
-
s.
|
38
|
-
s.
|
39
|
-
s.
|
40
|
-
s.
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
s.add_runtime_dependency(%q<
|
51
|
-
s.add_runtime_dependency(%q<
|
52
|
-
s.add_runtime_dependency(%q<
|
53
|
-
s.add_runtime_dependency(%q<
|
54
|
-
s.add_runtime_dependency(%q<
|
55
|
-
else
|
56
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
57
|
-
s.add_dependency(%q<ZenTest>, [">= 0"])
|
58
|
-
s.add_dependency(%q<
|
59
|
-
s.add_dependency(%q<redgreen>, [">= 0"])
|
60
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
s.add_dependency(%q<
|
65
|
-
s.add_dependency(%q<
|
66
|
-
s.add_dependency(%q<
|
67
|
-
s.add_dependency(%q<
|
68
|
-
|
69
|
-
|
70
|
-
end
|
71
|
-
end
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{decoct}
|
5
|
+
s.version = "1.5.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Anuj Dutta"]
|
9
|
+
s.date = %q{2009-07-05}
|
10
|
+
s.default_executable = %q{decoct}
|
11
|
+
s.description = %q{Sinatra Rspec project generator}
|
12
|
+
s.email = %q{anuj@andhapp.com}
|
13
|
+
s.executables = ["decoct"]
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"README.markdown"
|
16
|
+
]
|
17
|
+
s.files = [
|
18
|
+
"README.markdown",
|
19
|
+
"Rakefile",
|
20
|
+
"VERSION.yml",
|
21
|
+
"bin/decoct",
|
22
|
+
"decoct.gemspec",
|
23
|
+
"lib/dconstants.rb",
|
24
|
+
"lib/dmeta.rb",
|
25
|
+
"lib/dscript.rb",
|
26
|
+
"lib/templates/.autotest",
|
27
|
+
"lib/templates/generic_app.rb",
|
28
|
+
"lib/templates/icons/fail.png",
|
29
|
+
"lib/templates/icons/ok.png",
|
30
|
+
"lib/templates/spec/app_spec.rb",
|
31
|
+
"lib/templates/spec/rcov.opts",
|
32
|
+
"lib/templates/spec/spec.opts",
|
33
|
+
"lib/templates/spec/spec_helper.rb",
|
34
|
+
"test/ts_script.rb"
|
35
|
+
]
|
36
|
+
s.homepage = %q{http://github.com/andhapp/decoct}
|
37
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
38
|
+
s.require_paths = ["lib"]
|
39
|
+
s.rubygems_version = %q{1.3.4}
|
40
|
+
s.summary = %q{Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Growl, RedGreen, Rcov}
|
41
|
+
s.test_files = [
|
42
|
+
"test/ts_script.rb"
|
43
|
+
]
|
44
|
+
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
47
|
+
s.specification_version = 3
|
48
|
+
|
49
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
50
|
+
s.add_runtime_dependency(%q<rspec>, [">= 0"])
|
51
|
+
s.add_runtime_dependency(%q<ZenTest>, [">= 0"])
|
52
|
+
s.add_runtime_dependency(%q<growl>, [">= 0"])
|
53
|
+
s.add_runtime_dependency(%q<redgreen>, [">= 0"])
|
54
|
+
s.add_runtime_dependency(%q<rcov>, [">= 0"])
|
55
|
+
else
|
56
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
57
|
+
s.add_dependency(%q<ZenTest>, [">= 0"])
|
58
|
+
s.add_dependency(%q<growl>, [">= 0"])
|
59
|
+
s.add_dependency(%q<redgreen>, [">= 0"])
|
60
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
61
|
+
end
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
64
|
+
s.add_dependency(%q<ZenTest>, [">= 0"])
|
65
|
+
s.add_dependency(%q<growl>, [">= 0"])
|
66
|
+
s.add_dependency(%q<redgreen>, [">= 0"])
|
67
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
68
|
+
end
|
69
|
+
end
|
data/lib/dscript.rb
CHANGED
@@ -8,7 +8,7 @@ module Decoct
|
|
8
8
|
|
9
9
|
attr_accessor :app_name
|
10
10
|
|
11
|
-
create_dir [:lib, :spec, :views, :public]
|
11
|
+
create_dir [:lib, :spec, :views, :public, :icons]
|
12
12
|
|
13
13
|
def initialize(app_name)
|
14
14
|
fail "app name cannot be nil or empty!!!" if app_name.eql?(nil) || app_name.empty?
|
@@ -21,9 +21,11 @@ module Decoct
|
|
21
21
|
create_spec
|
22
22
|
create_views
|
23
23
|
create_public
|
24
|
+
create_icons
|
24
25
|
copy_autotest_file
|
25
26
|
copy_rspec_files
|
26
27
|
copy_app_file
|
28
|
+
copy_icons
|
27
29
|
end
|
28
30
|
|
29
31
|
def create_app_dir
|
@@ -33,7 +35,7 @@ module Decoct
|
|
33
35
|
def copy_autotest_file
|
34
36
|
copy_file(".autotest", "#{app_name}#{File::SEPARATOR}.autotest")
|
35
37
|
end
|
36
|
-
|
38
|
+
|
37
39
|
def copy_rspec_files
|
38
40
|
from = ["spec#{File::SEPARATOR}spec.opts", "spec#{File::SEPARATOR}rcov.opts", "spec#{File::SEPARATOR}spec_helper.rb", "spec#{File::SEPARATOR}app_spec.rb"]
|
39
41
|
to = ["#{app_name}#{File::SEPARATOR}spec#{File::SEPARATOR}spec.opts", "#{app_name}#{File::SEPARATOR}spec#{File::SEPARATOR}rcov.opts", "#{app_name}#{File::SEPARATOR}spec#{File::SEPARATOR}spec_helper.rb", "#{app_name}#{File::SEPARATOR}spec#{File::SEPARATOR}#{app_name}_spec.rb"]
|
@@ -44,6 +46,12 @@ module Decoct
|
|
44
46
|
copy_file("generic_app.rb", "#{app_name}#{File::SEPARATOR}#{app_name}.rb")
|
45
47
|
end
|
46
48
|
|
49
|
+
def copy_icons
|
50
|
+
from = ["icons#{File::SEPARATOR}fail.png", "icons#{File::SEPARATOR}ok.png"]
|
51
|
+
to = [ "#{app_name}#{File::SEPARATOR}icons#{File::SEPARATOR}fail.png", "#{app_name}#{File::SEPARATOR}icons#{File::SEPARATOR}ok.png"]
|
52
|
+
copy_file(from, to)
|
53
|
+
end
|
54
|
+
|
47
55
|
end
|
48
56
|
|
49
57
|
end
|
data/lib/templates/.autotest
CHANGED
@@ -1,2 +1,16 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Autotest::Growl
|
2
|
+
def self.growl title, msg, img, pri=0, stick=""
|
3
|
+
system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{stick}"
|
4
|
+
end
|
5
|
+
|
6
|
+
Autotest.add_hook :ran_command do |at|
|
7
|
+
puts "at: '#{at.results}'"
|
8
|
+
output = at.results.slice(/(\d+)\s.*specifications?,\s(\d+)\s.*failures?/)
|
9
|
+
puts "out: #{output}"
|
10
|
+
if output =~ /[1-9]\sfailures?/
|
11
|
+
growl "Test Results", "#{output}", '../icons/fail.png', 2 #, "-s"
|
12
|
+
else
|
13
|
+
growl "Test Results", "#{output}", '../icons/ok.png'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
Binary file
|
Binary file
|
data/test/ts_script.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
%w(test/unit
|
1
|
+
%w(rubygems redgreen test/unit shoulda fileutils).each{|x| require x}
|
2
2
|
require File.join(File.dirname(__FILE__), "..", 'lib', 'dscript')
|
3
3
|
|
4
4
|
class TestScript < Test::Unit::TestCase
|
@@ -54,7 +54,14 @@ class TestScript < Test::Unit::TestCase
|
|
54
54
|
@script.copy_app_file
|
55
55
|
assert File.exists?("#{@app_name}#{File::SEPARATOR}#{@app_name}.rb")
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
|
+
should 'copy the icons' do
|
59
|
+
@script.create_icons
|
60
|
+
@script.copy_icons
|
61
|
+
assert File.exists?("#{@app_name}#{File::SEPARATOR}icons#{File::SEPARATOR}fail.png")
|
62
|
+
assert File.exists?("#{@app_name}#{File::SEPARATOR}icons#{File::SEPARATOR}ok.png")
|
63
|
+
end
|
64
|
+
|
58
65
|
teardown do
|
59
66
|
FileUtils.rmtree @app_name
|
60
67
|
end
|
@@ -63,11 +70,11 @@ class TestScript < Test::Unit::TestCase
|
|
63
70
|
|
64
71
|
context "raise exception when app name is nil or empty" do
|
65
72
|
|
66
|
-
should 'raise an error if there is
|
73
|
+
should 'raise an error if there is app_name is empty' do
|
67
74
|
assert_raises(RuntimeError) {Decoct::Dscript.new('')}
|
68
75
|
end
|
69
76
|
|
70
|
-
should 'raise an error if there is
|
77
|
+
should 'raise an error if there is app_name is nil' do
|
71
78
|
assert_raises(RuntimeError) {Decoct::Dscript.new(nil)}
|
72
79
|
end
|
73
80
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: andhapp-decoct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anuj Dutta
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05
|
12
|
+
date: 2009-07-05 00:00:00 -07:00
|
13
13
|
default_executable: decoct
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: growl
|
37
37
|
type: :runtime
|
38
38
|
version_requirement:
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -62,16 +62,6 @@ dependencies:
|
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: "0"
|
64
64
|
version:
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: win32console
|
67
|
-
type: :runtime
|
68
|
-
version_requirement:
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: "0"
|
74
|
-
version:
|
75
65
|
description: Sinatra Rspec project generator
|
76
66
|
email: anuj@andhapp.com
|
77
67
|
executables:
|
@@ -91,12 +81,14 @@ files:
|
|
91
81
|
- lib/dscript.rb
|
92
82
|
- lib/templates/.autotest
|
93
83
|
- lib/templates/generic_app.rb
|
84
|
+
- lib/templates/icons/fail.png
|
85
|
+
- lib/templates/icons/ok.png
|
94
86
|
- lib/templates/spec/app_spec.rb
|
95
87
|
- lib/templates/spec/rcov.opts
|
96
88
|
- lib/templates/spec/spec.opts
|
97
89
|
- lib/templates/spec/spec_helper.rb
|
98
90
|
- test/ts_script.rb
|
99
|
-
has_rdoc:
|
91
|
+
has_rdoc: false
|
100
92
|
homepage: http://github.com/andhapp/decoct
|
101
93
|
post_install_message:
|
102
94
|
rdoc_options:
|
@@ -120,7 +112,7 @@ requirements: []
|
|
120
112
|
rubyforge_project:
|
121
113
|
rubygems_version: 1.2.0
|
122
114
|
signing_key:
|
123
|
-
specification_version:
|
124
|
-
summary: Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest,
|
115
|
+
specification_version: 3
|
116
|
+
summary: Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Growl, RedGreen, Rcov
|
125
117
|
test_files:
|
126
118
|
- test/ts_script.rb
|