cuba-generator 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9771008b2702dc2a5fdaeb0ada51977ef1c19814
4
- data.tar.gz: 41f39381cd50f9d1d378dd87dbdf657577a319f9
3
+ metadata.gz: 1a24fdbf4bf0d88e6cc34b511f106b4d09cf7952
4
+ data.tar.gz: eac6e9a26964284e52de58fe65c24e37286c1160
5
5
  SHA512:
6
- metadata.gz: b75272fb8da45a19a6b606879ec0cd8e1467b50f7b4650d8234e8751bf46bfbbb1ecdc0acb9715da8f4072017b4cbf58d61a7f0c99b27a4a2fe0ebe8417b5485
7
- data.tar.gz: 58787eb3076556e6a951567f85f6c7926664b98517fedf2a9493550d0ebac4d1a6d48bfbdbac1f139096b5aa7e20a8f96b90c838d2b875c49d9304f756432644
6
+ metadata.gz: 557625f97ed98ea6f9f5e4462b78b153f2ee1b6de5ac280b7a3b4a171ed9e5025ac7c0b3645a372071b2bf352c12dfd5c85c8a3b05907937cd8164cb8e966a4b
7
+ data.tar.gz: 10a464aaba4eb0d3264a643e0b5122ae7a33dedab4970a887902dc7fd0e69d5c59feb7b0ce3f8b76a7801f26e4fb38cb737ba4cf2c8f8a87863b96150107ba0e
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  .idea/
16
+ .DS_Store
data/bin/cuba CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "cuba/generator"
3
+ #!/usr/bin/env ruby
4
+
5
+ # encoding: utf-8
4
6
 
5
- if ARGV.length == 2 && ARGV[0] == 'new'
6
- project = Cuba::Generator.new(ARGV[1])
7
- else
8
- puts "cuba new <projectName>"
9
- end
7
+ $LOAD_PATH.unshift(File.dirname(File.realpath(__FILE__)) + '/../lib')
8
+ require 'cuba/generator/cli'
9
+ Cuba::Cli.new.run
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Cuba::Generator::VERSION
9
9
  spec.authors = ['Serdar Dogruyol']
10
10
  spec.email = ['dogruyolserdar@gmail.com']
11
- spec.summary = %q{Generator for Cuba framework.}
11
+ spec.summary = %q{Application Generator for Cuba framework.}
12
12
  spec.description = %q{Helps create cuba projects through a minimalist generator.}
13
13
  spec.homepage = ''
14
14
  spec.license = 'MIT'
@@ -21,5 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency 'bundler', '~> 1.7'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.1.0'
24
- spec.add_runtime_dependency 'cuba', '~> 3.3.0'
24
+ spec.add_dependency 'cuba', '~> 3.3.0'
25
+ spec.add_runtime_dependency 'commander', '~> 4.3.0'
25
26
  end
@@ -0,0 +1,29 @@
1
+ require 'commander'
2
+ require_relative 'version'
3
+ require_relative '../generator'
4
+
5
+ module Cuba
6
+ class Cli
7
+ include Commander::Methods
8
+
9
+ def run
10
+ program :name, 'cuba'
11
+ program :version, Cuba::Generator::VERSION
12
+ program :description, 'Application Generator for Cuba framework.'
13
+
14
+ command :new do |c|
15
+ c.syntax = 'cuba new [options]'
16
+ c.description = 'Creates a new Cuba app'
17
+ c.option '--type STRING', String, 'Creates an app with preferred type'
18
+ c.action do |args, options|
19
+ if options.type
20
+ Cuba::Generator.new(ARGV[1], options.type)
21
+ else
22
+ Cuba::Generator.new(ARGV[1], :app)
23
+ end
24
+ end
25
+ end
26
+ run!
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,5 @@
1
1
  module Cuba
2
2
  class Generator
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -7,12 +7,13 @@ module Cuba
7
7
  class Generator
8
8
  APPROOT = File.expand_path(File.dirname(__FILE__))
9
9
 
10
- def initialize(name)
10
+ def initialize(name, type)
11
11
  @project_name = name.downcase
12
+ @type = type
12
13
  create_dir
13
14
  create_config_file
14
15
  create_cuba_file
15
- puts "Created your Cuba app at #{@project_name} directory. Rock on!"
16
+ puts "Created your Cuba #{@type} at /#{@project_name} directory. Rock on!"
16
17
  end
17
18
 
18
19
  def create_dir
@@ -34,8 +35,12 @@ module Cuba
34
35
  private
35
36
 
36
37
  def setup_cuba
37
- path = File.read File.join(APPROOT, './templates/app.erb')
38
- erb(path, {project_name: @project_name})
38
+ path = if @type.to_sym == :app
39
+ File.read File.join(APPROOT, './templates/app.erb')
40
+ elsif @type.to_sym == :api
41
+ File.read File.join(APPROOT, './templates/api.erb')
42
+ end
43
+ erb(path, {project_name: @project_name})
39
44
  end
40
45
 
41
46
  def setup_config
@@ -0,0 +1,24 @@
1
+ <%=
2
+ <<-TEMPLATE
3
+ require 'cuba'
4
+ require 'json'
5
+
6
+ # If you need extra protection.
7
+ # require 'rack/protection'
8
+ # Cuba.use Rack::Protection
9
+ # Cuba.use Rack::Protection::RemoteReferrer
10
+
11
+ # To launch just type: 'rackup' in your console
12
+ Cuba.define do
13
+ on get do
14
+
15
+ on root do
16
+ data = { first_name: 'Hello', last_name: 'World' }
17
+ res.headers["Content-Type"] = "application/json; charset=utf-8"
18
+ res.write data.to_json
19
+ end
20
+
21
+ end
22
+ end
23
+ TEMPLATE
24
+ %>
@@ -23,12 +23,9 @@ Cuba.use Rack::Session::Cookie, :secret => "#{SecureRandom.base64(64)}"
23
23
  # To launch just type: 'rackup' in your console
24
24
  Cuba.define do
25
25
  on get do
26
- on "#{project_name}" do
27
- res.write 'Hello world!'
28
- end
29
26
 
30
27
  on root do
31
- res.redirect "/#{project_name}"
28
+ res.write "Hello #{project_name}"
32
29
  end
33
30
 
34
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuba-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serdar Dogruyol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-10 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.3.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: commander
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 4.3.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 4.3.0
69
83
  description: Helps create cuba projects through a minimalist generator.
70
84
  email:
71
85
  - dogruyolserdar@gmail.com
@@ -83,7 +97,9 @@ files:
83
97
  - bin/cuba
84
98
  - cuba-generator.gemspec
85
99
  - lib/cuba/generator.rb
100
+ - lib/cuba/generator/cli.rb
86
101
  - lib/cuba/generator/version.rb
102
+ - lib/cuba/templates/api.erb
87
103
  - lib/cuba/templates/app.erb
88
104
  - lib/cuba/templates/rack_config.erb
89
105
  - spec/cuba_generator_spec.rb
@@ -110,6 +126,6 @@ rubyforge_project:
110
126
  rubygems_version: 2.4.5
111
127
  signing_key:
112
128
  specification_version: 4
113
- summary: Generator for Cuba framework.
129
+ summary: Application Generator for Cuba framework.
114
130
  test_files:
115
131
  - spec/cuba_generator_spec.rb