kitty_gen 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source :rubygems
2
2
 
3
3
  # Specify your gem's dependencies in foodie.gemspec
4
4
  gemspec
5
- gem "omniauth"
data/README.textile CHANGED
@@ -11,6 +11,7 @@ Shave hours off your next project and amaze your client and friends. This produc
11
11
  # Ruby debugger, wirble, looksee and more ready for debugging
12
12
  # A sensible gitignore
13
13
  # All those annoying files you never use removed
14
+ # All your configurations, e.g. for omniauth, aws, exception nofitifer and paypal filled in automatically via a global configuration file you maitain (~/.kittygenrc)
14
15
 
15
16
  Unlike other application templates this one is *packaged in a gem* meaning you can call it from the command line as simply as this:
16
17
  @$ kitty_gen new MY_NEW_APP_NAME@
@@ -87,6 +88,7 @@ h2. How To Use
87
88
  @kittygen your-new-app-name@
88
89
 
89
90
  h2. All Possible Recipes
91
+ kitty_gen_gem
90
92
  login_with_facebook_and_twitter
91
93
  reload_css_and_html_in_browser_on_save
92
94
 
data/kitty_gen.gemspec CHANGED
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "kitty_gen"
16
16
  s.add_dependency "rails", "~> 3.1"
17
17
  s.add_dependency "colored"
18
+ s.add_dependency "rvm"
18
19
  s.add_development_dependency "bundler", "~> 1.0.0"
19
20
  s.add_development_dependency "ruby-debug19"
20
21
 
@@ -1,6 +1,7 @@
1
1
  # Order here is important
2
2
  # Comment out what you don't want
3
3
  rvm_with_gemset
4
+ initialize_git_repo
4
5
  sensible_defaults
5
6
  devise_with_user_model
6
7
  basic_layout_with_login_using_slim
@@ -14,3 +15,4 @@ factory_girl_with_generators
14
15
  formtastic
15
16
  reload_css_and_html_in_browser_on_save
16
17
  login_with_facebook_and_twitter
18
+ kitty_gen_gem
data/lib/kitty_gen/cli.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module KittyGen
2
2
  class Cli
3
- require "kitty_gen/cook"
3
+ require "kitty_gen/cook"
4
4
 
5
5
  def start(command_line_arguments)
6
6
  case ARGV[0]
@@ -18,8 +18,14 @@ module KittyGen
18
18
  private
19
19
 
20
20
  def new(app_name)
