g2 0.0.4 → 0.0.5

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.
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