andhapp-decoct 1.0.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.
data/README.markdown ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,45 @@
1
+ # sinatra-rspec
2
+
3
+ %W{rake rake/testtask rake/rdoctask rcov/rcovtask}.each{|x| require x}
4
+
5
+ begin
6
+ require 'jeweler'
7
+ Jeweler::Tasks.new do |s|
8
+ s.name = "decoct"
9
+ s.summary = "Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Snarl(on Windows), RedGreen, Rcov"
10
+ s.email = "anuj@andhapp.com"
11
+ s.homepage = "http://github.com/andhapp/decoct"
12
+ s.description = "Sinatra Rspec project generator"
13
+ s.authors = ["Anuj Dutta"]
14
+ s.add_dependency 'rspec'
15
+ s.add_dependency 'ZenTest'
16
+ s.add_dependency 'ruby-snarl'
17
+ s.add_dependency 'redgreen'
18
+ s.add_dependency 'rcov'
19
+ end
20
+ rescue LoadError
21
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
22
+ end
23
+
24
+ Rake::TestTask.new do |t|
25
+ t.libs << 'lib'
26
+ t.pattern = 'test/**/*_test.rb'
27
+ t.verbose = false
28
+ end
29
+
30
+ Rake::RDocTask.new do |rdoc|
31
+ rdoc.rdoc_dir = 'rdoc'
32
+ rdoc.title = 'Jeweler'
33
+ rdoc.options << '--line-numbers' << '--inline-source'
34
+ rdoc.rdoc_files.include('README*')
35
+ rdoc.rdoc_files.include('lib/**/*.rb')
36
+ end
37
+
38
+ Rcov::RcovTask.new do |t|
39
+ t.libs << "test"
40
+ t.test_files = FileList['test/*_test.rb']
41
+ t.verbose = true
42
+ end
43
+
44
+ task :default => :rcov
45
+
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :patch: 0
3
+ :major: 1
4
+ :minor: 0
data/bin/decoct ADDED
@@ -0,0 +1,14 @@
1
+ app_path = ARGV.first
2
+
3
+ require File.dirname(__FILE__) + '/../lib'
4
+ require 'dscript'
5
+
6
+ Dedoct::Dscript.new(app_path)
7
+ Dedoct::Dscript.run
8
+ Dedoct::Dscript.create_lib
9
+ Dedoct::Dscript.create_spec
10
+ Dedoct::Dscript.create_views
11
+ Dedoct::Dscript.create_public
12
+ Dedoct::Dscript.copy_autotest_file
13
+ Dedoct::Dscript.copy_rspec_files
14
+ Dedoct::Dscript.create_app_file
data/decoct.gemspec ADDED
@@ -0,0 +1,67 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{decoct}
5
+ s.version = "1.0.0"
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-04-19}
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/dscript.rb",
25
+ "test/templates/generic_app.rb",
26
+ "test/templates/spec/rcov.opts",
27
+ "test/templates/spec/spec.opts",
28
+ "test/templates/spec/spec_helper.rb",
29
+ "test/ts_script.rb"
30
+ ]
31
+ s.has_rdoc = true
32
+ s.homepage = %q{http://github.com/andhapp/decoct}
33
+ s.rdoc_options = ["--charset=UTF-8"]
34
+ s.require_paths = ["lib"]
35
+ s.rubygems_version = %q{1.3.1}
36
+ s.summary = %q{Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Snarl(on Windows), RedGreen, Rcov}
37
+ s.test_files = [
38
+ "test/templates/generic_app.rb",
39
+ "test/templates/spec/spec_helper.rb",
40
+ "test/ts_script.rb"
41
+ ]
42
+
43
+ if s.respond_to? :specification_version then
44
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
45
+ s.specification_version = 2
46
+
47
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<rspec>, [">= 0"])
49
+ s.add_runtime_dependency(%q<ZenTest>, [">= 0"])
50
+ s.add_runtime_dependency(%q<ruby-snarl>, [">= 0"])
51
+ s.add_runtime_dependency(%q<redgreen>, [">= 0"])
52
+ s.add_runtime_dependency(%q<rcov>, [">= 0"])
53
+ else
54
+ s.add_dependency(%q<rspec>, [">= 0"])
55
+ s.add_dependency(%q<ZenTest>, [">= 0"])
56
+ s.add_dependency(%q<ruby-snarl>, [">= 0"])
57
+ s.add_dependency(%q<redgreen>, [">= 0"])
58
+ s.add_dependency(%q<rcov>, [">= 0"])
59
+ end
60
+ else
61
+ s.add_dependency(%q<rspec>, [">= 0"])
62
+ s.add_dependency(%q<ZenTest>, [">= 0"])
63
+ s.add_dependency(%q<ruby-snarl>, [">= 0"])
64
+ s.add_dependency(%q<redgreen>, [">= 0"])
65
+ s.add_dependency(%q<rcov>, [">= 0"])
66
+ end
67
+ end
data/lib/dconstants.rb ADDED
@@ -0,0 +1,8 @@
1
+ module Dedoct
2
+ module Dconstants
3
+ LIB = 'lib'
4
+ VIEWS = 'views'
5
+ SPEC = 'spec'
6
+ PUBLIC = 'public'
7
+ end
8
+ end
data/lib/dscript.rb ADDED
@@ -0,0 +1,64 @@
1
+ require 'ftools'
2
+ require File.dirname(__FILE__) + '/../lib/dconstants'
3
+
4
+ module Dedoct
5
+
6
+ include Dedoct::Dconstants
7
+
8
+ # move the creation into a module and just include that module
9
+ class Dscript
10
+
11
+ attr_reader :app_name
12
+
13
+ def initialize(app_name)
14
+ fail "app name cannot be nil or empty!!!" if app_name.eql?(nil) || app_name.empty?
15
+ @app_name = app_name
16
+ end
17
+
18
+ def run
19
+ create_app_dir
20
+ end
21
+
22
+ def create_lib
23
+ create_dir(Dconstants::LIB)
24
+ end
25
+
26
+ def create_spec
27
+ create_dir(Dconstants::SPEC)
28
+ end
29
+
30
+ def create_views
31
+ create_dir(Dconstants::VIEWS)
32
+ end
33
+
34
+ def create_public
35
+ create_dir(Dconstants::PUBLIC)
36
+ end
37
+
38
+ def copy_autotest_file
39
+ File.copy("templates/.autotest", "#{app_name}/.autotest")
40
+ end
41
+
42
+ def copy_rspec_files
43
+ File.copy("templates/spec/spec.opts", "#{app_name}/spec/spec.opts")
44
+ File.copy("templates/spec/rcov.opts", "#{app_name}/spec/rcov.opts")
45
+ File.copy("templates/spec/spec_helper.rb", "#{app_name}/spec/spec_helper.rb")
46
+ end
47
+
48
+ def create_app_file
49
+ File.copy("templates/generic_app.rb", "#{app_name}/#{app_name}.rb")
50
+ end
51
+
52
+ private
53
+
54
+ def create_app_dir
55
+ create_dir
56
+ end
57
+
58
+ def create_dir(value = '')
59
+ Dir.mkdir("#{app_name}/#{value}")
60
+ end
61
+
62
+ end
63
+
64
+ end
@@ -0,0 +1,7 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../sinatra/lib'
2
+
3
+ %w{rubygems sinatra}.each {|x| require x}
4
+
5
+ get '/' do
6
+ 'Congratulations!!! You have successfully installed decoct.'
7
+ end
@@ -0,0 +1,2 @@
1
+ --exclude "spec/*,gems/*"
2
+ --rails
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,38 @@
1
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
+ # from the project root directory.
3
+ require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
4
+ require 'spec/autorun'
5
+
6
+ Spec::Runner.configure do |config|
7
+ # == Fixtures
8
+ #
9
+ # You can declare fixtures for each example_group like this:
10
+ # describe "...." do
11
+ # fixtures :table_a, :table_b
12
+ #
13
+ # Alternatively, if you prefer to declare them only once, you can
14
+ # do so right here. Just uncomment the next line and replace the fixture
15
+ # names with your fixtures.
16
+ #
17
+ # config.global_fixtures = :table_a, :table_b
18
+ #
19
+ # If you declare global fixtures, be aware that they will be declared
20
+ # for all of your examples, even those that don't use them.
21
+ #
22
+ # You can also declare which fixtures to use (for example fixtures for test/fixtures):
23
+ #
24
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
25
+ #
26
+ # == Mock Framework
27
+ #
28
+ # RSpec uses it's own mocking framework by default. If you prefer to
29
+ # use mocha, flexmock or RR, uncomment the appropriate line:
30
+ #
31
+ # config.mock_with :mocha
32
+ # config.mock_with :flexmock
33
+ # config.mock_with :rr
34
+ #
35
+ # == Notes
36
+ #
37
+ # For more information take a look at Spec::Runner::Configuration and Spec::Runner
38
+ end
data/test/ts_script.rb ADDED
@@ -0,0 +1,87 @@
1
+ %W(test/unit redgreen shoulda rr ../lib/dscript fileutils).each{|x| require x}
2
+
3
+ class TestScript < Test::Unit::TestCase
4
+
5
+ def dir_in_app_folder
6
+ Dir.entries("epoxys").each {|x| [] << x if !File.directory?(x)}
7
+ end
8
+
9
+ context "creating sinatra app with rspec" do
10
+ setup do
11
+ @script = Dedoct::Dscript.new('epoxys')
12
+ @app_name = @script.app_name
13
+ @script.run
14
+ end
15
+
16
+ should 'create the app directory' do
17
+ assert File.exists?(@app_name)
18
+ end
19
+
20
+ should 'create a directory called lib' do
21
+ initial_num_of_dir = dir_in_app_folder().size()
22
+ @script.create_lib
23
+ final_num_of_dir = dir_in_app_folder().size()
24
+ assert_equal final_num_of_dir, initial_num_of_dir + 1
25
+ assert_not_nil dir_in_app_folder.index("lib")
26
+ end
27
+
28
+ should 'create a directory called spec and copy the rspec files' do
29
+ initial_num_of_dir = dir_in_app_folder().size()
30
+ @script.create_spec
31
+ final_num_of_dir = dir_in_app_folder().size()
32
+
33
+ @script.copy_rspec_files
34
+
35
+ assert File.exists?("#{@app_name}/spec/spec.opts")
36
+ assert File.exists?("#{@app_name}/spec/rcov.opts")
37
+ assert File.exists?("#{@app_name}/spec/spec_helper.rb")
38
+
39
+ assert_equal final_num_of_dir, initial_num_of_dir + 1
40
+ assert_not_nil dir_in_app_folder.index("spec")
41
+ end
42
+
43
+ should 'create a directory called views' do
44
+ initial_num_of_dir = dir_in_app_folder().size()
45
+ @script.create_views
46
+ final_num_of_dir = dir_in_app_folder().size()
47
+ assert_equal final_num_of_dir, initial_num_of_dir + 1
48
+ assert_not_nil dir_in_app_folder.index("views")
49
+ end
50
+
51
+ should 'create a directory called public' do
52
+ initial_num_of_dir = dir_in_app_folder().size()
53
+ @script.create_public
54
+ final_num_of_dir = dir_in_app_folder().size()
55
+ assert_equal final_num_of_dir, initial_num_of_dir + 1
56
+ assert_not_nil dir_in_app_folder.index("public")
57
+ end
58
+
59
+ should 'copy the .autotest file to app folder' do
60
+ @script.copy_autotest_file
61
+ assert File.exists?("#{@app_name}/.autotest")
62
+ end
63
+
64
+ should 'create the app file' do
65
+ @script.create_app_file
66
+ assert File.exists?("#{@app_name}/#{@app_name}.rb")
67
+ end
68
+
69
+ teardown do
70
+ FileUtils.rmtree @app_name
71
+ end
72
+
73
+ end
74
+
75
+ context "raise exception when app name is nil or empty" do
76
+
77
+ should 'raise an error if there is no app_name is empty' do
78
+ assert_raises(RuntimeError) {@script = Dedoct::Dscript.new('')}
79
+ end
80
+
81
+ should 'raise an error if there is no app_name is nil' do
82
+ assert_raises(RuntimeError) {@script = Dedoct::Dscript.new(nil)}
83
+ end
84
+
85
+ end
86
+
87
+ end
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: andhapp-decoct
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Anuj Dutta
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-19 00:00:00 -07:00
13
+ default_executable: decoct
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: ZenTest
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: ruby-snarl
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: redgreen
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: rcov
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ description: Sinatra Rspec project generator
66
+ email: anuj@andhapp.com
67
+ executables:
68
+ - decoct
69
+ extensions: []
70
+
71
+ extra_rdoc_files:
72
+ - README.markdown
73
+ files:
74
+ - README.markdown
75
+ - Rakefile
76
+ - VERSION.yml
77
+ - bin/decoct
78
+ - decoct.gemspec
79
+ - lib/dconstants.rb
80
+ - lib/dscript.rb
81
+ - test/templates/generic_app.rb
82
+ - test/templates/spec/rcov.opts
83
+ - test/templates/spec/spec.opts
84
+ - test/templates/spec/spec_helper.rb
85
+ - test/ts_script.rb
86
+ has_rdoc: true
87
+ homepage: http://github.com/andhapp/decoct
88
+ post_install_message:
89
+ rdoc_options:
90
+ - --charset=UTF-8
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: "0"
98
+ version:
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ requirements: []
106
+
107
+ rubyforge_project:
108
+ rubygems_version: 1.2.0
109
+ signing_key:
110
+ specification_version: 2
111
+ summary: Its a simple gem which creates a project structure for sinatra to work with rspec, ZenTest, Snarl(on Windows), RedGreen, Rcov
112
+ test_files:
113
+ - test/templates/generic_app.rb
114
+ - test/templates/spec/spec_helper.rb
115
+ - test/ts_script.rb