daiku 0.0.12 → 0.1.0
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 +4 -4
- data/Gemfile +7 -0
- data/README.md +31 -6
- data/lib/daiku.rb +35 -2
- data/lib/daiku/_app/.env.tt +0 -11
- data/lib/daiku/_app/.node-version +1 -0
- data/lib/daiku/_app/.ruby-version.tt +1 -1
- data/lib/daiku/_app/.travis.yml.tt +1 -8
- data/lib/daiku/_app/Gemfile.tt +1 -32
- data/lib/daiku/_app/Procfile.tt +1 -4
- data/lib/daiku/_app/Rakefile.tt +3 -1
- data/lib/daiku/_app/config.ru.tt +1 -11
- data/lib/daiku/{_templates → _app/config}/pony.rb.tt +0 -0
- data/lib/daiku/_app/config/puma.rb +0 -3
- data/lib/daiku/_app/lib/boot.rb.tt +1 -7
- data/lib/daiku/cli.rb +48 -49
- data/lib/daiku/core_ext.rb +36 -0
- data/lib/daiku/plugin.rb +26 -0
- data/lib/daiku/plugins.rb +38 -0
- data/lib/daiku/plugins/database-sql.rb +10 -0
- data/lib/daiku/{_templates/db_helper.rb → plugins/database-sql/_templates/db_helper.rb.tt} +0 -0
- data/lib/daiku/plugins/database-sql/cli.rb +41 -0
- data/lib/daiku/plugins/datamapper.rb +10 -0
- data/lib/daiku/{_templates → plugins/datamapper/_templates}/datamapper.rb.tt +0 -0
- data/lib/daiku/plugins/datamapper/cli.rb +50 -0
- data/lib/daiku/plugins/grunt.rb +10 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/aliases.yaml +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/coffee.coffee +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/imagemin.coffee +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/robotstxt.coffee +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/sass.coffee +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/slim.coffee +0 -0
- data/lib/daiku/{_grunt/.grunt → plugins/grunt/_config}/uglify.coffee +0 -0
- data/lib/daiku/{_grunt → plugins/grunt/_templates}/.bowerrc +0 -0
- data/lib/daiku/plugins/grunt/_templates/.bowerrc.tt +4 -0
- data/lib/daiku/{_grunt → plugins/grunt/_templates}/Gruntfile.coffee +0 -0
- data/lib/daiku/{_grunt → plugins/grunt/_templates}/bower.json.tt +0 -0
- data/lib/daiku/{_grunt → plugins/grunt/_templates}/package.json.tt +0 -0
- data/lib/daiku/plugins/grunt/cli.rb +26 -0
- data/lib/daiku/plugins/honeybadger.rb +10 -0
- data/lib/daiku/{_app/config/honeybadger.rb → plugins/honeybadger/_templates/honeybadger.rb.tt} +0 -0
- data/lib/daiku/plugins/honeybadger/cli.rb +43 -0
- data/lib/daiku/plugins/newrelic.rb +10 -0
- data/lib/daiku/plugins/newrelic/cli.rb +22 -0
- data/lib/daiku/plugins/sidekiq.rb +10 -0
- data/lib/daiku/{_templates → plugins/sidekiq/_templates}/sidekiq.rb.tt +0 -0
- data/lib/daiku/plugins/sidekiq/cli.rb +53 -0
- data/lib/daiku/plugins/vcr.rb +10 -0
- data/lib/daiku/{_templates/vcr_helper.rb → plugins/vcr/_templates/vcr_helper.rb.tt} +0 -0
- data/lib/daiku/plugins/vcr/cli.rb +31 -0
- data/lib/daiku/version.rb +1 -1
- data/spec/daiku/plugins_spec.rb +60 -0
- data/spec/spec_helper.rb +16 -0
- metadata +43 -21
- data/lib/daiku/_templates/bower.json.tt +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3e8b05bc97a7765ef02bad3f80967d180967e14d
|
|
4
|
+
data.tar.gz: 286c391924557281a930f595163eb5d9239f8e39
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb28349484e0b914c839bef30de734bd368f0b63696f26d0cb616e90d0a3e4872f13d727bd215c47fafd527c9397fd3406af74131ca8a9d0cb7b7e4efb8ef90e
|
|
7
|
+
data.tar.gz: cc7715bd90bceb56eba923207c281b54b7069b68a8bfe9b5442bd0de362b3d28001a9f91639e661ea5ad87ee699f30a1c406813acac87923700cd05beaf6fba9
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -60,6 +60,21 @@ This will generate the following app:
|
|
|
60
60
|
|
|
61
61
|
````
|
|
62
62
|
myapp
|
|
63
|
+
├── .bowerrc
|
|
64
|
+
├── .env
|
|
65
|
+
├── .gitignore
|
|
66
|
+
├── .grunt
|
|
67
|
+
│ ├── aliases.yaml
|
|
68
|
+
│ ├── coffee.coffee
|
|
69
|
+
│ ├── imagemin.coffee
|
|
70
|
+
│ ├── robotstxt.coffee
|
|
71
|
+
│ ├── sass.coffee
|
|
72
|
+
│ ├── slim.coffee
|
|
73
|
+
│ └── uglify.coffee
|
|
74
|
+
├── .node-version
|
|
75
|
+
├── .ruby-version
|
|
76
|
+
├── .slugignore
|
|
77
|
+
├── .travis.yml
|
|
63
78
|
├── Gemfile
|
|
64
79
|
├── Gruntfile.coffee
|
|
65
80
|
├── Procfile
|
|
@@ -67,11 +82,13 @@ myapp
|
|
|
67
82
|
├── app.rb
|
|
68
83
|
├── assets
|
|
69
84
|
│ ├── images
|
|
85
|
+
│ │ └── .gitkeep
|
|
70
86
|
│ ├── javascripts
|
|
71
|
-
│ │
|
|
72
|
-
│
|
|
73
|
-
│ │ └──
|
|
87
|
+
│ │ └── app.coffee
|
|
88
|
+
│ ├── pages
|
|
89
|
+
│ │ └── .gitkeep
|
|
74
90
|
│ └── stylesheets
|
|
91
|
+
│ ├── .gitkeep
|
|
75
92
|
│ └── app.scss
|
|
76
93
|
├── bin
|
|
77
94
|
│ └── console
|
|
@@ -87,25 +104,33 @@ myapp
|
|
|
87
104
|
│ ├── core_ext
|
|
88
105
|
│ │ └── frame_options.rb
|
|
89
106
|
│ ├── errors
|
|
107
|
+
│ │ ├── .gitkeep
|
|
90
108
|
│ │ └── app.rb
|
|
91
109
|
│ ├── jobs
|
|
110
|
+
│ │ └── .gitkeep
|
|
92
111
|
│ ├── models
|
|
112
|
+
│ │ └── .gitkeep
|
|
93
113
|
│ ├── services
|
|
114
|
+
│ │ └── .gitkeep
|
|
94
115
|
│ ├── tasks
|
|
116
|
+
│ │ └── .gitkeep
|
|
95
117
|
│ └── values
|
|
118
|
+
│ └── .gitkeep
|
|
96
119
|
├── package.json
|
|
97
120
|
├── public
|
|
98
121
|
│ ├── assets
|
|
99
|
-
│ │
|
|
100
|
-
│ │ ├── production
|
|
101
|
-
│ │ └── staging
|
|
122
|
+
│ │ └── .gitkeep
|
|
102
123
|
│ └── fonts
|
|
124
|
+
│ └── .gitkeep
|
|
103
125
|
├── spec
|
|
104
126
|
│ ├── _cassettes
|
|
127
|
+
│ │ └── .gitkeep
|
|
105
128
|
│ ├── app_spec.rb
|
|
106
129
|
│ ├── db_helper.rb
|
|
107
130
|
│ ├── models
|
|
131
|
+
│ │ └── .gitkeep
|
|
108
132
|
│ ├── services
|
|
133
|
+
│ │ └── .gitkeep
|
|
109
134
|
│ ├── spec_helper.rb
|
|
110
135
|
│ └── vcr_helper.rb
|
|
111
136
|
└── views
|
data/lib/daiku.rb
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
lib_path = File.expand_path('../lib', __FILE__)
|
|
6
|
+
($:.unshift lib_path) unless ($:.include? lib_path)
|
|
3
7
|
|
|
4
8
|
module Daiku ; end
|
|
9
|
+
|
|
10
|
+
require 'daiku/core_ext'
|
|
11
|
+
|
|
12
|
+
require 'daiku/plugin'
|
|
13
|
+
require 'daiku/plugins'
|
|
14
|
+
|
|
15
|
+
require 'daiku/plugins/database-sql'
|
|
16
|
+
require 'daiku/plugins/database-sql/cli'
|
|
17
|
+
|
|
18
|
+
require 'daiku/plugins/datamapper'
|
|
19
|
+
require 'daiku/plugins/datamapper/cli'
|
|
20
|
+
|
|
21
|
+
require 'daiku/plugins/grunt'
|
|
22
|
+
require 'daiku/plugins/grunt/cli'
|
|
23
|
+
|
|
24
|
+
require 'daiku/plugins/honeybadger'
|
|
25
|
+
require 'daiku/plugins/honeybadger/cli'
|
|
26
|
+
|
|
27
|
+
require 'daiku/plugins/newrelic'
|
|
28
|
+
require 'daiku/plugins/newrelic/cli'
|
|
29
|
+
|
|
30
|
+
require 'daiku/plugins/sidekiq'
|
|
31
|
+
require 'daiku/plugins/sidekiq/cli'
|
|
32
|
+
|
|
33
|
+
require 'daiku/plugins/vcr'
|
|
34
|
+
require 'daiku/plugins/vcr/cli'
|
|
35
|
+
|
|
36
|
+
require 'daiku/version'
|
|
37
|
+
require 'daiku/cli'
|
data/lib/daiku/_app/.env.tt
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
APP_NAME=<%= @app %>
|
|
2
2
|
APP_TITLE=<%= @app %>
|
|
3
|
-
ASSETS_BUILDER=<%= @assets %>
|
|
4
|
-
<% if @with_sidekiq -%>
|
|
5
|
-
AUTH_USERNAME=<%= @app %>
|
|
6
|
-
AUTH_PASSWORD=<%= @app %>
|
|
7
|
-
<% end -%>
|
|
8
|
-
<% if @datamapper -%>
|
|
9
|
-
DATABASE_URL=postgres://localhost/<%= @app %>
|
|
10
|
-
DB_NAME=<%= @app %>
|
|
11
|
-
<% end -%>
|
|
12
|
-
HONEYBADGER_PRIVATE_KEY=<%= @honeybadger_private_key %>
|
|
13
|
-
HONEYBADGER_PUBLIC_KEY=<%= @honeybadger_public_key %>
|
|
14
3
|
RACK_ENV=development
|
|
15
4
|
PORT=<%= @port %>
|
|
16
5
|
PUMA_MAX_THREADS=8
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= @node %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%= @
|
|
1
|
+
<%= @ruby -%>
|
|
@@ -2,16 +2,9 @@ language: ruby
|
|
|
2
2
|
cache: bundler
|
|
3
3
|
rvm:
|
|
4
4
|
- <%= @ruby_version %>
|
|
5
|
-
<% if @datamapper -%>
|
|
6
5
|
services:
|
|
7
|
-
- postgresql
|
|
8
6
|
addons:
|
|
9
|
-
|
|
10
|
-
before_script:
|
|
11
|
-
- psql -c 'create database "<%= @app -%>_test";' -U postgres
|
|
12
|
-
- 'bundle exec rake db:hstore'
|
|
13
|
-
- 'bundle exec rake db:migrate'
|
|
14
|
-
<% end -%>
|
|
7
|
+
before_script:
|
|
15
8
|
notifications:
|
|
16
9
|
template:
|
|
17
10
|
- "%{repository}:%{branch} - %{message} [%{build_url}]"
|
data/lib/daiku/_app/Gemfile.tt
CHANGED
|
@@ -1,31 +1,14 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
ruby <%= "'#{@
|
|
3
|
+
ruby <%= "'#{@ruby}'" %>
|
|
4
4
|
|
|
5
5
|
gem 'activesupport', '~> 4.0.0', require: false
|
|
6
6
|
gem 'dalli'
|
|
7
7
|
gem 'escape_utils'
|
|
8
|
-
gem 'honeybadger'
|
|
9
8
|
gem 'nokogiri'
|
|
10
9
|
gem 'oj'
|
|
11
10
|
gem 'pry', require: false
|
|
12
11
|
gem 'puma', require: false
|
|
13
|
-
<%= "gem 'sidekiq'\n" if @with_sidekiq -%>
|
|
14
|
-
|
|
15
|
-
<% if @datamapper -%>
|
|
16
|
-
group :datamapper do
|
|
17
|
-
gem 'dm-aspects'
|
|
18
|
-
gem 'dm-aggregates'
|
|
19
|
-
gem 'dm-core'
|
|
20
|
-
gem 'dm-migrations'
|
|
21
|
-
gem 'dm-pager'
|
|
22
|
-
gem 'dm-postgres-adapter'
|
|
23
|
-
gem 'dm-postgres-types'
|
|
24
|
-
gem 'dm-timestamps'
|
|
25
|
-
gem 'dm-transactions'
|
|
26
|
-
gem 'dm-validations'
|
|
27
|
-
end
|
|
28
|
-
<% end -%>
|
|
29
12
|
|
|
30
13
|
group :web do
|
|
31
14
|
gem 'sinatra', '~> 1.4.4', require: 'sinatra/base'
|
|
@@ -35,7 +18,6 @@ end
|
|
|
35
18
|
|
|
36
19
|
group :production, :staging do
|
|
37
20
|
gem 'rack-ssl', require: 'rack/ssl', :group => :web
|
|
38
|
-
<%= " gem 'newrelic_rpm'\n" unless @no_newrelic -%>
|
|
39
21
|
end
|
|
40
22
|
|
|
41
23
|
group :rake do
|
|
@@ -43,24 +25,11 @@ group :rake do
|
|
|
43
25
|
end
|
|
44
26
|
|
|
45
27
|
group :test do
|
|
46
|
-
<%= " gem 'database_cleaner'\n" if @datamapper -%>
|
|
47
28
|
gem 'rack-test', require: 'rack/test'
|
|
48
29
|
gem 'minitest'
|
|
49
30
|
gem 'minitest-spec-context'
|
|
50
31
|
gem 'minitest-reporters', require: 'minitest/reporters'
|
|
51
32
|
gem 'mocha', require: 'mocha/setup'
|
|
52
|
-
<% if @with_vcr -%>
|
|
53
|
-
gem 'vcr', require: false
|
|
54
|
-
gem 'webmock', '< 1.12', require: false
|
|
55
|
-
<% end -%>
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
group :assets do
|
|
59
|
-
gem 'sass'
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
group :development do
|
|
63
|
-
gem 'debugger', require: false
|
|
64
33
|
end
|
|
65
34
|
|
|
66
35
|
group :development, :test do
|
data/lib/daiku/_app/Procfile.tt
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
web: bundle exec puma -t ${PUMA_MIN_THREADS:-0}:${PUMA_MAX_THREADS:-16} -w ${PUMA_WORKERS:-0} -p $PORT -e $RACK_ENV -C config/puma.rb
|
|
1
|
+
web: bundle exec puma -t ${PUMA_MIN_THREADS:-0}:${PUMA_MAX_THREADS:-16} -w ${PUMA_WORKERS:-0} -p $PORT -e $RACK_ENV -C config/puma.rb
|
|
2
2
|
console: bundle exec ./bin/console
|
|
3
|
-
<% if @with_sidekiq -%>
|
|
4
|
-
sidekiq: bundle exec sidekiq -q default -r ./lib/boot.rb
|
|
5
|
-
<% end -%>
|
data/lib/daiku/_app/Rakefile.tt
CHANGED
|
@@ -7,9 +7,11 @@ ENV['RACK_ENV'] ||= 'development'
|
|
|
7
7
|
lib_path = File.expand_path('../lib', __FILE__)
|
|
8
8
|
($:.unshift lib_path) unless ($:.include? lib_path)
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# bundler
|
|
11
11
|
require 'bundler'
|
|
12
12
|
Bundler.require(:default, ENV['RACK_ENV'], :rake)
|
|
13
|
+
|
|
14
|
+
# require farm
|
|
13
15
|
require 'dotenv/tasks'
|
|
14
16
|
require 'rake/testtask'
|
|
15
17
|
|
data/lib/daiku/_app/config.ru.tt
CHANGED
|
@@ -13,7 +13,6 @@ Bundler.require(:default, :web)
|
|
|
13
13
|
require './app'
|
|
14
14
|
|
|
15
15
|
# middleware stack
|
|
16
|
-
use Honeybadger::Rack::ErrorNotifier
|
|
17
16
|
if %w(production staging).include? ENV['RACK_ENV']
|
|
18
17
|
use Rack::SSL, hsts: { subdomains: true }
|
|
19
18
|
end
|
|
@@ -22,14 +21,5 @@ use Rack::Deflater
|
|
|
22
21
|
use Rack::Runtime
|
|
23
22
|
|
|
24
23
|
# make the jump
|
|
25
|
-
run
|
|
24
|
+
run app
|
|
26
25
|
|
|
27
|
-
<% if @with_sidekiq -%>
|
|
28
|
-
require 'sidekiq/web'
|
|
29
|
-
map '/sidekiq' do
|
|
30
|
-
Sidekiq::Web.use Rack::Auth::Basic do |username, password|
|
|
31
|
-
username == ENV['AUTH_USERNAME'] && password == ENV['AUTH_PASSWORD']
|
|
32
|
-
end
|
|
33
|
-
run Sidekiq::Web
|
|
34
|
-
end
|
|
35
|
-
<% end -%>
|
|
File without changes
|
|
@@ -23,18 +23,12 @@ require 'active_support/core_ext/numeric/conversions'
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
# errors
|
|
26
|
-
require File.join($app_root, 'config/honeybadger')
|
|
27
26
|
require 'errors/app'
|
|
28
27
|
|
|
29
28
|
# models
|
|
30
|
-
<% if @datamapper -%>
|
|
31
|
-
require File.join($app_root, 'config/datamapper')
|
|
32
|
-
DataMapper.finalize
|
|
33
|
-
<% end -%>
|
|
34
29
|
|
|
35
30
|
# services
|
|
36
31
|
|
|
37
|
-
# reports
|
|
38
|
-
|
|
39
32
|
# values
|
|
40
33
|
|
|
34
|
+
# jobs
|
data/lib/daiku/cli.rb
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
require 'thor'
|
|
4
4
|
|
|
5
5
|
module Daiku
|
|
6
|
-
class CLI < Thor
|
|
7
|
-
include Thor::Actions
|
|
6
|
+
class CLI < ::Thor
|
|
7
|
+
include ::Thor::Actions
|
|
8
|
+
class_option :version, type: :boolean
|
|
8
9
|
|
|
9
10
|
def self.source_root
|
|
10
11
|
File.expand_path('../', __FILE__)
|
|
@@ -12,73 +13,71 @@ module Daiku
|
|
|
12
13
|
|
|
13
14
|
desc "new APP", "Generate a new application with daiku"
|
|
14
15
|
method_option :port, required: true, aliases: '-p', type: :numeric, desc: 'Port this app should run on locally.'
|
|
15
|
-
method_option :
|
|
16
|
-
method_option :
|
|
17
|
-
method_option :assets,
|
|
18
|
-
method_option :'
|
|
19
|
-
method_option :'
|
|
20
|
-
method_option :
|
|
21
|
-
method_option :
|
|
22
|
-
method_option :
|
|
16
|
+
method_option :ruby, default: '2.1.5', desc: 'Specify the version of ruby this project should use.'
|
|
17
|
+
method_option :node, default: 'v0.10.33', desc: 'Specify the version of node this project should use.'
|
|
18
|
+
method_option :assets, aliases: '-a', desc: 'Choose the assets workflow this project uses.', enum: Daiku::Plugins.plugin_names('assets')
|
|
19
|
+
method_option :errors, aliases: '-e', desc: 'Choose the error reporting lib this project uses.', enum: Daiku::Plugins.plugin_names('errors')
|
|
20
|
+
method_option :jobs, aliases: '-j', desc: 'Choose the background jobs lib this project uses.', enum: Daiku::Plugins.plugin_names('jobs')
|
|
21
|
+
method_option :models, aliases: '-m', desc: 'Choose the data modeling lib this project uses.', enum: Daiku::Plugins.plugin_names('models')
|
|
22
|
+
method_option :monitors, aliases: '-M', desc: 'Choose the monitoring lib this project uses.', enum: Daiku::Plugins.plugin_names('monitors')
|
|
23
|
+
method_option :vcr, type: :boolean, desc: "Include `vcr` in this project's BDD stack?", default: false
|
|
24
|
+
method_option :sql, type: :boolean, desc: "SQL or No-SQL? If SQL, assumes postgresql", default: true
|
|
23
25
|
def new(app)
|
|
24
|
-
@app
|
|
25
|
-
@port
|
|
26
|
-
@
|
|
26
|
+
@app = app
|
|
27
|
+
@port = options[:port]
|
|
28
|
+
@ruby = options[:ruby]
|
|
27
29
|
@models = options[:models]
|
|
28
30
|
@assets = options[:assets]
|
|
29
|
-
@
|
|
30
|
-
@honeybadger_public_key = options[:'honeybadger-public-key']
|
|
31
|
-
@no_newrelic = options[:'no-newrelic']
|
|
32
|
-
@with_vcr = options[:'with-vcr']
|
|
33
|
-
@with_sidekiq = options[:'with-sidekiq']
|
|
34
|
-
|
|
35
|
-
case @models
|
|
36
|
-
when 'datamapper'
|
|
37
|
-
@datamapper = true
|
|
38
|
-
when 'none'
|
|
39
|
-
@datamapper = false
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
case @assets
|
|
43
|
-
when 'grunt'
|
|
44
|
-
@grunt = true
|
|
45
|
-
when 'none'
|
|
46
|
-
@grunt = false
|
|
47
|
-
end
|
|
31
|
+
@jobs = options[:jobs]
|
|
48
32
|
|
|
49
33
|
# do the dew
|
|
50
34
|
say "Generating #{app} app..."
|
|
51
35
|
directory('_app', app)
|
|
52
36
|
chmod("#{app}/bin/console", 'a+x')
|
|
53
|
-
template("_templates/#{@models}.rb.tt", "#{app}/config/#{@models}.rb")
|
|
54
|
-
copy_file('_templates/db_helper.rb', "#{app}/spec/db_helper.rb") if @datamapper
|
|
55
37
|
|
|
56
|
-
if @
|
|
57
|
-
|
|
38
|
+
if @assets
|
|
39
|
+
invoke plugins[@assets][:class].cli, [@app], options
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if @errors
|
|
43
|
+
invoke plugins[@errors][:class].cli, [@app], options
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
if @jobs
|
|
47
|
+
invoke plugins[@jobs][:class].cli, [@app], options
|
|
58
48
|
end
|
|
59
49
|
|
|
60
|
-
if @
|
|
61
|
-
|
|
62
|
-
empty_directory("#{app}/spec/_cassettes")
|
|
63
|
-
create_file("#{app}/spec/_cassettes/.gitkeep", "")
|
|
50
|
+
if @models
|
|
51
|
+
invoke plugins[@models][:class].cli, [@app], options
|
|
64
52
|
end
|
|
65
53
|
|
|
66
|
-
if @
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
54
|
+
if @monitors
|
|
55
|
+
invoke plugins[@monitors][:class].cli, [@app], options
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
if options[:sql]
|
|
59
|
+
invoke plugins['database-sql'][:class].cli, [@app], options
|
|
60
|
+
else
|
|
61
|
+
say_status 'skipped', "--no-sql option is not supported yet", :yellow
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
if options[:vcr]
|
|
65
|
+
invoke plugins['vcr'][:class].cli, [@app], options
|
|
74
66
|
end
|
|
75
67
|
|
|
76
68
|
say "Done!"
|
|
77
69
|
end
|
|
78
70
|
|
|
79
|
-
desc "version", "
|
|
71
|
+
desc "version", "Show the daiku version"
|
|
80
72
|
def version
|
|
81
73
|
say "Daiku v#{Daiku::VERSION}"
|
|
82
74
|
end
|
|
75
|
+
default_task :version
|
|
76
|
+
|
|
77
|
+
no_tasks do
|
|
78
|
+
def plugins
|
|
79
|
+
Daiku::Plugins.register_plugins
|
|
80
|
+
end
|
|
81
|
+
end
|
|
83
82
|
end
|
|
84
83
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
class Object
|
|
4
|
+
def try(*a, &b)
|
|
5
|
+
if a.empty? && block_given?
|
|
6
|
+
yield self
|
|
7
|
+
else
|
|
8
|
+
public_send(*a, &b) if respond_to?(a.first)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def try!(*a, &b)
|
|
13
|
+
if a.empty? && block_given?
|
|
14
|
+
yield self
|
|
15
|
+
else
|
|
16
|
+
public_send(*a, &b)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class NilClass
|
|
22
|
+
def try(*args)
|
|
23
|
+
nil
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def try!(*args)
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class String
|
|
32
|
+
def strip_heredoc
|
|
33
|
+
indent = scan(/^[ \t]*(?=\S)/).min.try(:size) || 0
|
|
34
|
+
gsub(/^[ \t]{#{indent}}/, '')
|
|
35
|
+
end
|
|
36
|
+
end
|
data/lib/daiku/plugin.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Daiku
|
|
4
|
+
class Plugin
|
|
5
|
+
def self.plugin_name(name)
|
|
6
|
+
meta[:name] = name
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.plugin_type(type)
|
|
10
|
+
meta[:type] = type
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.meta
|
|
14
|
+
@meta = { class: Kernel.const_get(self.name) } if @meta.nil?
|
|
15
|
+
@meta
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.cli
|
|
19
|
+
meta[:class]::CLI
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.cli_path
|
|
23
|
+
File.expand_path('../', __FILE__)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Daiku
|
|
4
|
+
class Plugins
|
|
5
|
+
def self.find_plugins
|
|
6
|
+
Daiku::Plugins.constants.map do |plugin|
|
|
7
|
+
Daiku::Plugins.const_get(plugin.to_s, false)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.register_plugins
|
|
12
|
+
Hash[*find_plugins.map do |plugin|
|
|
13
|
+
[plugin.meta[:name], plugin.meta]
|
|
14
|
+
end.flatten]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.has_plugins?(type)
|
|
18
|
+
register_plugins.values.any? do |plugin|
|
|
19
|
+
plugin[:type] == type
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.filter_plugins(value, filter = :type)
|
|
24
|
+
register_plugins.values.select do |plugin|
|
|
25
|
+
plugin[filter] == value
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.plugin_names(type = nil)
|
|
30
|
+
plugins = if type.nil?
|
|
31
|
+
register_plugins.values
|
|
32
|
+
else
|
|
33
|
+
filter_plugins(type, :type)
|
|
34
|
+
end
|
|
35
|
+
plugins.map { |plugin| plugin[:name] }
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class DatabaseSql
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
class_option :'db-name', desc: 'development database name'
|
|
12
|
+
class_option :'db-url', desc: 'development database connection url'
|
|
13
|
+
|
|
14
|
+
def self.source_root
|
|
15
|
+
File.expand_path('../', __FILE__)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def dotenv
|
|
19
|
+
dbname = options.fetch(:'db-name') { "postgres://localhost/#{app}" }
|
|
20
|
+
dburl = options.fetch(:'db-url') { app }
|
|
21
|
+
append_to_file "#{app}/.env", "DATABASE_NAME=#{dbname}"
|
|
22
|
+
append_to_file "#{app}/.env", "DATABASE_URL=#{dburl}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def config
|
|
26
|
+
template('_templates/db_helper.rb.tt', "#{app}/spec/db_helper.rb")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def gemfile
|
|
30
|
+
insert_into_file "#{app}/Gemfile", " gem 'database_cleaner'\n", after: "group :test do\n"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def travisyml
|
|
34
|
+
insert_into_file "#{app}/.travis.yml", " - postgresql\n", after: "services:\n"
|
|
35
|
+
insert_into_file "#{app}/.travis.yml", " postgresql: 9.3\n", after: "addons:\n"
|
|
36
|
+
insert_into_file "#{app}/.travis.yml", %Q( - psql -c 'create database "#{app}_test";' -U postgres\n), after: "before_script:\n"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Datamapper
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
|
|
12
|
+
def self.source_root
|
|
13
|
+
File.expand_path('../', __FILE__)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def bootrb
|
|
17
|
+
insert_into_file "#{app}/lib/boot.rb", :after => "#models\n" do
|
|
18
|
+
<<-DMREQ.strip_heredoc
|
|
19
|
+
require File.join($app_root, 'config/datamapper')
|
|
20
|
+
# insert require statements for models here
|
|
21
|
+
DataMapper.finalize
|
|
22
|
+
DMREQ
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def config
|
|
27
|
+
template('_templates/datamapper.rb.tt', "#{app}/config/datamapper.rb")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def gemfile
|
|
31
|
+
content = <<-DMGEMS.strip_heredoc
|
|
32
|
+
group :datamapper do
|
|
33
|
+
gem 'dm-aspects'
|
|
34
|
+
gem 'dm-aggregates'
|
|
35
|
+
gem 'dm-core'
|
|
36
|
+
gem 'dm-migrations'
|
|
37
|
+
gem 'dm-pager'
|
|
38
|
+
gem 'dm-postgres-adapter'
|
|
39
|
+
gem 'dm-postgres-types'
|
|
40
|
+
gem 'dm-timestamps'
|
|
41
|
+
gem 'dm-transactions'
|
|
42
|
+
gem 'dm-validations'
|
|
43
|
+
end
|
|
44
|
+
DMGEMS
|
|
45
|
+
append_to_file "#{app}/Gemfile", content
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Grunt
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
|
|
12
|
+
def self.source_root
|
|
13
|
+
File.expand_path('../', __FILE__)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def config
|
|
17
|
+
template '_templates/.bowerrc', "#{app}/.bowerrc"
|
|
18
|
+
template '_templates/bower.json.tt', "#{app}/bower.json"
|
|
19
|
+
template '_templates/Gruntfile.coffee.tt', "#{app}/Gruntfile.coffee"
|
|
20
|
+
template '_templates/package.json.tt', "#{app}/package.json"
|
|
21
|
+
directory '_config', "#{app}/.grunt"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
data/lib/daiku/{_app/config/honeybadger.rb → plugins/honeybadger/_templates/honeybadger.rb.tt}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Honeybadger
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
class_option :'honeybadger-private-key', desc: "Honeybadger Private API Key"
|
|
12
|
+
class_option :'honeybadger-public-key', desc: "Honeybadger Private API Key"
|
|
13
|
+
|
|
14
|
+
def self.source_root
|
|
15
|
+
File.expand_path('../', __FILE__)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def bootrb
|
|
19
|
+
insert_into_file "#{app}/lib/boot.rb", "require File.join($app_root, 'config/honeybadger')\n", after: "#errors\n"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def config
|
|
23
|
+
template('_templates/honeybadger.rb.tt', "#{app}/config/honeybadger.rb")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def dotenv
|
|
27
|
+
honeybadger_private_key = options.fetch(:'honeybadger-private-key') { '' }
|
|
28
|
+
honeybadger_public_key = options.fetch(:'honeybadger-public-key') { '' }
|
|
29
|
+
append_to_file "#{app}/.env", "HONEYBADGER_PRIVATE_KEY=#{honeybadger_private_key}"
|
|
30
|
+
append_to_file "#{app}/.env", "HONEYBADGER_PUBLIC_KEY=#{honeybadger_public_key}"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def gemfile
|
|
34
|
+
insert_into_file "#{app}/Gemfile", "gem 'honeybadger'\n", after: "gem 'escape_utils'\n"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def rackup
|
|
38
|
+
insert_into_file "#{app}/config.ru", "use Honeybadger::Rack::ErrorNotifier\n", after: "# middleware stack\n"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Newrelic
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
|
|
12
|
+
def self.source_root
|
|
13
|
+
File.expand_path('../', __FILE__)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def gemfile
|
|
17
|
+
insert_into_file "#{app}/Gemfile", " gem 'newrelic_rpm'\n", after: "group :production, :staging do\n"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Sidekiq
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
|
|
12
|
+
def self.source_root
|
|
13
|
+
File.expand_path('../', __FILE__)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def bootrb
|
|
17
|
+
insert_into_file "#{app}/lib/boot.rb", "require File.join($app_root, 'config/sidekiq')\n", after: "# jobs\n"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def config
|
|
21
|
+
template('_templates/sidekiq.rb.tt', "#{app}/config/sidekiq.rb")
|
|
22
|
+
empty_directory("#{app}/lib/jobs")
|
|
23
|
+
create_file("#{app}/lib/jobs/.gitkeep", "")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def dotenv
|
|
27
|
+
append_to_file "#{app}/.env", "SIDEKIQ_USERNAME=#{app}\n"
|
|
28
|
+
append_to_file "#{app}/.env", "SIDEKIQ_PASSWORD=#{app}\n"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def gemfile
|
|
32
|
+
insert_into_file "#{app}/Gemfile", "gem 'sidekiq'\n", after: "gem 'puma', require: false\n"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def procfile
|
|
36
|
+
append_to_file "#{app}/Procfile", "sidekiq: bundle exec sidekiq -q default -r ./lib/boot.rb\n"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def rackup
|
|
40
|
+
content = <<-SKMW.strip_heredoc
|
|
41
|
+
require 'sidekiq/web'
|
|
42
|
+
map '/sidekiq' do
|
|
43
|
+
Sidekiq::Web.use Rack::Auth::Basic do |username, password|
|
|
44
|
+
username == ENV['SIDEKIQ_USERNAME'] && password == ENV['SIDEKIQ_PASSWORD']
|
|
45
|
+
end
|
|
46
|
+
run Sidekiq::Web
|
|
47
|
+
SKMW
|
|
48
|
+
append_to_file "#{app}/config.ru", content
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'thor'
|
|
4
|
+
|
|
5
|
+
module Daiku
|
|
6
|
+
class Plugins
|
|
7
|
+
class Vcr
|
|
8
|
+
class CLI < ::Thor::Group
|
|
9
|
+
include ::Thor::Actions
|
|
10
|
+
argument :app
|
|
11
|
+
|
|
12
|
+
def self.source_root
|
|
13
|
+
File.expand_path('../', __FILE__)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def config
|
|
17
|
+
template('_templates/vcr_helper.rb.tt', "#{app}/spec/vcr_helper.rb")
|
|
18
|
+
empty_directory("#{app}/spec/_cassettes")
|
|
19
|
+
create_file("#{app}/spec/_cassettes/.gitkeep", "")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def gemfile
|
|
23
|
+
insert_into_file "#{app}/Gemfile", after: " gem 'mocha', require: 'mocha/setup'\n" do
|
|
24
|
+
" gem 'vcr', require: false\n" +
|
|
25
|
+
" gem 'webmock', '< 1.12', require: false\n"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/daiku/version.rb
CHANGED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
describe Daiku::Plugins do
|
|
6
|
+
subject { Daiku::Plugins }
|
|
7
|
+
let(:plugins) do
|
|
8
|
+
[
|
|
9
|
+
Daiku::Plugins::DatabaseSql,
|
|
10
|
+
Daiku::Plugins::Datamapper,
|
|
11
|
+
Daiku::Plugins::Grunt,
|
|
12
|
+
Daiku::Plugins::Honeybadger,
|
|
13
|
+
Daiku::Plugins::Newrelic,
|
|
14
|
+
Daiku::Plugins::Sidekiq,
|
|
15
|
+
Daiku::Plugins::Vcr
|
|
16
|
+
]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
let(:plugins_hash) do
|
|
20
|
+
hash = {}
|
|
21
|
+
plugins.each do |plugin|
|
|
22
|
+
hash[plugin.meta[:name]] = plugin.meta
|
|
23
|
+
end
|
|
24
|
+
hash
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
let(:plugin_names) do
|
|
28
|
+
plugins.map do |plugin|
|
|
29
|
+
plugin.meta[:name]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "can find plugins" do
|
|
34
|
+
subject.find_plugins.must_equal plugins
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "can register plugins" do
|
|
38
|
+
subject.register_plugins.must_equal plugins_hash
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "returns true if a plugin of given type is present" do
|
|
42
|
+
subject.has_plugins?('models').must_equal true
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "returns false if a plugin of given type is NOT present" do
|
|
46
|
+
subject.has_plugins?('example').must_equal false
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "can filter plugins by type" do
|
|
50
|
+
subject.filter_plugins('models', :type).must_equal [subject::Datamapper.meta]
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "returns names of all plugins" do
|
|
54
|
+
subject.plugin_names.must_equal plugin_names
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "returns names of plugins of type: models" do
|
|
58
|
+
subject.plugin_names('models').must_equal ['datamapper']
|
|
59
|
+
end
|
|
60
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
ENV['RACK_ENV'] = 'test'
|
|
4
|
+
|
|
5
|
+
lib_path = File.expand_path('../../lib', __FILE__)
|
|
6
|
+
($:.unshift lib_path) unless ($:.include? lib_path)
|
|
7
|
+
|
|
8
|
+
Bundler.setup(:default, ENV['RACK_ENV'])
|
|
9
|
+
|
|
10
|
+
require 'daiku'
|
|
11
|
+
require 'minitest/autorun'
|
|
12
|
+
require 'minitest/reporters'
|
|
13
|
+
|
|
14
|
+
MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
|
|
15
|
+
|
|
16
|
+
require 'mocha/setup'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: daiku
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eric Marden
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-12-
|
|
11
|
+
date: 2014-12-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -70,6 +70,7 @@ files:
|
|
|
70
70
|
- lib/daiku.rb
|
|
71
71
|
- lib/daiku/_app/.env.tt
|
|
72
72
|
- lib/daiku/_app/.gitignore
|
|
73
|
+
- lib/daiku/_app/.node-version
|
|
73
74
|
- lib/daiku/_app/.ruby-version.tt
|
|
74
75
|
- lib/daiku/_app/.slugignore
|
|
75
76
|
- lib/daiku/_app/.travis.yml.tt
|
|
@@ -84,7 +85,7 @@ files:
|
|
|
84
85
|
- lib/daiku/_app/assets/stylesheets/app.scss
|
|
85
86
|
- lib/daiku/_app/bin/console
|
|
86
87
|
- lib/daiku/_app/config.ru.tt
|
|
87
|
-
- lib/daiku/_app/config/
|
|
88
|
+
- lib/daiku/_app/config/pony.rb.tt
|
|
88
89
|
- lib/daiku/_app/config/puma.rb
|
|
89
90
|
- lib/daiku/_app/lib/boot.rb.tt
|
|
90
91
|
- lib/daiku/_app/lib/core_ext/frame_options.rb
|
|
@@ -102,25 +103,44 @@ files:
|
|
|
102
103
|
- lib/daiku/_app/spec/spec_helper.rb
|
|
103
104
|
- lib/daiku/_app/views/index.slim.tt
|
|
104
105
|
- lib/daiku/_app/views/layout.slim
|
|
105
|
-
- lib/daiku/_grunt/.bowerrc
|
|
106
|
-
- lib/daiku/_grunt/.grunt/aliases.yaml
|
|
107
|
-
- lib/daiku/_grunt/.grunt/coffee.coffee
|
|
108
|
-
- lib/daiku/_grunt/.grunt/imagemin.coffee
|
|
109
|
-
- lib/daiku/_grunt/.grunt/robotstxt.coffee
|
|
110
|
-
- lib/daiku/_grunt/.grunt/sass.coffee
|
|
111
|
-
- lib/daiku/_grunt/.grunt/slim.coffee
|
|
112
|
-
- lib/daiku/_grunt/.grunt/uglify.coffee
|
|
113
|
-
- lib/daiku/_grunt/Gruntfile.coffee
|
|
114
|
-
- lib/daiku/_grunt/bower.json.tt
|
|
115
|
-
- lib/daiku/_grunt/package.json.tt
|
|
116
|
-
- lib/daiku/_templates/bower.json.tt
|
|
117
|
-
- lib/daiku/_templates/datamapper.rb.tt
|
|
118
|
-
- lib/daiku/_templates/db_helper.rb
|
|
119
|
-
- lib/daiku/_templates/pony.rb.tt
|
|
120
|
-
- lib/daiku/_templates/sidekiq.rb.tt
|
|
121
|
-
- lib/daiku/_templates/vcr_helper.rb
|
|
122
106
|
- lib/daiku/cli.rb
|
|
107
|
+
- lib/daiku/core_ext.rb
|
|
108
|
+
- lib/daiku/plugin.rb
|
|
109
|
+
- lib/daiku/plugins.rb
|
|
110
|
+
- lib/daiku/plugins/database-sql.rb
|
|
111
|
+
- lib/daiku/plugins/database-sql/_templates/db_helper.rb.tt
|
|
112
|
+
- lib/daiku/plugins/database-sql/cli.rb
|
|
113
|
+
- lib/daiku/plugins/datamapper.rb
|
|
114
|
+
- lib/daiku/plugins/datamapper/_templates/datamapper.rb.tt
|
|
115
|
+
- lib/daiku/plugins/datamapper/cli.rb
|
|
116
|
+
- lib/daiku/plugins/grunt.rb
|
|
117
|
+
- lib/daiku/plugins/grunt/_config/aliases.yaml
|
|
118
|
+
- lib/daiku/plugins/grunt/_config/coffee.coffee
|
|
119
|
+
- lib/daiku/plugins/grunt/_config/imagemin.coffee
|
|
120
|
+
- lib/daiku/plugins/grunt/_config/robotstxt.coffee
|
|
121
|
+
- lib/daiku/plugins/grunt/_config/sass.coffee
|
|
122
|
+
- lib/daiku/plugins/grunt/_config/slim.coffee
|
|
123
|
+
- lib/daiku/plugins/grunt/_config/uglify.coffee
|
|
124
|
+
- lib/daiku/plugins/grunt/_templates/.bowerrc
|
|
125
|
+
- lib/daiku/plugins/grunt/_templates/.bowerrc.tt
|
|
126
|
+
- lib/daiku/plugins/grunt/_templates/Gruntfile.coffee
|
|
127
|
+
- lib/daiku/plugins/grunt/_templates/bower.json.tt
|
|
128
|
+
- lib/daiku/plugins/grunt/_templates/package.json.tt
|
|
129
|
+
- lib/daiku/plugins/grunt/cli.rb
|
|
130
|
+
- lib/daiku/plugins/honeybadger.rb
|
|
131
|
+
- lib/daiku/plugins/honeybadger/_templates/honeybadger.rb.tt
|
|
132
|
+
- lib/daiku/plugins/honeybadger/cli.rb
|
|
133
|
+
- lib/daiku/plugins/newrelic.rb
|
|
134
|
+
- lib/daiku/plugins/newrelic/cli.rb
|
|
135
|
+
- lib/daiku/plugins/sidekiq.rb
|
|
136
|
+
- lib/daiku/plugins/sidekiq/_templates/sidekiq.rb.tt
|
|
137
|
+
- lib/daiku/plugins/sidekiq/cli.rb
|
|
138
|
+
- lib/daiku/plugins/vcr.rb
|
|
139
|
+
- lib/daiku/plugins/vcr/_templates/vcr_helper.rb.tt
|
|
140
|
+
- lib/daiku/plugins/vcr/cli.rb
|
|
123
141
|
- lib/daiku/version.rb
|
|
142
|
+
- spec/daiku/plugins_spec.rb
|
|
143
|
+
- spec/spec_helper.rb
|
|
124
144
|
homepage: https://github.com/xentek/daiku
|
|
125
145
|
licenses:
|
|
126
146
|
- MIT
|
|
@@ -145,4 +165,6 @@ rubygems_version: 2.2.2
|
|
|
145
165
|
signing_key:
|
|
146
166
|
specification_version: 4
|
|
147
167
|
summary: Craft lightweight ruby applications
|
|
148
|
-
test_files:
|
|
168
|
+
test_files:
|
|
169
|
+
- spec/daiku/plugins_spec.rb
|
|
170
|
+
- spec/spec_helper.rb
|