g2 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: b266998f829d48369168291fc82bf84064aea16f
4
- data.tar.gz: fccb7aae8436a6fb6ff4481fc4767db82ccc9403
3
+ metadata.gz: 157d4cf0b48b61090fe4a28fd8fcca56d812dc24
4
+ data.tar.gz: a103604449935a3d17a0ab90e1ace5b1802b2a6a
5
5
  SHA512:
6
- metadata.gz: 21e39bbc0876db258271bbfe71b90d8a5e37d89e4ff0d3a18284d10b66b4578c1bdc03f19a0be2e66e61baf0cba4edec4fdea1cb22f76c16a858826396bce0b7
7
- data.tar.gz: 9a0978f878ad41bfcf8ce9fd8cf0fd0a56babcc3be946e15b3de194c8b52c058d5a57360b5b89359bff6bb510e4f7ee1ae4d27c70303047e04e647e5b3c1df9f
6
+ metadata.gz: c858ff0e03857b6d397cc341b9922aa06106d5fa6e8c62834c049d788a7c814ea0c59a4cc8860138c45547c8119f891650547e7327ec789917ed8068fceb0b5d
7
+ data.tar.gz: 21fcfa31fb827a4dec2d94658c8216529be37128a30cb677c3ded1cb1a2d94a4ddeaa8605d0b4dff40637e6236474f85c571455ace494853e4661ddd47dc3eca
data/g2.gemspec CHANGED
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "thor"
23
- spec.add_development_dependency "rake"
21
+ spec.add_runtime_dependency "bundler", "~> 1.3"
22
+ spec.add_runtime_dependency "thor"
23
+ spec.add_runtime_dependency "activesupport"
24
+ spec.add_runtime_dependency "rake"
24
25
  end
@@ -1,4 +1,5 @@
1
1
  require "thor"
2
+ require "active_support/inflector"
2
3
 
3
4
  module G2
4
5
  class Cli < Thor
@@ -12,7 +13,7 @@ module G2
12
13
  @app_name = app_root.capitalize
13
14
 
14
15
  # create folder structure
15
- %w{app app/apis app/helpers app/models config config/environments db script log tmp tmp/pids spec}.each do |item|
16
+ %w{app app/apis app/helpers app/models config config/environments db script log tmp spec spec/apis spec/models spec/helpers}.each do |item|
16
17
  empty_directory app_root + "/" + item
17
18
  end
18
19
 
@@ -65,9 +66,33 @@ module G2
65
66
  end
66
67
 
67
68
  desc "g", "generate files"
68
- def g
69
- say "not implemented yet ):", :yellow
69
+ def g g_type, g_name, *args
70
+ @class_name = g_name.camelize
71
+ case g_type
72
+ when "model"
73
+ generate_model g_name, args
74
+ when "migration"
75
+ generate_migration g_name, args
76
+ when "api"
77
+ @resources_symbol = g_name.to_sym
78
+ generate_api g_name, args
79
+ else
80
+ puts "invalid generator type"
81
+ end
70
82
  end
71
83
 
84
+ private
85
+
86
+ def generate_model name, *args
87
+ template "templates/generator/model.erb", File.join('app/models', "#{name}.rb")
88
+ end
89
+
90
+ def generate_migration name, *args
91
+ template "templates/generator/migration.erb", File.join('db/migrate', "#{Time.now.to_i}_#{name}.rb")
92
+ end
93
+
94
+ def generate_api name, *args
95
+ template "templates/generator/api.erb", File.join('app/apis', "#{name}_api.rb")
96
+ end
72
97
  end
73
98
  end
@@ -1,5 +1,5 @@
1
1
  defaults: &defaults
2
- adapter: mysql2
2
+ adapter: em_mysql2
3
3
  encoding: utf8
4
4
  pool: 5
5
5
  host: localhost
@@ -8,9 +8,9 @@ defaults: &defaults
8
8
 
9
9
  development:
10
10
  <<: *defaults
11
- database: <%= @app_name %>_development
11
+ database: <%= @app_name.downcase %>_development
12
12
 
13
13
  test:
14
14
  <<: *defaults
15
- database: <%= @app_name %>_test
15
+ database: <%= @app_name.downcase %>_test
16
16
 