21
- exec "rails new #{app_name}"
22
- run_generator(master_template)
21
+ generate_new_rails_app(app_name)
22
+ File.open(File.join(File.dirname(__FILE__), "base_recipes")).each do |recipe_name|
23
+ run_generator(recipe_name.chomp) unless recipe_name.match(/\s?#/)
24
+ end
25
+ end
26
+
27
+ def generate_new_rails_app(app_name)
28
+ Rails::Generators::AppGenerator.start([app_name])
23
29
  end
24
30
 
25
31
  def list
@@ -28,7 +34,7 @@ module KittyGen
28
34
  ## Kitty Gen ##
29
35
  ## Listing all possible recipes you can add to your application ##
30
36
 
31
- #{recipes.map.with_index {|recipe, index| " #{index}: #{recipe} "}.join("\n")}
37
+ #{recipes.map.with_index {|recipe, index| " #{index}: #{recipe} "}.join("\n")}
32
38
 
33
39
  USAGE: kitty_gen add recipe_name_or_number
34
40
  EXAMPLE: kitty_gen add formtastic
@@ -39,7 +45,7 @@ EXAMPLE: kitty_gen add formtastic
39
45
  def recipes
40
46
  File.read(File.join(kitty_gen_dir, "base_recipes")).split("\n").reject {|r| r.match /^\s*#/}
41
47
  end
42
-
48
+
43
49
  # Examples:
44
50
  # add(formtastic)
45
51
  # add(3)
@@ -50,31 +56,27 @@ EXAMPLE: kitty_gen add formtastic
50
56
  else
51
57
  recipe = recipe
52
58
  end
53
- run_generator(recipe)
59
+ run_generator(recipe)
54
60
  end
55
61
 
56
62
  def run_generator(template)
57
- Cook.new(template)
63
+ Cook.new.cook(template)
58
64
  end
59
65
 
60
66
  def is_a_number?(parameter)
61
67
  parameter.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
62
68
  end
63
69
 
64
- def master_template
65
- File.join(kitty_gen_dir, "master_template.rb")
66
- end
67
-
68
70
  def kitty_gen_dir
69
71
  File.dirname(__FILE__)
70
72
  end
71
73
 
72
74
  def help
73
- %Q{Commands available:
75
+ %Q{Commands available:
74
76
  kitty_gen new APPNAME # create a new app APPNAME using preffered recipes
75
77
  kitty_gen list # lists available recipes
76
78
  kitty_gen add RECIPE # adds a recipe RECIPE
77
- }
79
+ }
78
80
  end
79
81
 
80
82
  end
@@ -1,21 +1,16 @@
1
- require "rails/generators"
2
- require "rails"
3
- require 'rails/generators/rails/app/app_generator'
4
- require "kitty_gen/helpers"
5
1
  module KittyGen
6
2
  class Cook
7
3
 
8
- require "rails/generators"
9
- require "rails"
10
- require 'rails/generators/rails/app/app_generator'
11
- require "kitty_gen/helpers"
4
+ attr_reader :generator
12
5
 
13
- def initialize(template)
14
- generator = Rails::Generators::AppGenerator.new [Dir.pwd], {}, :destination_root => Dir.pwd
6
+ def initialize
7
+ @generator = Rails::Generators::AppGenerator.new [Dir.pwd], {}, :destination_root => Dir.pwd
15
8
  generator.extend(::KittyGen::Helpers)
9
+ end
10
+
11
+ def cook(template)
16
12
  generator.recipe template
17
13
  end
18
14
 
19
15
  end
20
-
21
16
  end
@@ -10,12 +10,6 @@ module KittyGen
10
10
  title "Welcome To Kitty Gen. Lets Make You an App"
11
11
  end
12
12
 
13
- def prepare_standard_features
14
- File.open(File.join(File.dirname(__FILE__), "base_recipes")).each do |recipe_name|
15
- recipe recipe_name.chomp.intern unless recipe_name.match(/\s?#/)
16
- end
17
- end
18
-
19
13
  # Importantly, this runs each recipe
20
14
  # in its own exclusive scope. This means
21
15
  # symbols from one recipe cannot pollute
@@ -0,0 +1 @@
1
+ gem "kitty_gen"
@@ -11,5 +11,5 @@ puts "Successfully installed bundler" if @env.system("gem", "install", "bundler"
11
11
  puts "Installing rails gem."
12
12
  puts "successfully installed rails" if @env.system("gem", "install", "rails")
13
13
  file ".rvmrc", <<-END
14
- rvm use #{current_ruby}@#{app_name}
14
+ rvm use #{rvm_ruby}
15
15
  END
@@ -1,4 +1,4 @@
1
1
  module KittyGen
2
- VERSION = "0.0.17" #aka Beta
2
+ VERSION = "0.0.18" #aka Beta
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitty_gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &2157011160 !ruby/object:Gem::Requirement
16
+ requirement: &2160582220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157011160
24
+ version_requirements: *2160582220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colored
27
- requirement: &2157010760 !ruby/object:Gem::Requirement
27
+ requirement: &2160581840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,21 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2157010760
35
+ version_requirements: *2160581840
36
+ - !ruby/object:Gem::Dependency
37
+ name: rvm
38
+ requirement: &2160581240 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2160581240
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: bundler
38
- requirement: &2157010160 !ruby/object:Gem::Requirement
49
+ requirement: &2160579200 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 1.0.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2157010160
57
+ version_requirements: *2160579200
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: ruby-debug19
49
- requirement: &2157009740 !ruby/object:Gem::Requirement
60
+ requirement: &2160577560 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,7 +65,7 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2157009740
68
+ version_requirements: *2160577560
58
69
  description: Save 5 hours starting your next project and use the latest and greatest
59
70
  best practices.
60
71
  email:
@@ -70,7 +81,6 @@ files:
70
81
  - Rakefile
71
82
  - bin/kitty_gen
72
83
  - kitty_gen.gemspec
73
- - lib/.DS_Store
74
84
  - lib/kitty_gen.rb
75
85
  - lib/kitty_gen/.DS_Store
76
86
  - lib/kitty_gen/base_recipes
@@ -79,7 +89,6 @@ files:
79
89
  - lib/kitty_gen/cook.rb
80
90
  - lib/kitty_gen/helpers.rb
81
91
  - lib/kitty_gen/kittens/kitty_1
82
- - lib/kitty_gen/master_template.rb
83
92
  - lib/kitty_gen/recipes/add_handy_application_wide_helpers_recipe.rb
84
93
  - lib/kitty_gen/recipes/basic_layout_with_login_using_slim_recipe.rb
85
94
  - lib/kitty_gen/recipes/debugging_and_console_helpers_recipe.rb
@@ -88,6 +97,7 @@ files:
88
97
  - lib/kitty_gen/recipes/factory_girl_with_generators_recipe.rb
89
98
  - lib/kitty_gen/recipes/formtastic_recipe.rb
90
99
  - lib/kitty_gen/recipes/initialize_git_repo_recipe.rb
100
+ - lib/kitty_gen/recipes/kitty_gen_gem_recipe.rb
91
101
  - lib/kitty_gen/recipes/login_with_facebook_and_twitter_recipe.rb
92
102
  - lib/kitty_gen/recipes/make_readme_a_textile_file_recipe.rb
93
103
  - lib/kitty_gen/recipes/reload_css_and_html_in_browser_on_save_recipe.rb
@@ -1,6 +0,0 @@
1
- #try getting cook to inherit from AppGenerator
2
- introduce_yourself
3
- #hack since thor expends an empty options hash
4
- # @options = {}
5
- app_name = ARGV.first
6
- prepare_standard_features