incept 0.1.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.
File without changes
@@ -0,0 +1,9 @@
1
+ require 'bundler'
2
+ require 'rspec/core/rake_task'
3
+
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ desc "Run all Specs"
7
+ RSpec::Core::RakeTask.new
8
+
9
+ task :default => :spec
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
4
+
5
+ require 'incept'
6
+
7
+ Incept::CLI.start
@@ -0,0 +1,11 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'incept/version'
4
+ require 'incept/package'
5
+ require 'incept/single_option_package'
6
+ require 'incept/multiple_option_package'
7
+ require 'incept/package_collection'
8
+ require 'incept/template'
9
+ require 'incept/configuration'
10
+ require 'incept/directory'
11
+ require 'incept/cli'
@@ -0,0 +1,40 @@
1
+ require 'thor'
2
+ require 'tempfile'
3
+
4
+ module Incept
5
+ class CLI < Thor
6
+
7
+ desc "new [app]", "Create a new Rails 3 application"
8
+ long_desc <<-D
9
+ Incept will ask you a few questions to determine what features you
10
+ would like to generate. Based on your answers it will setup a new Rails 3 application.
11
+ D
12
+ def new(project)
13
+ PackageCollection.each do |package|
14
+ package.selection = ask package.prompt
15
+ end
16
+
17
+ command = "rails new #{project} --template=#{template_file.path} #{additional_options}"
18
+ say "Running `#{command}`"
19
+
20
+ exec command
21
+ end
22
+
23
+ desc "version", "Prints Incept's version information"
24
+ def version
25
+ say "Incept version #{Incept::VERSION}"
26
+ end
27
+ map %w(-v --version) => :version
28
+
29
+ private
30
+
31
+ def template_file
32
+ @template_file ||= Tempfile.open('incept') {|f| f << PackageCollection.render }
33
+ end
34
+
35
+ def additional_options
36
+ PackageCollection.command_options
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,32 @@
1
+ module Incept
2
+ class Configuration
3
+
4
+ def self.path
5
+ File.expand_path('../../../templates', __FILE__)
6
+ end
7
+
8
+ def self.load
9
+ new(path)
10
+ end
11
+
12
+ def initialize(path)
13
+ @path = path
14
+ end
15
+
16
+ def directories
17
+ @directories ||= begin
18
+ names = Directory.names_for(@path)
19
+ names.map {|name| Directory.new("#{@path}/#{name}") }
20
+ end
21
+ end
22
+
23
+ def map(&block)
24
+ to_hash.map(&block)
25
+ end
26
+
27
+ def to_hash
28
+ @to_hash ||= directories.inject({}) {|h, d| h.merge(d.to_hash) }
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ module Incept
2
+ class Directory
3
+
4
+ def self.names_for(path)
5
+ Dir.new(path).entries.reject {|d| %w(. ..).include?(d) }
6
+ end
7
+
8
+ def initialize(path)
9
+ @path = path
10
+ end
11
+
12
+ def package_name
13
+ @path.match(%r{/([^/]+)$})[1]
14
+ end
15
+
16
+ def options
17
+ self.class.names_for(@path)
18
+ end
19
+
20
+ def to_hash
21
+ {package_name => options}
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,53 @@
1
+ module Incept
2
+ class MultipleOptionPackage
3
+ include Package
4
+
5
+ def prompt
6
+ " Which #{@type} package would you like to use?\n" +
7
+ option_display + "\n" +
8
+ " Enter a choice (0-#{max_option}): "
9
+ end
10
+
11
+ def selection=(selection)
12
+ selection = selection.to_i
13
+ @selection = within_bounds?(selection) ? selection : 0
14
+ end
15
+
16
+ def environment_variable_name
17
+ "PROLOGUE_#{@type.upcase}"
18
+ end
19
+
20
+ def environment_variable_value
21
+ selected_package_name.downcase
22
+ end
23
+
24
+ def selected?
25
+ !selection.nil? && selection != 0
26
+ end
27
+
28
+ private
29
+
30
+ def full_options
31
+ ['None'] + @options
32
+ end
33
+
34
+ def option_display
35
+ String.new.tap do |output|
36
+ full_options.each_with_index {|o, i| output << " #{i}. #{o}\n" }
37
+ end
38
+ end
39
+
40
+ def max_option
41
+ @options.length
42
+ end
43
+
44
+ def within_bounds?(selection)
45
+ selection <= max_option && selection >= 0
46
+ end
47
+
48
+ def selected_package_name
49
+ full_options[selection] if selected?
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ module Incept
2
+ module Package
3
+
4
+ def self.included(other)
5
+ other.class_eval do
6
+ attr_reader :selection
7
+ end
8
+ end
9
+
10
+ def initialize(type, options)
11
+ @type = type
12
+ @options = options
13
+ end
14
+
15
+ def template_path
16
+ File.expand_path("../../../templates/#{@type}/#{selected_package_name.downcase}", __FILE__)
17
+ end
18
+
19
+ def template
20
+ @template ||= Template.new(template_path)
21
+ end
22
+
23
+ def render(type)
24
+ template.render(type)
25
+ end
26
+
27
+ def command_options
28
+ template.render(:options)
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,48 @@
1
+ module Incept
2
+ class PackageCollection
3
+
4
+ def self.configuration
5
+ @configuration ||= Configuration.load
6
+ end
7
+
8
+ def self.packages
9
+ @packages ||= configuration.map {|type, options| new(type, options) }
10
+ end
11
+
12
+ def self.each(&block)
13
+ packages.each(&block)
14
+ end
15
+
16
+ def self.selected(&block)
17
+ packages.select {|p| p.selected? }.each(&block)
18
+ end
19
+
20
+ def self.render
21
+ output = ''
22
+ selected do |package|
23
+ output << package.render(:install)
24
+ end
25
+
26
+ output << %{run "bundle install"\n}
27
+
28
+ selected do |package|
29
+ output << package.render(:post_install)
30
+ end
31
+
32
+ output
33
+ end
34
+
35
+ def self.command_options
36
+ selected.map {|p| p.command_options }.join(' ')
37
+ end
38
+
39
+ private
40
+
41
+ def self.new(type, options)
42
+ klass = (options.length == 1) ? SingleOptionPackage : MultipleOptionPackage
43
+ klass.new(type, options)
44
+ end
45
+
46
+ end
47
+ end
48
+
@@ -0,0 +1,29 @@
1
+ module Incept
2
+ class SingleOptionPackage
3
+
4
+ include Package
5
+
6
+ def prompt
7
+ "Would you like to use #{option_name} for your #{@type} package? (y/n): "
8
+ end
9
+
10
+ def selection=(selection)
11
+ @selection = (selection == 'y')
12
+ end
13
+
14
+ def selected?
15
+ selection == true
16
+ end
17
+
18
+ private
19
+
20
+ def option_name
21
+ @options.first
22
+ end
23
+
24
+ def selected_package_name
25
+ option_name if selected?
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ module Incept
2
+ class Template
3
+
4
+ def initialize(path)
5
+ @path = path
6
+ end
7
+
8
+ def files
9
+ @files ||= Dir.glob("#{@path}/*.rb")
10
+ end
11
+
12
+ def render(type)
13
+ path_to_file = map[type]
14
+ path_to_file.nil? ? '' : File.read(path_to_file) + line_ending(type)
15
+ end
16
+
17
+ private
18
+
19
+ def line_ending(type)
20
+ (type == :options) ? '' : "\n"
21
+ end
22
+
23
+ def map
24
+ files.inject({}) do |map, filename|
25
+ matches = filename.match(%r{/([^/]+)\.rb$})
26
+ map.merge(matches[1].to_sym => filename)
27
+ end
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ module Incept
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1 @@
1
+ install option_with_post_install
@@ -0,0 +1 @@
1
+ post_install for option_with_post_install
@@ -0,0 +1 @@
1
+ install option_without_post_install
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+
4
+ require File.expand_path('../../lib/incept', __FILE__)
@@ -0,0 +1,44 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::Configuration do
4
+
5
+ context "the class" do
6
+
7
+ it "knows the path to the templates" do
8
+ Incept::Configuration.path.should == File.expand_path('../../../../templates', __FILE__)
9
+ end
10
+
11
+ it "can load the configured templates" do
12
+ Incept::Configuration.stub(:path).with().and_return('/')
13
+ Incept::Configuration.stub(:new).with('/').and_return('configuration')
14
+
15
+ Incept::Configuration.load.should == 'configuration'
16
+ end
17
+
18
+ end
19
+
20
+ context "an instance" do
21
+
22
+ it "has a collection of directories" do
23
+ path = File.expand_path('../../../fixtures/templates', __FILE__)
24
+ configuration = Incept::Configuration.new(path)
25
+
26
+ Incept::Directory.stub(:new).with("#{path}/other_package_name").and_return('dir_1')
27
+ Incept::Directory.stub(:new).with("#{path}/package_name").and_return('dir_2')
28
+
29
+ configuration.directories.should == ['dir_1', 'dir_2']
30
+ end
31
+
32
+ it "can generate a hash representation of itself" do
33
+ directory_1 = stub(:to_hash => {'one' => []})
34
+ directory_2 = stub(:to_hash => {'two' => []})
35
+
36
+ configuration = Incept::Configuration.new('/')
37
+ configuration.stub(:directories).with().and_return([directory_1, directory_2])
38
+
39
+ configuration.to_hash.should == {'one' => [], 'two' => []}
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,21 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::Directory do
4
+ before do
5
+ path = File.expand_path('../../../fixtures/templates/package_name', __FILE__)
6
+ @directory = Incept::Directory.new(path)
7
+ end
8
+
9
+ it "knows the package name" do
10
+ @directory.package_name.should == 'package_name'
11
+ end
12
+
13
+ it "knows the available options" do
14
+ @directory.options.should == ['option_with_post_install', 'option_without_post_install']
15
+ end
16
+
17
+ it "can generate a hash representation of itself" do
18
+ @directory.to_hash.should == {'package_name' => ['option_with_post_install', 'option_without_post_install']}
19
+ end
20
+
21
+ end
@@ -0,0 +1,100 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::MultipleOptionPackage do
4
+
5
+ context "an instance with a multi-select package" do
6
+ before { @package = Incept::MultipleOptionPackage.new(:scm, %w(Git SVN)) }
7
+
8
+ it "can generate a prompt" do
9
+ expected =
10
+ " Which scm package would you like to use?\n" +
11
+ " 0. None\n" +
12
+ " 1. Git\n" +
13
+ " 2. SVN\n" +
14
+ "\n" +
15
+ " Enter a choice (0-2): "
16
+
17
+ @package.prompt.should == expected
18
+ end
19
+
20
+ it "knows that there is no selection by default" do
21
+ @package.selection.should be_nil
22
+ end
23
+
24
+ it "knows the selection" do
25
+ @package.selection = 0
26
+ @package.selection.should == 0
27
+ end
28
+
29
+ it "knows the selection when given a string" do
30
+ @package.selection = "0"
31
+ @package.selection.should == 0
32
+ end
33
+
34
+ it "doesn't allow a selection greater than the max option" do
35
+ @package.selection = 3
36
+ @package.selection.should == 0
37
+ end
38
+
39
+ it "doesn't allow a selection less than the minimum option" do
40
+ @package.selection = -1
41
+ @package.selection.should == 0
42
+ end
43
+
44
+ it "knows that the package has not been selected by default" do
45
+ @package.should_not be_selected
46
+ end
47
+
48
+ it "knows that the package has not been selected when the choice is zero" do
49
+ @package.selection = 0
50
+ @package.should_not be_selected
51
+ end
52
+
53
+ it "knows that the package has been selected" do
54
+ @package.selection = 1
55
+ @package.should be_selected
56
+ end
57
+
58
+ it "knows the base template path" do
59
+ @package.selection = 1
60
+ @package.template_path.should == File.expand_path('../../../../templates/scm/git', __FILE__)
61
+ end
62
+
63
+ it "knows the environment variable name" do
64
+ @package.environment_variable_name.should == 'PROLOGUE_SCM'
65
+ end
66
+
67
+ it "knows the environment variable value" do
68
+ @package.selection = 1
69
+ @package.environment_variable_value.should == 'git'
70
+ end
71
+
72
+ it "has an associated template" do
73
+ @package.stub(:template_path).with().and_return('/path')
74
+
75
+ template = stub()
76
+ Incept::Template.stub(:new).with('/path').and_return(template)
77
+
78
+ @package.template.should == template
79
+ end
80
+
81
+ it "can render the underlying template" do
82
+ template = stub()
83
+ template.stub(:render).with(:install).and_return('install')
84
+
85
+ @package.stub(:template).and_return(template)
86
+
87
+ @package.render(:install).should == 'install'
88
+ end
89
+
90
+ it "knows the command options" do
91
+ template = Incept::Template.new('')
92
+ template.stub(:render).with(:options).and_return('--skip-prototype')
93
+ @package.stub(:template).with().and_return(template)
94
+
95
+ @package.command_options.should == '--skip-prototype'
96
+ end
97
+
98
+ end
99
+
100
+ end
@@ -0,0 +1,91 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::PackageCollection do
4
+
5
+ context "The class" do
6
+
7
+ it "can load a configuration" do
8
+ Incept::Configuration.stub(:load).with().and_return('configuration')
9
+ Incept::PackageCollection.configuration.should == 'configuration'
10
+ end
11
+
12
+ it "has a collection of packages" do
13
+ available_packages = {
14
+ 'scm' => ['Git'],
15
+ 'auth' => ['Devise', 'AuthLogic']
16
+ }
17
+
18
+ configuration = Incept::Configuration.new('/')
19
+ configuration.stub(:to_hash).with().and_return(available_packages)
20
+
21
+ Incept::PackageCollection.stub(:configuration).and_return(configuration)
22
+
23
+ Incept::SingleOptionPackage.stub(:new).with('scm', ['Git']).and_return('package_1')
24
+ Incept::MultipleOptionPackage.stub(:new).with('auth', ['Devise', 'AuthLogic']).and_return('package_2')
25
+
26
+ Incept::PackageCollection.packages.should == ['package_1', 'package_2']
27
+ end
28
+
29
+ it "can iterate over packages with :each" do
30
+ Incept::PackageCollection.stub(:packages).with().and_return(['package'])
31
+ packages = []
32
+ Incept::PackageCollection.each {|p| packages << p }
33
+
34
+ packages.should == ['package']
35
+ end
36
+
37
+ it "has a collection of selected packages" do
38
+ selected = Incept::SingleOptionPackage.new(:one, [])
39
+ selected.stub(:selected?).with().and_return(true)
40
+
41
+ unselected = Incept::SingleOptionPackage.new(:two, [])
42
+ unselected.stub(:selected?).with().and_return(false)
43
+
44
+ Incept::PackageCollection.stub(:packages).and_return([selected, unselected])
45
+
46
+ packages = []
47
+ Incept::PackageCollection.selected {|p| packages << p }
48
+
49
+ packages.should == [selected]
50
+ end
51
+
52
+ context "with selected packages" do
53
+ before do
54
+ @package_1 = stub()
55
+ @package_1.stub(:selected?).with().and_return(true)
56
+
57
+ @package_2 = stub()
58
+ @package_2.stub(:selected?).with().and_return(true)
59
+
60
+ Incept::PackageCollection.stub(:packages).with().and_return([@package_1, @package_2])
61
+ end
62
+
63
+ it "can render the templates for selected packages" do
64
+ @package_1.stub(:render).with(:install).and_return("package_1 install\n")
65
+ @package_1.stub(:render).with(:post_install).and_return("package_1 post-install\n")
66
+
67
+ @package_2.stub(:render).with(:install).and_return("package_2 install\n")
68
+ @package_2.stub(:render).with(:post_install).and_return('')
69
+
70
+ expected =
71
+ "package_1 install\n" +
72
+ "package_2 install\n" +
73
+ %{run "bundle install"\n} +
74
+ "package_1 post-install\n"
75
+
76
+ Incept::PackageCollection.render.should == expected
77
+ end
78
+
79
+ it "knows the command options" do
80
+ @package_1.stub(:command_options).with().and_return("--option-1")
81
+ @package_2.stub(:command_options).with().and_return("--option-2")
82
+
83
+ Incept::PackageCollection.command_options.should == "--option-1 --option-2"
84
+ end
85
+
86
+ end
87
+
88
+
89
+ end
90
+
91
+ end
@@ -0,0 +1,59 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::SingleOptionPackage do
4
+
5
+ context "an instance with a single selection package" do
6
+ before { @package = Incept::SingleOptionPackage.new(:javascript, %w(jQuery)) }
7
+
8
+ it "can generate a prompt" do
9
+ @package.prompt.should == "Would you like to use jQuery for your javascript package? (y/n): "
10
+ end
11
+
12
+ it "knows it's not selected by default" do
13
+ @package.should_not be_selected
14
+ end
15
+
16
+ it "knows it's selected if the answer is 'y'" do
17
+ @package.selection = 'y'
18
+ @package.should be_selected
19
+ end
20
+
21
+ it "knows it's not selected if the answer is 'n'" do
22
+ @package.selection = 'n'
23
+ @package.should_not be_selected
24
+ end
25
+
26
+ it "knows the template path" do
27
+ @package.selection = 'y'
28
+ @package.template_path.should == File.expand_path('../../../../templates/javascript/jquery', __FILE__)
29
+ end
30
+
31
+ it "has an associated template" do
32
+ @package.stub(:template_path).with().and_return('/path')
33
+
34
+ template = stub()
35
+ Incept::Template.stub(:new).with('/path').and_return(template)
36
+
37
+ @package.template.should == template
38
+ end
39
+
40
+ it "can render the underlying template" do
41
+ template = stub()
42
+ template.stub(:render).with(:install).and_return('install')
43
+
44
+ @package.stub(:template).and_return(template)
45
+
46
+ @package.render(:install).should == 'install'
47
+ end
48
+
49
+ it "knows the command options" do
50
+ template = Incept::Template.new('')
51
+ template.stub(:render).with(:options).and_return('--skip-prototype')
52
+ @package.stub(:template).with().and_return(template)
53
+
54
+ @package.command_options.should == '--skip-prototype'
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,70 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe Incept::Template do
4
+
5
+ context "an instance with a package that has a post install file" do
6
+ before do
7
+ @path = File.expand_path('../../../fixtures/templates/package_name/option_with_post_install', __FILE__)
8
+ @template = Incept::Template.new(@path)
9
+ end
10
+
11
+ it "knows there are multiple template files" do
12
+ @template.files.should == ["#{@path}/install.rb", "#{@path}/post_install.rb"]
13
+ end
14
+
15
+ it "renders an empty string for the options file" do
16
+ @template.render(:options).should == ''
17
+ end
18
+
19
+ it "can render the install file" do
20
+ @template.render(:install).should == "install option_with_post_install\n"
21
+ end
22
+
23
+ it "can render the post-install file" do
24
+ @template.render(:post_install).should == "post_install for option_with_post_install\n"
25
+ end
26
+ end
27
+
28
+ context "an instance with a package that does not have a post install file" do
29
+ before do
30
+ @path = File.expand_path('../../../fixtures/templates/package_name/option_without_post_install', __FILE__)
31
+ @template = Incept::Template.new(@path)
32
+ end
33
+
34
+ it "knows there's a single template file" do
35
+ @template.files.should == ["#{@path}/install.rb"]
36
+ end
37
+
38
+ it "renders an empty string for the options file" do
39
+ @template.render(:options).should == ''
40
+ end
41
+
42
+ it "can render the install file" do
43
+ @template.render(:install).should == "install option_without_post_install\n"
44
+ end
45
+
46
+ it "renders the empty string for the post-install file" do
47
+ @template.render(:post_install).should == ''
48
+ end
49
+ end
50
+
51
+ context "an instance with a package that has install options" do
52
+ before do
53
+ @path = File.expand_path('../../../fixtures/templates/other_package_name/other_option', __FILE__)
54
+ @template = Incept::Template.new(@path)
55
+ end
56
+
57
+ it "knows there are multiple template files" do
58
+ @template.files.should == ["#{@path}/install.rb", "#{@path}/options.rb"]
59
+ end
60
+
61
+ it "can render the options file" do
62
+ @template.render(:options).should == "--option"
63
+ end
64
+
65
+ it "can render the install file" do
66
+ @template.render(:install).should == "install\n"
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1 @@
1
+ gem "jquery-rails"
@@ -0,0 +1 @@
1
+ --skip-prototype
@@ -0,0 +1 @@
1
+ generate "jquery:install"
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: incept
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Patrick Reagan
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-20 00:00:00 -07:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: thor
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :runtime
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: rails
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 3
43
+ - 0
44
+ - 0
45
+ version: 3.0.0
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: bundler
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 1
58
+ - 0
59
+ - 0
60
+ version: 1.0.0
61
+ type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ segments:
72
+ - 2
73
+ - 0
74
+ - 0
75
+ version: 2.0.0
76
+ type: :development
77
+ version_requirements: *id004
78
+ description:
79
+ email:
80
+ - reaganpr@gmail.com
81
+ executables:
82
+ - incept
83
+ extensions: []
84
+
85
+ extra_rdoc_files: []
86
+
87
+ files:
88
+ - README.rdoc
89
+ - Rakefile
90
+ - bin/incept
91
+ - lib/incept/cli.rb
92
+ - lib/incept/configuration.rb
93
+ - lib/incept/directory.rb
94
+ - lib/incept/multiple_option_package.rb
95
+ - lib/incept/package.rb
96
+ - lib/incept/package_collection.rb
97
+ - lib/incept/single_option_package.rb
98
+ - lib/incept/template.rb
99
+ - lib/incept/version.rb
100
+ - lib/incept.rb
101
+ - spec/fixtures/templates/other_package_name/other_option/install.rb
102
+ - spec/fixtures/templates/other_package_name/other_option/options.rb
103
+ - spec/fixtures/templates/package_name/option_with_post_install/install.rb
104
+ - spec/fixtures/templates/package_name/option_with_post_install/post_install.rb
105
+ - spec/fixtures/templates/package_name/option_without_post_install/install.rb
106
+ - spec/spec_helper.rb
107
+ - spec/unit/incept/configuration_spec.rb
108
+ - spec/unit/incept/directory_spec.rb
109
+ - spec/unit/incept/multiple_option_package_spec.rb
110
+ - spec/unit/incept/package_collection_spec.rb
111
+ - spec/unit/incept/single_option_package_spec.rb
112
+ - spec/unit/incept/template_spec.rb
113
+ - templates/javascript/jquery/install.rb
114
+ - templates/javascript/jquery/options.rb
115
+ - templates/javascript/jquery/post_install.rb
116
+ has_rdoc: true
117
+ homepage: http://github.com/reagent/incept
118
+ licenses: []
119
+
120
+ post_install_message:
121
+ rdoc_options: []
122
+
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ segments:
139
+ - 1
140
+ - 3
141
+ - 6
142
+ version: 1.3.6
143
+ requirements: []
144
+
145
+ rubyforge_project:
146
+ rubygems_version: 1.3.7
147
+ signing_key:
148
+ specification_version: 3
149
+ summary: incept works best, put your app to the test
150
+ test_files: []
151
+