@@ -0,0 +1,11 @@
1
+ class <%= @class_name %>Api < Grape::API
2
+
3
+ resources :<%= @resources_symbol %> do
4
+
5
+ get "/" do
6
+ {name: "<%= @class_name %>"}
7
+ end
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,4 @@
1
+ class <%= @class_name %> < ActiveRecord::Migration
2
+ def change
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ class <%= @class_name %> < ActiveRecord::Base
2
+ end
@@ -4,14 +4,14 @@ require 'em-synchrony/activerecord'
4
4
  require 'yaml'
5
5
 
6
6
  def db_conf
7
- config = YAML.load File.read('config/database.yml')
7
+ YAML.load File.read('config/database.yml')
8
8
  end
9
9
 
10
10
  namespace :db do
11
11
  desc "loads database configuration in for other tasks to run"
12
12
  task :load_config do
13
- env = ENV["G2_ENV"]
14
- ActiveRecord::Base.establish_connection db_conf[env]
13
+ $env = ENV["G2_ENV"] || "development"
14
+ ActiveRecord::Base.establish_connection db_conf[$env]
15
15
  end
16
16
 
17
17
  desc "creates and migrates your database"
@@ -21,7 +21,7 @@ namespace :db do
21
21
  end
22
22
 
23
23
  desc "migrate your database"
24
- task :migrate do
24
+ task :migrate => :load_config do
25
25
  migration_path = ActiveRecord::Migrator.migrations_paths
26
26
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
27
27
  ActiveRecord::Migrator.migrate migration_path, version
@@ -29,12 +29,18 @@ namespace :db do
29
29
 
30
30
  desc 'Drops the database'
31
31
  task :drop => :load_config do
32
- ActiveRecord::Base.connection.drop_database db_conf[env]['database']
32
+ ActiveRecord::Base.connection.drop_database db_conf[$env]['database']
33
+ puts "#{db_conf[$env]['database']} has been dropped"
33
34
  end
34
35
 
35
36
  desc 'Creates the database'
36
- task :create => :load_config do
37
+ task :create do
38
+ env = ENV["G2_ENV"] || "development"
39
+ conf = db_conf[env]
40
+ conf.delete "database"
41
+ ActiveRecord::Base.establish_connection conf
37
42
  ActiveRecord::Base.connection.create_database db_conf[env]['database']
43
+ puts "#{db_conf[env]['database']} has been created"
38
44
  end
39
45
 
40
46
  end
@@ -8,18 +8,20 @@ Goliath.env = :test
8
8
  require File.expand_path('../../script/server', __FILE__)
9
9
 
10
10
  module ApiTestHelper
11
- def get path, params={}, &block
12
- with_api Boot, params do
13
- get_request path: path do |c|
14
- block.call c
11
+ def get path, params={}, options={}, &block
12
+ with_api Boot, options do
13
+ get_request path: path, query: params do |c|
14
+ json = JSON.parse c.response, symbolize_names: true
15
+ block.call c, json
15
16
  end
16
17
  end
17
18
  end
18
19
 
19
- def post path, params={}, &block
20
- with_api Boot, params do
21
- get_request path: path do |c|
22
- block.call c
20
+ def post path, params={}, options={}, &block
21
+ with_api Boot, options do
22
+ post_request path: path, body: params do |c|
23
+ json = JSON.parse c.response, symbolize_names: true
24
+ block.call c, json
23
25
  end
24
26
  end
25
27
  end
@@ -1,3 +1,3 @@
1
1
  module G2
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -3,5 +3,4 @@ require "spec_helper"
3
3
  require "g2/cli"
4
4
 
5
5
  describe G2::Cli do
6
- it { 1.should == 1 }
7
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: g2
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
  - lizhe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-05 00:00:00.000000000 Z
11
+ date: 2013-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
- type: :development
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -31,7 +31,21 @@ dependencies:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
@@ -45,7 +59,7 @@ dependencies:
45
59
  - - '>='
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
- type: :development
62
+ type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
@@ -74,6 +88,9 @@ files:
74
88
  - lib/g2/templates/application.erb
75
89
  - lib/g2/templates/database.erb
76
90
  - lib/g2/templates/gemfile.erb
91
+ - lib/g2/templates/generator/api.erb
92
+ - lib/g2/templates/generator/migration.erb
93
+ - lib/g2/templates/generator/model.erb
77
94
  - lib/g2/templates/guardfile.erb
78
95
  - lib/g2/templates/rakefile.erb
79
96
  - lib/g2/templates/rspec_config.erb