horsee 0.0.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/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ #MAC_OS
2
+ .DS_Store
3
+
4
+ #RubyMine
5
+ .idea
6
+
7
+ *.gem
8
+ .bundle
9
+ Gemfile.lock
10
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in horsee.gemspec
4
+ gemspec
data/README.rdoc ADDED
@@ -0,0 +1,27 @@
1
+ == Welcome to Horsee
2
+
3
+ Horsee creates the rails application faster. It uses rails template way to do the necessary
4
+ things that are needed for most of application.
5
+
6
+ Some of the tasks it does are
7
+
8
+ * Authentication using Devise
9
+ * Authorization using CanCan
10
+ * HAML as default template engine
11
+ * Making necessary initializers and configuration
12
+
13
+
14
+ == How to Use it?
15
+
16
+ 1. Install horsee gem at the command prompt
17
+
18
+ gem install horsee
19
+
20
+ 2. Create new rails application using horsee
21
+
22
+ horsee new myapp
23
+
24
+ where "myapp" is the application name and path where you want the application.
25
+
26
+
27
+
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/horsee ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- mode: ruby -*-
3
+
4
+ # Requires
5
+ begin
6
+ require 'horsee'
7
+ rescue LoadError
8
+ $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
9
+ require 'rubygems'
10
+ require 'horsee'
11
+ end
12
+
13
+ # Setup Constants
14
+ Horsee::GEM_ROOT = File.expand_path( File.dirname( __FILE__ ) + '/../' )
15
+
16
+ # Run
17
+ Horsee::CLI.start
@@ -0,0 +1,39 @@
1
+ require 'thor'
2
+ require 'thor/actions'
3
+ require 'thor/group'
4
+
5
+ module Horsee
6
+ module Bootstrap
7
+
8
+ class Default < Thor::Group
9
+ include Thor::Actions
10
+
11
+ source_root File.expand_path('../templates', __FILE__)
12
+
13
+ argument :app_path, :type => :string
14
+
15
+ def on_invocation
16
+ ENV['HORSEE_USER_NAME'] = git_user_name
17
+ ENV['HORSEE_USER_EMAIL'] = git_user_email
18
+ ENV['HORSEE_USER_PASSWORD'] = user_password
19
+ end
20
+
21
+ private
22
+
23
+ def git_user_name
24
+ `git config --global github.user`.strip || "admin"
25
+ end
26
+
27
+ def git_user_email
28
+ `git config --global user.email`.strip || "me@me.com"
29
+ end
30
+
31
+ def user_password
32
+ 'Passw0rd!'
33
+ end
34
+
35
+
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,31 @@
1
+ say "Installing Horsee..."
2
+
3
+ #Apply git
4
+ apply File.expand_path("../git.rb", __FILE__)
5
+
6
+ #Apply gemfile
7
+ apply File.expand_path("../gemfile.rb", __FILE__)
8
+
9
+ #Apply HAML generator
10
+ apply File.expand_path("../haml_generator.rb", __FILE__)
11
+
12
+ #Apply Devise
13
+ apply File.expand_path("../devise.rb", __FILE__)
14
+
15
+ #Apply CanCan
16
+ apply File.expand_path("../cancan.rb", __FILE__)
17
+
18
+ #Apply Initializers
19
+ apply File.expand_path("../initializers.rb", __FILE__)
20
+
21
+ #Apply HTML5 Layout
22
+ apply File.expand_path("../layout.rb", __FILE__)
23
+
24
+ #Apply Homepage
25
+ apply File.expand_path("../home_controller.rb", __FILE__)
26
+
27
+ #Apply rails clean up
28
+ apply File.expand_path("../rails_clean.rb", __FILE__)
29
+
30
+ #Apply rails clean up
31
+ apply File.expand_path("../welcome.rb", __FILE__)
@@ -0,0 +1,110 @@
1
+ say "Building authorization"
2
+
3
+ #----------------------------------------------------
4
+ # Run all migrations and setup
5
+ #----------------------------------------------------
6
+ run 'rails generate model Role name:string --skip'
7
+ run 'rails generate migration UsersHaveAndBelongToManyRoles'
8
+
9
+
10
+ #----------------------------------------------------
11
+ # Modify migration files
12
+ #----------------------------------------------------
13
+ habtm_roles = Dir['db/migrate/*_users_have_and_belong_to_many_roles.rb'].first
14
+ inject_into_file habtm_roles, :after => "def up\n" do
15
+ <<-RUBY
16
+ create_table :roles_users, :id => false do |t|
17
+ t.references :role, :user
18
+ end
19
+ add_index :roles_users, :user_id
20
+ add_index :roles_users, :role_id
21
+ RUBY
22
+ end
23
+
24
+ inject_into_file habtm_roles, :after => "def down\n" do
25
+ <<-RUBY
26
+ drop_table :roles_users
27
+ RUBY
28
+ end
29
+
30
+
31
+ #----------------------------------------------------
32
+ # Update Seeds file
33
+ #----------------------------------------------------
34
+ append_file 'db/seeds.rb' do
35
+ <<-FILE
36
+ #
37
+ # Setup two common roles
38
+ Role.create! :name => 'Admin'
39
+ Role.create! :name => 'Member'
40
+ #
41
+ # make
42
+ adminuser = User.find_by_email('#{ENV['HORSEE_USER_EMAIL']}')
43
+ adminuser.role_ids = [1]
44
+ adminuser.save
45
+ FILE
46
+ end
47
+
48
+ #----------------------------------------------------
49
+ # Modify models file
50
+ #----------------------------------------------------
51
+ inject_into_file 'app/models/role.rb', :after => "class Role < ActiveRecord::Base\n" do
52
+ <<-RUBY
53
+ has_and_belongs_to_many :users
54
+
55
+ def self.sanitize role
56
+ role.to_s.humanize.split(' ').each{ |word| word.capitalize! }.join(' ')
57
+ end
58
+ RUBY
59
+ end
60
+
61
+ inject_into_file 'app/models/user.rb', :before => " def destroy\n" do
62
+ <<-RUBY
63
+ has_and_belongs_to_many :roles
64
+
65
+ def role?(role)
66
+ return !!self.roles.find_by_name( Role.sanitize role )
67
+ end
68
+
69
+ RUBY
70
+ end
71
+
72
+ create_file 'app/models/ability.rb' do
73
+ <<-RUBY
74
+ class Ability
75
+ include CanCan::Ability
76
+
77
+ def initialize(user)
78
+ user ||= User.new # guest user
79
+
80
+ if user.role? :admin
81
+ can :manage, :all
82
+ # elsif user.role? :writer
83
+ # can :manage, [Post, Asset]
84
+ # elsif user.role? :member
85
+ # can :read, [MemberPost, Asset]
86
+ # # manage posts, assets user owns
87
+ # can :manage, Post do |p|
88
+ # p.try(:owner) == user
89
+ # end
90
+ # can :manage, Asset do |a|
91
+ # a.try(:owner) == user
92
+ # end
93
+ end
94
+ end
95
+ end
96
+ RUBY
97
+ end
98
+
99
+ #----------------------------------------------------
100
+ # Modify config files
101
+ #----------------------------------------------------
102
+ inject_into_file 'app/controllers/application_controller.rb', :before => "end\n" do
103
+ <<-RUBY
104
+
105
+ rescue_from CanCan::AccessDenied do |exception|
106
+ flash[:error] = "Access Denied"
107
+ redirect_to root_url
108
+ end
109
+ RUBY
110
+ end
@@ -0,0 +1,157 @@
1
+ say "Building authentication"
2
+
3
+ #----------------------------------------------------
4
+ # Run all migrations and setup
5
+ #----------------------------------------------------
6
+ run 'rails generate devise:install --quiet'
7
+ run 'rails generate devise:views'
8
+ run 'rails generate devise User'
9
+ run 'rails generate migration AddUsernameToUsers username:string'
10
+ run 'rails generate migration AddDeletedAtToUsers deleted_at:datetime'
11
+
12
+ #----------------------------------------------------
13
+ # Modify migration files
14
+ #----------------------------------------------------
15
+ devise_migration = Dir['db/migrate/*_devise_create_users.rb'].first
16
+ gsub_file devise_migration, /# t.confirmable/, 't.confirmable'
17
+ gsub_file devise_migration, /# add_index :users, :confirmation_token, :unique => true/, 'add_index :users, :confirmation_token, :unique => true'
18
+
19
+ username_migration = Dir['db/migrate/*_add_username_to_users.rb'].first
20
+ inject_into_file username_migration, :after => "add_column :users, :username, :string\n" do
21
+ <<-FILE
22
+ add_index :users, :username, :unique => true
23
+ FILE
24
+ end
25
+
26
+ #----------------------------------------------------
27
+ # Update Seeds file
28
+ #----------------------------------------------------
29
+ append_file 'db/seeds.rb' do
30
+ <<-FILE
31
+ #
32
+ # Setup initial user so we can get in
33
+ firstuser = User.create! :username => "#{ENV['HORSEE_USER_NAME']}", :email => "#{ENV['HORSEE_USER_EMAIL']}", :password => "#{ENV['HORSEE_USER_PASSWORD']}", :password_confirmation => "#{ENV['HORSEE_USER_PASSWORD']}"
34
+ firstuser.skip_confirmation!
35
+ firstuser.save
36
+ FILE
37
+ end
38
+
39
+ #----------------------------------------------------
40
+ # Modify models file
41
+ #----------------------------------------------------
42
+ run 'rm app/models/user.rb'
43
+
44
+ create_file 'app/models/user.rb' do
45
+ <<-RUBY
46
+ class User < ActiveRecord::Base
47
+ # Include default devise modules. Others available are:
48
+ # :token_authenticatable, :encryptable, :lockable, :timeoutable
49
+ devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable
50
+ default_scope :conditions => { :deleted_at => nil }
51
+
52
+ # validations for model
53
+ validates :username, :presence => true, :uniqueness => true
54
+
55
+ # Setup accessible (or protected) attributes for your model
56
+ attr_accessor :login
57
+ attr_accessible :login, :email, :username, :password, :password_confirmation, :remember_me, :role_ids
58
+
59
+ def destroy
60
+ self.update_attribute(:deleted_at, Time.now.utc)
61
+ end
62
+
63
+ protected
64
+
65
+ def self.find_for_database_authentication(warden_conditions)
66
+ conditions = warden_conditions.dup
67
+ login = conditions.delete(:login)
68
+ where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
69
+ end
70
+
71
+ end
72
+ RUBY
73
+ end
74
+
75
+
76
+ #----------------------------------------------------
77
+ # Modify config files
78
+ #----------------------------------------------------
79
+ devise_config_file = 'config/initializers/devise.rb'
80
+ inject_into_file devise_config_file, :before => " # config.authentication_keys" do
81
+ <<-RUBY
82
+ config.authentication_keys = [ :login ]
83
+ RUBY
84
+ end
85
+ gsub_file devise_config_file, /# config.password_length = 6..128/, 'config.password_length = 5..16'
86
+ gsub_file devise_config_file, /# config.pepper/, 'config.pepper'
87
+ gsub_file 'config/locales/devise.en.yml', /Invalid email or password/, 'Invalid login or password'
88
+ append_file 'config/locales/en.yml' do
89
+ <<-FILE
90
+ activerecord:
91
+ attributes:
92
+ user:
93
+ login: "Username or email"
94
+ FILE
95
+ end
96
+
97
+ gsub_file 'config/application.rb', /:password/, ':password, :password_confirmation'
98
+ gsub_file 'config/environments/development.rb', /# Don't care if the mailer can't send/, '### ActionMailer Config'
99
+
100
+ gsub_file 'config/environments/development.rb', /config.action_mailer.raise_delivery_errors = false/ do
101
+ <<-RUBY
102
+ config.action_mailer.default_url_options = { :host => '0.0.0.0:3000' }
103
+ # A dummy setup for development - no deliveries, but logged
104
+ config.action_mailer.delivery_method = :smtp
105
+ config.action_mailer.perform_deliveries = false
106
+ config.action_mailer.raise_delivery_errors = true
107
+ config.action_mailer.default :charset => "utf-8"
108
+ RUBY
109
+ end
110
+
111
+ inject_into_file 'config/environments/test.rb', :after => "config.action_controller.allow_forgery_protection = false\n" do
112
+ <<-RUBY
113
+ config.action_mailer.default_url_options = { :host => '0.0.0.0:3000' }
114
+ RUBY
115
+ end
116
+
117
+ gsub_file 'config/environments/production.rb', /config.i18n.fallbacks = true/ do
118
+ <<-RUBY
119
+ config.i18n.fallbacks = true
120
+ config.action_mailer.default_url_options = { :host => 'yourhost.com' }
121
+ ### ActionMailer Config
122
+ # Setup for production - deliveries, no errors raised
123
+ config.action_mailer.delivery_method = :smtp
124
+ config.action_mailer.perform_deliveries = true
125
+ config.action_mailer.raise_delivery_errors = false
126
+ config.action_mailer.default :charset => "utf-8"
127
+ RUBY
128
+ end
129
+
130
+ gsub_file devise_config_file, /# config.pepper/, 'config.pepper'
131
+ gsub_file 'config/locales/devise.en.yml', /Invalid email or password/, 'Invalid login or password'
132
+
133
+
134
+
135
+ #----------------------------------------------------
136
+ # Modify Views Files
137
+ #----------------------------------------------------
138
+ devise_new_session_file = 'app/views/devise/sessions/new.html.erb'
139
+ gsub_file devise_new_session_file, /f.label :email/, 'f.label :login'
140
+ gsub_file devise_new_session_file, /f.email_field :email/, 'f.text_field :login'
141
+
142
+ devise_new_registration_file = 'app/views/devise/registrations/new.html.erb'
143
+ devise_edit_registration_file = 'app/views/devise/registrations/edit.html.erb'
144
+ inject_into_file devise_new_registration_file, :before => " <div><%= f.label :email %><br />" do
145
+ <<-FILE
146
+ <div><%= f.label :username %><br />
147
+ <%= f.text_field :username %></div>
148
+
149
+ FILE
150
+ end
151
+ inject_into_file devise_edit_registration_file, :before => " <div><%= f.label :email %><br />" do
152
+ <<-FILE
153
+ <div><%= f.label :username %><br />
154
+ <%= f.text_field :username %></div>
155
+
156
+ FILE
157
+ end
@@ -0,0 +1,15 @@
1
+ gem 'haml'
2
+ gem 'haml-rails'
3
+
4
+ gem 'devise'
5
+ gem 'cancan'
6
+
7
+ gem 'friendly_id'
8
+ gem 'paperclip'
9
+
10
+ gem 'execjs'
11
+ gem 'therubyracer'
12
+
13
+ gem 'capistrano'
14
+
15
+ run 'bundle install'
@@ -0,0 +1,15 @@
1
+ run 'rm .gitignore'
2
+ create_file '.gitignore' do
3
+ <<-FILE
4
+ .bundle
5
+ .DS_Store
6
+ log/*.log
7
+ tmp/**/*
8
+ config/database.yml
9
+ db/*.sqlite3
10
+ public/system/**/**/**/*
11
+ .idea/*
12
+ .sass-cache/**/*
13
+ *.swp
14
+ FILE
15
+ end
@@ -0,0 +1,7 @@
1
+ inject_into_file 'config/application.rb', :after => "# Configure the default encoding used in templates for Ruby 1.9.\n" do
2
+ <<-RUBY
3
+ config.generators do |g|
4
+ g.template_engine :haml
5
+ end
6
+ RUBY
7
+ end
@@ -0,0 +1,2 @@
1
+ run 'rails generate controller home index --assets=false --helper=false'
2
+ gsub_file 'config/routes.rb', /# root :to => 'welcome#index'/, "root :to => 'home#index'"
@@ -0,0 +1,5 @@
1
+ create_file('config/initializers/haml.rb') do
2
+ <<-'FILE'
3
+ Haml::Template.options[:format] = :html5
4
+ FILE
5
+ end
@@ -0,0 +1,63 @@
1
+ run 'mkdir app/views/shared'
2
+
3
+ create_file 'app/views/shared/_header.html.haml' do
4
+ <<-FILE
5
+ = render 'shared/messages'
6
+ %header
7
+ %h1= link_to '#{app_name.humanize}', root_path
8
+ %nav
9
+ %ul
10
+ %li= link_to 'Home', root_path
11
+ FILE
12
+ end
13
+
14
+ create_file 'app/views/shared/_messages.html.haml' do
15
+ <<-FILE
16
+ - if flash[:notice]
17
+ %div#messenger{:class => "flasher"}= flash[:notice]
18
+ - if flash[:error]
19
+ %div#error{:class => "flasher"}= flash[:error]
20
+ - if flash[:alert]
21
+ %div#alert{:class => "flasher"}= flash[:alert]
22
+ FILE
23
+ end
24
+
25
+ create_file 'app/views/shared/_footer.html.haml' do
26
+ <<-FILE
27
+ %footer
28
+ Copyright &copy; 2012 #{app_name.humanize}. All rights reserved.
29
+ FILE
30
+ end
31
+
32
+ remove_file 'app/views/layouts/application.html.erb'
33
+ create_file 'app/views/layouts/application.html.haml' do
34
+ <<-FILE
35
+ !!! 5
36
+ -# paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
37
+ <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
38
+ <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
39
+ <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
40
+ <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
41
+ <!--[if (gte IE 9)|!(IE)]><!-->
42
+ %html.no-js{ :lang => "en" }
43
+ <!--<![endif]-->
44
+ %head
45
+ %meta{'charset' => 'utf-8'}
46
+ %meta{'http-equiv' => 'X-UA-Compatible', :content => 'IE=edge,chrome=1'}
47
+ %title<
48
+ #{app_name.humanize}
49
+ = yield(:title)
50
+ %meta{:name => 'viewport', :content => 'width=device-width initial-scale=1.0 maximum-scale=1.0'}
51
+ %link{:rel => "fluid-icon", :href => "/fluidicon.png"}
52
+ = csrf_meta_tag
53
+ = stylesheet_link_tag "application"
54
+ = javascript_include_tag "application"
55
+ = yield(:head)
56
+ %body
57
+ = render :partial => "shared/header"
58
+ #content
59
+ = yield
60
+ = render :partial => "shared/footer"
61
+ = yield(:end_scripts)
62
+ FILE
63
+ end
@@ -0,0 +1,11 @@
1
+ run 'rm public/index.html'
2
+ run 'rm app/assets/images/rails.png'
3
+ run 'rm README'
4
+ create_file 'README.md' do
5
+ <<-FILE
6
+ README FIRST!
7
+ ===========
8
+ FILE
9
+ end
10
+
11
+ gsub_file 'config/routes.rb', /get \"home\/index\"/, ''
@@ -0,0 +1,27 @@
1
+ #run 'rake db:drop'
2
+ run 'rake db:create'
3
+ run 'rake db:migrate'
4
+ run 'rake db:seed'
5
+
6
+ say <<-D
7
+
8
+
9
+
10
+
11
+ ########################################################################
12
+
13
+ Horsee just added like 6 hours to your life.
14
+
15
+ Login to admin with the following login details
16
+
17
+ username: #{ENV['HORSEE_USER_NAME']}
18
+ password: #{ENV['HORSEE_USER_PASSWORD']}
19
+
20
+
21
+ ########################################################################
22
+
23
+
24
+
25
+
26
+
27
+ D
data/horsee.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "horsee/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "horsee"
7
+ s.platform = Gem::Platform::RUBY
8
+ s.version = Horsee::VERSION
9
+ s.authors = ["Akash Kamboj"]
10
+ s.email = ["akash@filvo.com"]
11
+ s.homepage = "http://github.com/akashkamboj/horsee"
12
+ s.summary = "Horsee makes the Rails application creation faster"
13
+ s.description = "Horsee is a template engine used to create a Rails application with authentication, authorization using Devise and CanCan"
14
+
15
+ s.rubyforge_project = "horsee"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_dependency 'rails', '>= 3.1.3'
23
+ end
data/lib/horsee.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Horsee
2
+ autoload :VERSION, 'horsee/version'
3
+ autoload :CLI, 'horsee/cli'
4
+ end
data/lib/horsee/cli.rb ADDED
@@ -0,0 +1,42 @@
1
+ require 'thor'
2
+ require 'thor/actions'
3
+
4
+ module Horsee
5
+
6
+ class CLI < Thor
7
+
8
+ # Includes
9
+ include Thor::Actions
10
+
11
+ desc "version", "Prints Horsee's version information"
12
+ def version
13
+ say "Horsee version #{Horsee::VERSION}"
14
+ end
15
+ map %w(-v --version) => :version
16
+
17
+
18
+ desc "new [app_path]", "Creates a new Rails application with Horsee"
19
+ method_option :app_path, :type => :string, :desc => 'path to rails application'
20
+ def new(app_path, template_name = "default")
21
+
22
+ # Require the template
23
+ require "#{Horsee::GEM_ROOT}/bootstrap/#{template_name}/#{template_name}.rb"
24
+
25
+ # Invoke the template
26
+ invoke "horsee:bootstrap:#{template_name}:on_invocation"
27
+
28
+ # Execute the template
29
+ exec(<<-COMMAND)
30
+ rails new #{app_path} \
31
+ --template=#{Horsee::GEM_ROOT}/bootstrap/#{template_name}/templates/bootstrap.rb \
32
+ --database=mysql \
33
+ --javascript=jquery \
34
+ --skip-test-unit \
35
+ --skip-bundle
36
+ COMMAND
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
@@ -0,0 +1,3 @@
1
+ module Horsee
2
+ VERSION = "0.0.4"
3
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: horsee
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
11
+ platform: ruby
12
+ authors:
13
+ - Akash Kamboj
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-01-26 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rails
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 3
31
+ - 1
32
+ - 3
33
+ version: 3.1.3
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ description: Horsee is a template engine used to create a Rails application with authentication, authorization using Devise and CanCan
37
+ email:
38
+ - akash@filvo.com
39
+ executables:
40
+ - horsee
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - .gitignore
47
+ - Gemfile
48
+ - README.rdoc
49
+ - Rakefile
50
+ - bin/horsee
51
+ - bootstrap/default/default.rb
52
+ - bootstrap/default/templates/bootstrap.rb
53
+ - bootstrap/default/templates/cancan.rb
54
+ - bootstrap/default/templates/devise.rb
55
+ - bootstrap/default/templates/gemfile.rb
56
+ - bootstrap/default/templates/git.rb
57
+ - bootstrap/default/templates/haml_generator.rb
58
+ - bootstrap/default/templates/home_controller.rb
59
+ - bootstrap/default/templates/initializers.rb
60
+ - bootstrap/default/templates/layout.rb
61
+ - bootstrap/default/templates/rails_clean.rb
62
+ - bootstrap/default/templates/welcome.rb
63
+ - horsee.gemspec
64
+ - lib/horsee.rb
65
+ - lib/horsee/cli.rb
66
+ - lib/horsee/version.rb
67
+ homepage: http://github.com/akashkamboj/horsee
68
+ licenses: []
69
+
70
+ post_install_message:
71
+ rdoc_options: []
72
+
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 3
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ requirements: []
94
+
95
+ rubyforge_project: horsee
96
+ rubygems_version: 1.8.12
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: Horsee makes the Rails application creation faster
100
+ test_files: []
101
+