dindi 0.6.0 → 0.7.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 +7 -0
- data/Gemfile +3 -5
- data/Gemfile.lock +46 -30
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/dindi/command_parser.rb +9 -17
- data/lib/dindi/file_helper.rb +9 -8
- data/lib/dindi/file_templates/{1.9.2 → latest}/Gemfile.erb +2 -1
- data/lib/dindi/file_templates/latest/config.ru.erb +47 -0
- data/lib/dindi/file_templates/latest/database.yml.erb +19 -0
- data/lib/dindi/file_templates/latest/models.rb.erb +14 -0
- data/lib/dindi/file_templates/shared/debug_on.rb.erb +29 -0
- data/lib/dindi/file_templates/shared/deploy_setting.rb.erb +9 -0
- data/lib/dindi/file_templates/shared/docs.haml.erb +2 -2
- data/lib/dindi/file_templates/shared/project_name.rb.erb +3 -1
- metadata +25 -73
- data/lib/dindi/file_templates/1.9.1/Gemfile.erb +0 -11
- data/lib/dindi/file_templates/1.9.1/config.ru.erb +0 -53
- data/lib/dindi/file_templates/1.9.1/database.yml.erb +0 -9
- data/lib/dindi/file_templates/1.9.1/models.rb.erb +0 -8
- data/lib/dindi/file_templates/1.9.2/config.ru.erb +0 -53
- data/lib/dindi/file_templates/1.9.2/database.yml.erb +0 -9
- data/lib/dindi/file_templates/1.9.2/models.rb.erb +0 -8
- data/lib/dindi/file_templates/shared/helpers.rb.erb +0 -38
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c956f4624d962f10a0e542ff9db37a3158a269c3
|
4
|
+
data.tar.gz: b8360f89f5902eeae21cc10ac3502860a2b9444f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 84a5cd15bc12e9acf41c9999c87e4d9529c08e77c1e741ed7b38ca977af1ca26d956c1cdea1e2cd5dcec8811e8667b51f4445c93fbf7b9a6d3d7b060bc4435c2
|
7
|
+
data.tar.gz: 820740421268764012a53355ccd6592c7b98afa0e87b92c97ce89ee21a059a732305993701ad91eeeec481916dc97bdc0ebdfd006d58686b9b966b558a0af63e
|
data/Gemfile
CHANGED
@@ -3,13 +3,11 @@ source "http://rubygems.org"
|
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
gem "colorize"
|
6
|
-
gem "bundler"
|
6
|
+
gem "bundler"
|
7
7
|
|
8
8
|
# Add dependencies to develop your gem here.
|
9
9
|
# Include everything needed to run rake, tests, features, etc.
|
10
10
|
group :development do
|
11
|
-
gem "
|
12
|
-
gem "
|
13
|
-
gem "jeweler", "~> 1.6.4"
|
14
|
-
gem "simplecov", ">= 0"
|
11
|
+
gem "bundler"
|
12
|
+
gem "jeweler"
|
15
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,41 +1,57 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
addressable (2.3.6)
|
5
|
+
builder (3.2.2)
|
6
|
+
colorize (0.7.3)
|
7
|
+
descendants_tracker (0.0.4)
|
8
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
9
|
+
faraday (0.9.0)
|
10
|
+
multipart-post (>= 1.2, < 3)
|
11
|
+
git (1.2.7)
|
12
|
+
github_api (0.11.3)
|
13
|
+
addressable (~> 2.3)
|
14
|
+
descendants_tracker (~> 0.0.1)
|
15
|
+
faraday (~> 0.8, < 0.10)
|
16
|
+
hashie (>= 1.2)
|
17
|
+
multi_json (>= 1.7.5, < 2.0)
|
18
|
+
nokogiri (~> 1.6.0)
|
19
|
+
oauth2
|
20
|
+
hashie (3.1.0)
|
21
|
+
highline (1.6.21)
|
22
|
+
jeweler (2.0.1)
|
23
|
+
builder
|
24
|
+
bundler (>= 1.0)
|
14
25
|
git (>= 1.2.5)
|
26
|
+
github_api
|
27
|
+
highline (>= 1.6.15)
|
28
|
+
nokogiri (>= 1.5.10)
|
15
29
|
rake
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
30
|
+
rdoc
|
31
|
+
json (1.8.1)
|
32
|
+
jwt (1.0.0)
|
33
|
+
mini_portile (0.6.0)
|
34
|
+
multi_json (1.10.1)
|
35
|
+
multi_xml (0.5.5)
|
36
|
+
multipart-post (2.0.0)
|
37
|
+
nokogiri (1.6.2.1)
|
38
|
+
mini_portile (= 0.6.0)
|
39
|
+
oauth2 (0.9.4)
|
40
|
+
faraday (>= 0.8, < 0.10)
|
41
|
+
jwt (~> 1.0)
|
42
|
+
multi_json (~> 1.3)
|
43
|
+
multi_xml (~> 0.5)
|
44
|
+
rack (~> 1.2)
|
45
|
+
rack (1.5.2)
|
46
|
+
rake (10.3.2)
|
47
|
+
rdoc (4.1.1)
|
48
|
+
json (~> 1.4)
|
49
|
+
thread_safe (0.3.4)
|
32
50
|
|
33
51
|
PLATFORMS
|
34
52
|
ruby
|
35
53
|
|
36
54
|
DEPENDENCIES
|
37
|
-
bundler
|
55
|
+
bundler
|
38
56
|
colorize
|
39
|
-
jeweler
|
40
|
-
shoulda
|
41
|
-
simplecov
|
57
|
+
jeweler
|
data/Rakefile
CHANGED
@@ -17,7 +17,7 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "dindi"
|
18
18
|
gem.homepage = "http://github.com/samchandra/dindi"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Dindi is a hit
|
20
|
+
gem.summary = %Q{Dindi is a hit from Sinatra}
|
21
21
|
gem.description = %Q{This gem will create a modular base for a new Sinatra app}
|
22
22
|
gem.email = "samuelchandra@yahoo.com"
|
23
23
|
gem.authors = ["Samuel Chandra"]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/lib/dindi/command_parser.rb
CHANGED
@@ -8,7 +8,9 @@ module Dindi
|
|
8
8
|
module CommandParser
|
9
9
|
|
10
10
|
def self.parse(args, options)
|
11
|
-
# The options specified on the command line will be collected in
|
11
|
+
# The options specified on the command line will be collected in
|
12
|
+
# *options*.
|
13
|
+
#
|
12
14
|
# We set the default value here
|
13
15
|
options.project_name = nil
|
14
16
|
|
@@ -20,12 +22,7 @@ module Dindi
|
|
20
22
|
|
21
23
|
opts.on("-n", "--name PROJECT_NAME",
|
22
24
|
"Specify your project name PROJECT_NAME that will be created") do |lib|
|
23
|
-
options.project_name = lib
|
24
|
-
end
|
25
|
-
|
26
|
-
opts.on("-r", "--ruby RUBY_VERSION",
|
27
|
-
"Set RUBY_VERSION to 1.9.1 for compatibility mode") do |ver|
|
28
|
-
options.ruby_version = ver
|
25
|
+
options.project_name = lib.downcase
|
29
26
|
end
|
30
27
|
|
31
28
|
# No argument, shows at tail. This will print an options summary.
|
@@ -40,17 +37,12 @@ module Dindi
|
|
40
37
|
|
41
38
|
opts.parse!(args)
|
42
39
|
|
43
|
-
|
44
|
-
options.ruby_version = "1.9.2"
|
45
|
-
else
|
46
|
-
options.ruby_version = "1.9.1"
|
47
|
-
end
|
40
|
+
options.ruby_version = "latest"
|
48
41
|
|
49
|
-
# set project absolute dir
|
50
|
-
options.project_absolute_dir =
|
51
|
-
|
52
|
-
|
53
|
-
nil
|
42
|
+
# set project absolute dir
|
43
|
+
options.project_absolute_dir = nil
|
44
|
+
if options.project_name
|
45
|
+
options.project_absolute_dir = File.join(FileUtils.pwd, options.project_name)
|
54
46
|
end
|
55
47
|
|
56
48
|
rescue Exception => e
|
data/lib/dindi/file_helper.rb
CHANGED
@@ -7,8 +7,8 @@ module Dindi
|
|
7
7
|
|
8
8
|
def self.create_default_directories(options)
|
9
9
|
project_absolute_dir = options.project_absolute_dir
|
10
|
-
%w(tmp log public push views routes extlibs models helpers).each do |dir|
|
11
|
-
FileUtils.mkdir_p(project_absolute_dir
|
10
|
+
%w(tmp log public push views routes extlibs models helpers tests scripts).each do |dir|
|
11
|
+
FileUtils.mkdir_p(File.join(project_absolute_dir, dir))
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -19,8 +19,8 @@ module Dindi
|
|
19
19
|
# version specific file templates and shared template together
|
20
20
|
[ruby_version, "shared"].each do |dir_name|
|
21
21
|
|
22
|
-
Dir.glob(File.dirname(__FILE__)
|
23
|
-
filename =
|
22
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'file_templates', dir_name, '*')).each do |file|
|
23
|
+
filename = File.basename(file, ".*")
|
24
24
|
|
25
25
|
# read file as ERB templates
|
26
26
|
content = File.open(file, "r").read
|
@@ -45,15 +45,16 @@ module Dindi
|
|
45
45
|
project_absolute_dir = options.project_absolute_dir
|
46
46
|
|
47
47
|
# copy location for not common template files
|
48
|
-
special_location_hash = {"
|
49
|
-
"
|
50
|
-
"
|
48
|
+
special_location_hash = {"debug_on.rb" => File.join(project_absolute_dir, 'helpers', 'debug_on.rb'),
|
49
|
+
"deploy_setting.rb" => File.join(project_absolute_dir, 'helpers', 'deploy_setting.rb'),
|
50
|
+
"docs.haml" => File.join(project_absolute_dir, 'views', 'docs.haml'),
|
51
|
+
"project_name.rb" => File.join(project_absolute_dir, "#{options.project_name}.rb")
|
51
52
|
}
|
52
53
|
|
53
54
|
if special_location_hash[filename]
|
54
55
|
return special_location_hash[filename]
|
55
56
|
else
|
56
|
-
return
|
57
|
+
return File.join(project_absolute_dir, filename)
|
57
58
|
end
|
58
59
|
|
59
60
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
$: << "."
|
2
|
+
|
3
|
+
# we use bundler
|
4
|
+
require 'bundler/setup'
|
5
|
+
|
6
|
+
# modular sinatra app
|
7
|
+
require 'sinatra/base'
|
8
|
+
|
9
|
+
# gems
|
10
|
+
%w(logger json haml digest date time pony).each {|gem| require gem}
|
11
|
+
|
12
|
+
# helpers
|
13
|
+
Dir.glob("./helpers/*.rb").each {|helper| require helper}
|
14
|
+
|
15
|
+
# load db config and models
|
16
|
+
require 'models'
|
17
|
+
|
18
|
+
# extra library
|
19
|
+
Dir.glob("./extlibs/*.rb").each {|extlib| require extlib}
|
20
|
+
|
21
|
+
# controllers
|
22
|
+
Dir.glob("./routes/*.rb").each {|route| require route}
|
23
|
+
|
24
|
+
# app file
|
25
|
+
require '<%= options.project_name %>'
|
26
|
+
|
27
|
+
class Sinatra::Base
|
28
|
+
# helpers
|
29
|
+
include DebugOn
|
30
|
+
|
31
|
+
# set sinatra's variables
|
32
|
+
set :app_name, "<%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>"
|
33
|
+
set :app_logger, ::Logger.new(File.join(File.dirname(__FILE__), 'log', "<%= options.project_name %>.log"))
|
34
|
+
set :root, File.dirname(__FILE__)
|
35
|
+
set :environment, DeploySetting.environment
|
36
|
+
|
37
|
+
if settings.environment == :production
|
38
|
+
enable :sessions, :logging, :dump_errors
|
39
|
+
disable :run, :reload, :show_exceptions
|
40
|
+
else
|
41
|
+
enable :sessions, :logging, :dump_errors, :show_exceptions
|
42
|
+
disable :run, :reload
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
run <%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
production:
|
2
|
+
adapter: mysql2
|
3
|
+
username: root
|
4
|
+
password: password
|
5
|
+
host: localhost
|
6
|
+
timezone: SGT
|
7
|
+
reconnect: true
|
8
|
+
database: <%= options.project_name %>
|
9
|
+
encoding: utf8
|
10
|
+
|
11
|
+
development:
|
12
|
+
adapter: mysql2
|
13
|
+
username: root
|
14
|
+
password: password
|
15
|
+
host: localhost
|
16
|
+
timezone: SGT
|
17
|
+
reconnect: true
|
18
|
+
database: <%= options.project_name %>_dev
|
19
|
+
encoding: utf8
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'mysql2'
|
2
|
+
require 'active_record'
|
3
|
+
|
4
|
+
config = YAML.load_file(File.join(File.dirname(__FILE__), 'database.yml'))
|
5
|
+
|
6
|
+
if DeploySetting.environment == :production
|
7
|
+
ActiveRecord::Base.establish_connection(config["production"])
|
8
|
+
else
|
9
|
+
ActiveRecord::Base.establish_connection(config["development"])
|
10
|
+
end
|
11
|
+
|
12
|
+
ActiveRecord::Base.include_root_in_json = false
|
13
|
+
|
14
|
+
Dir.glob(File.join(File.dirname(__FILE__), "models", "*.rb")).each {|model| require model}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module DebugOn
|
2
|
+
|
3
|
+
def app_debug_on
|
4
|
+
settings.app_logger.info("===== START =====> #{Time.now.strftime("%d/%m/%Y %H:%M %p")}")
|
5
|
+
settings.app_logger.info(request.url)
|
6
|
+
settings.app_logger.info("Params:")
|
7
|
+
params.each do |key, value|
|
8
|
+
settings.app_logger.info("#{key} => #{value}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def app_logger(text)
|
13
|
+
settings.app_logger.info(text)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Basic Authentication
|
17
|
+
def protected!
|
18
|
+
unless authorized?
|
19
|
+
response['WWW-Authenticate'] = %(Basic realm="Restricted Area")
|
20
|
+
throw(:halt, [401, "Not authorized\n"])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def authorized?
|
25
|
+
@auth ||= Rack::Auth::Basic::Request.new(request.env)
|
26
|
+
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'password']
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
%html
|
2
2
|
%head
|
3
|
-
%title
|
3
|
+
%title Docs
|
4
4
|
%meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
|
5
5
|
%meta{:content => "NONE,NOARCHIVE", :name => "robots"}
|
6
6
|
%link{:href => "http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css", :rel => "stylesheet", :type => "text/css"}
|
@@ -25,7 +25,7 @@
|
|
25
25
|
%th{:width => "45%"} Description
|
26
26
|
%tfoot
|
27
27
|
%tr
|
28
|
-
%td{:colspan => "3"} Copyright ©
|
28
|
+
%td{:colspan => "3"} Copyright ©2014
|
29
29
|
%tbody
|
30
30
|
%tr
|
31
31
|
%td GET
|
@@ -1,5 +1,8 @@
|
|
1
1
|
class <%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %> < Sinatra::Base
|
2
2
|
|
3
|
+
# Routes
|
4
|
+
# use Cms
|
5
|
+
|
3
6
|
# index
|
4
7
|
get '/' do
|
5
8
|
'<%= options.project_name %>'
|
@@ -8,7 +11,6 @@ class <%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %> < Sinatra::Ba
|
|
8
11
|
# docs
|
9
12
|
get '/docs' do
|
10
13
|
protected!
|
11
|
-
@page_title = "Docs"
|
12
14
|
haml :docs, :layout => false
|
13
15
|
end
|
14
16
|
|
metadata
CHANGED
@@ -1,110 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dindi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Samuel Chandra
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-07-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: colorize
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: bundler
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 1.0.0
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.0.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: shoulda
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
31
|
+
- - '>='
|
52
32
|
- !ruby/object:Gem::Version
|
53
33
|
version: '0'
|
54
|
-
type: :
|
34
|
+
type: :runtime
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
|
-
- -
|
38
|
+
- - '>='
|
60
39
|
- !ruby/object:Gem::Version
|
61
40
|
version: '0'
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: bundler
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- -
|
45
|
+
- - '>='
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
47
|
+
version: '0'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- -
|
52
|
+
- - '>='
|
76
53
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
54
|
+
version: '0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: jeweler
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 1.6.4
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 1.6.4
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: simplecov
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
58
|
requirements:
|
99
|
-
- -
|
59
|
+
- - '>='
|
100
60
|
- !ruby/object:Gem::Version
|
101
61
|
version: '0'
|
102
62
|
type: :development
|
103
63
|
prerelease: false
|
104
64
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
65
|
requirements:
|
107
|
-
- -
|
66
|
+
- - '>='
|
108
67
|
- !ruby/object:Gem::Version
|
109
68
|
version: '0'
|
110
69
|
description: This gem will create a modular base for a new Sinatra app
|
@@ -126,45 +85,38 @@ files:
|
|
126
85
|
- lib/dindi.rb
|
127
86
|
- lib/dindi/command_parser.rb
|
128
87
|
- lib/dindi/file_helper.rb
|
129
|
-
- lib/dindi/file_templates/
|
130
|
-
- lib/dindi/file_templates/
|
131
|
-
- lib/dindi/file_templates/
|
132
|
-
- lib/dindi/file_templates/
|
133
|
-
- lib/dindi/file_templates/
|
134
|
-
- lib/dindi/file_templates/
|
135
|
-
- lib/dindi/file_templates/1.9.2/database.yml.erb
|
136
|
-
- lib/dindi/file_templates/1.9.2/models.rb.erb
|
88
|
+
- lib/dindi/file_templates/latest/Gemfile.erb
|
89
|
+
- lib/dindi/file_templates/latest/config.ru.erb
|
90
|
+
- lib/dindi/file_templates/latest/database.yml.erb
|
91
|
+
- lib/dindi/file_templates/latest/models.rb.erb
|
92
|
+
- lib/dindi/file_templates/shared/debug_on.rb.erb
|
93
|
+
- lib/dindi/file_templates/shared/deploy_setting.rb.erb
|
137
94
|
- lib/dindi/file_templates/shared/docs.haml.erb
|
138
|
-
- lib/dindi/file_templates/shared/helpers.rb.erb
|
139
95
|
- lib/dindi/file_templates/shared/project_name.rb.erb
|
140
96
|
- test/helper.rb
|
141
97
|
- test/test_dindi.rb
|
142
98
|
homepage: http://github.com/samchandra/dindi
|
143
99
|
licenses:
|
144
100
|
- MIT
|
101
|
+
metadata: {}
|
145
102
|
post_install_message:
|
146
103
|
rdoc_options: []
|
147
104
|
require_paths:
|
148
105
|
- lib
|
149
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
107
|
requirements:
|
152
|
-
- -
|
108
|
+
- - '>='
|
153
109
|
- !ruby/object:Gem::Version
|
154
110
|
version: '0'
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
hash: 4037155346142818555
|
158
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
112
|
requirements:
|
161
|
-
- -
|
113
|
+
- - '>='
|
162
114
|
- !ruby/object:Gem::Version
|
163
115
|
version: '0'
|
164
116
|
requirements: []
|
165
117
|
rubyforge_project:
|
166
|
-
rubygems_version:
|
118
|
+
rubygems_version: 2.0.3
|
167
119
|
signing_key:
|
168
|
-
specification_version:
|
169
|
-
summary: Dindi is a hit
|
120
|
+
specification_version: 4
|
121
|
+
summary: Dindi is a hit from Sinatra
|
170
122
|
test_files: []
|
@@ -1,53 +0,0 @@
|
|
1
|
-
$: << "."
|
2
|
-
|
3
|
-
# we use bundler
|
4
|
-
require 'bundler/setup'
|
5
|
-
|
6
|
-
# modular sinatra app
|
7
|
-
require 'sinatra/base'
|
8
|
-
|
9
|
-
# gems
|
10
|
-
%w(logger json haml csv digest date time activesupport pony).each {|lib| require lib}
|
11
|
-
|
12
|
-
# load db config and models
|
13
|
-
require 'models'
|
14
|
-
|
15
|
-
# extra library
|
16
|
-
Dir.glob("./extlibs/*.rb").each {|extlib| require extlib}
|
17
|
-
|
18
|
-
# helpers
|
19
|
-
Dir.glob("./helpers/*.rb").each {|helper| require helper}
|
20
|
-
|
21
|
-
# controllers
|
22
|
-
Dir.glob("./routes/*.rb").each {|route| require route}
|
23
|
-
|
24
|
-
# app file
|
25
|
-
require '<%= options.project_name %>'
|
26
|
-
|
27
|
-
# custom app logger different from sinatra logging
|
28
|
-
$APP_LOG = ::Logger.new("log/<%= options.project_name %>.log")
|
29
|
-
|
30
|
-
# app name
|
31
|
-
$APP_NAME = "<%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>"
|
32
|
-
|
33
|
-
class Sinatra::Base
|
34
|
-
# helpers
|
35
|
-
include DebugOn
|
36
|
-
|
37
|
-
# set sinatra's variables
|
38
|
-
set :root, ::File.dirname(__FILE__)
|
39
|
-
set :environment, :production
|
40
|
-
enable :sessions, :logging, :dump_errors, :show_exceptions
|
41
|
-
disable :run, :reload
|
42
|
-
end
|
43
|
-
|
44
|
-
# app routes
|
45
|
-
App = Rack::Builder.app do
|
46
|
-
# routes
|
47
|
-
# use Cms
|
48
|
-
|
49
|
-
run <%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>
|
50
|
-
end
|
51
|
-
|
52
|
-
# finally
|
53
|
-
run App
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'mysql2'
|
2
|
-
require 'activerecord'
|
3
|
-
|
4
|
-
config = YAML.load_file('database.yml')
|
5
|
-
ActiveRecord::Base.establish_connection(config["production"])
|
6
|
-
ActiveRecord::Base.include_root_in_json = false
|
7
|
-
|
8
|
-
Dir.glob("<%= project_absolute_dir %>/models/*.rb").each {|model| require model}
|
@@ -1,53 +0,0 @@
|
|
1
|
-
$: << "."
|
2
|
-
|
3
|
-
# we use bundler
|
4
|
-
require 'bundler/setup'
|
5
|
-
|
6
|
-
# modular sinatra app
|
7
|
-
require 'sinatra/base'
|
8
|
-
|
9
|
-
# gems
|
10
|
-
%w(logger json haml csv digest date time active_support pony).each {|lib| require lib}
|
11
|
-
|
12
|
-
# load db config and models
|
13
|
-
require 'models'
|
14
|
-
|
15
|
-
# extra library
|
16
|
-
Dir.glob("./extlibs/*.rb").each {|extlib| require extlib}
|
17
|
-
|
18
|
-
# helpers
|
19
|
-
Dir.glob("./helpers/*.rb").each {|helper| require helper}
|
20
|
-
|
21
|
-
# controllers
|
22
|
-
Dir.glob("./routes/*.rb").each {|route| require route}
|
23
|
-
|
24
|
-
# app file
|
25
|
-
require '<%= options.project_name %>'
|
26
|
-
|
27
|
-
# custom app logger different from sintra logging
|
28
|
-
$APP_LOG = ::Logger.new("log/<%= options.project_name %>.log")
|
29
|
-
|
30
|
-
# app name
|
31
|
-
$APP_NAME = "<%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>"
|
32
|
-
|
33
|
-
class Sinatra::Base
|
34
|
-
# helpers
|
35
|
-
include DebugOn
|
36
|
-
|
37
|
-
# set sinatra's variables
|
38
|
-
set :root, File.dirname(__FILE__)
|
39
|
-
set :environment, :production
|
40
|
-
enable :sessions, :logging, :dump_errors, :show_exceptions
|
41
|
-
disable :run, :reload
|
42
|
-
end
|
43
|
-
|
44
|
-
# app routes
|
45
|
-
App = Rack::Builder.app do
|
46
|
-
# routes
|
47
|
-
# use Cms
|
48
|
-
|
49
|
-
run <%= options.project_name.gsub(/(?:^|_)(.)/) { $1.upcase } %>
|
50
|
-
end
|
51
|
-
|
52
|
-
# finally
|
53
|
-
run App
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'mysql2'
|
2
|
-
require 'active_record'
|
3
|
-
|
4
|
-
config = YAML.load_file('database.yml')
|
5
|
-
ActiveRecord::Base.establish_connection(config["production"])
|
6
|
-
ActiveRecord::Base.include_root_in_json = false
|
7
|
-
|
8
|
-
Dir.glob("<%= project_absolute_dir %>/models/*.rb").each {|model| require model}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module DebugOn
|
2
|
-
|
3
|
-
def debug_on
|
4
|
-
logger.info("===== START =====> #{Time.now.strftime("%d/%m/%Y %H:%M %p")}")
|
5
|
-
logger.info(request.url)
|
6
|
-
logger.info("Params:")
|
7
|
-
params.each do |key, value|
|
8
|
-
logger.info("#{key} => #{value}")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def app_debug_on
|
13
|
-
$APP_LOG.info("===== START =====> #{Time.now.strftime("%d/%m/%Y %H:%M %p")}")
|
14
|
-
$APP_LOG.info(request.url)
|
15
|
-
$APP_LOG.info("Params:")
|
16
|
-
params.each do |key, value|
|
17
|
-
$APP_LOG.info("#{key} => #{value}")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def app_logger(text)
|
22
|
-
$APP_LOG.info(text)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Basic Authentication
|
26
|
-
def protected!
|
27
|
-
unless authorized?
|
28
|
-
response['WWW-Authenticate'] = %(Basic realm="Restricted Area")
|
29
|
-
throw(:halt, [401, "Not authorized\n"])
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def authorized?
|
34
|
-
@auth ||= Rack::Auth::Basic::Request.new(request.env)
|
35
|
-
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'dindidocs']
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|