sinatraband 0.1.6 → 0.2
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/bin/app.rb +44 -30
- data/bin/helper.rb +10 -10
- data/lib/templates/Gemfile.erb +6 -0
- data/lib/templates/app.erb +7 -5
- data/lib/templates/controllers/controller.erb +17 -17
- data/lib/templates/db/connection.erb +2 -0
- data/lib/templates/db/migrate/migration.erb +14 -0
- data/lib/templates/models/model.erb +11 -20
- data/lib/templates/rakefile.erb +2 -0
- metadata +44 -36
- data/lib/templates/database.erb +0 -7
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2c2a69bf80cf74e6a52023dbf56bb13303c2e3da
|
4
|
+
data.tar.gz: d5d90224627f06ef502a737e5992baf74138d4ba
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1a819b441a132259b034a13627ddcad196fafcb471394985880f16336e3a508dccde53d40346c6ed3f3b37319e0583a537d7fa9fc2b49c99b76cec65fc633bd7
|
7
|
+
data.tar.gz: c32046a3219fc251aca15ae49bbd1e26289e3ea4ec738651e821774af372c2c8db987a6d412ef45f9f9cc4fe3af08baaa0a88209beec5bac47eaa2fa1f2625f5
|
data/bin/app.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require 'erb'
|
3
|
+
require 'active_support/inflector'
|
3
4
|
require_relative './helper.rb'
|
4
5
|
|
5
6
|
class App
|
@@ -7,25 +8,25 @@ class App
|
|
7
8
|
|
8
9
|
def proccess_arguments
|
9
10
|
if ARGV.empty?
|
10
|
-
put_error_and_quit :
|
11
|
+
put_error_and_quit error_message: "Error: Missing arguments"
|
11
12
|
end
|
12
13
|
|
13
14
|
#Get the global current path
|
14
|
-
@root =
|
15
|
+
@root = "#{Pathname(__FILE__).dirname.realpath.to_s}/../lib/templates"
|
15
16
|
|
16
17
|
#Defines operation
|
17
18
|
case ARGV[0].downcase
|
18
19
|
when "create"
|
19
|
-
#Get
|
20
|
+
#Get the App name
|
20
21
|
if ARGV[1].nil?
|
21
|
-
put_error_and_quit :
|
22
|
+
put_error_and_quit error_message: "Error: Missing arguments for create action"
|
22
23
|
else
|
23
24
|
@name = ARGV[1]
|
24
25
|
create_app
|
25
26
|
end
|
26
27
|
when "model"
|
27
28
|
if ARGV[1].nil?
|
28
|
-
put_error_and_quit :
|
29
|
+
put_error_and_quit error_message: "Error: Missing arguments for model action"
|
29
30
|
else
|
30
31
|
if ARGV.length > 2
|
31
32
|
model_properties = Array.new
|
@@ -35,52 +36,65 @@ class App
|
|
35
36
|
end
|
36
37
|
end
|
37
38
|
end
|
38
|
-
create_model :
|
39
|
+
create_model model_name: ARGV[1], model_properties: model_properties
|
39
40
|
end
|
40
41
|
else
|
41
|
-
put_error_and_quit :
|
42
|
+
put_error_and_quit error_message: "Error: Unknow arguments"
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
45
46
|
def create_app
|
46
|
-
#Creates
|
47
|
-
mkdir :
|
47
|
+
#Creates the App diretory
|
48
|
+
mkdir directory: "./#{@name}"
|
48
49
|
|
49
|
-
#Creates
|
50
|
-
|
50
|
+
#Creates the Models diretory
|
51
|
+
mkdir directory: "./#{@name}/models"
|
51
52
|
|
52
|
-
#Creates
|
53
|
-
|
53
|
+
#Creates the Controllers diretory
|
54
|
+
mkdir directory: "./#{@name}/controllers"
|
54
55
|
|
55
|
-
#Creates
|
56
|
-
mkdir :
|
56
|
+
#Creates the View diretory
|
57
|
+
mkdir directory: "./#{@name}/views"
|
57
58
|
|
58
|
-
#Creates
|
59
|
-
mkdir :
|
59
|
+
#Creates the Database diretory
|
60
|
+
mkdir directory: "./#{@name}/db"
|
61
|
+
mkdir directory: "./#{@name}/db/migrate"
|
60
62
|
|
61
|
-
#Creates
|
62
|
-
|
63
|
+
#Creates the Gemfile
|
64
|
+
generate_file_from_template directory: "", template: "Gemfile", final_file: "Gemfile", extension: ""
|
63
65
|
|
64
|
-
#Creates
|
65
|
-
generate_file_from_template :
|
66
|
+
#Creates the Rakefile file
|
67
|
+
generate_file_from_template directory: "", template: "rakefile", final_file: "rakefile", extension: ".rb"
|
68
|
+
|
69
|
+
#Creates the App file
|
70
|
+
generate_file_from_template directory: "", template: "app", final_file: "app", extension: ".rb"
|
71
|
+
|
72
|
+
#Creates the Database file
|
73
|
+
generate_file_from_template directory: "/db", template: "connection", final_file: "connection", extension: ".rb"
|
74
|
+
|
75
|
+
#Creates the index file
|
76
|
+
generate_file_from_template directory: "/views", template: "index", final_file: "index", extension: ".erb"
|
66
77
|
end
|
67
78
|
|
68
|
-
def create_model input={:
|
79
|
+
def create_model input={model_name: '', model_properties: {}}
|
69
80
|
if input[:model_properties].nil?
|
70
|
-
put_error_and_quit :
|
81
|
+
put_error_and_quit error_message: "Error: Missing arguments for model action"
|
71
82
|
end
|
72
83
|
|
73
84
|
@model_name = input[:model_name].capitalize
|
74
|
-
@model_properties = elaborates_model_properties :
|
85
|
+
@model_properties = elaborates_model_properties model_properties: input[:model_properties]
|
86
|
+
|
87
|
+
#Creates the Model file
|
88
|
+
generate_file_from_template directory: "/models", template: "model", final_file: input[:model_name].downcase, extension: ".rb"
|
75
89
|
|
76
|
-
#Creates
|
77
|
-
generate_file_from_template :
|
90
|
+
#Creates the Controller file
|
91
|
+
generate_file_from_template directory: "/controllers", template: "controller", final_file: input[:model_name].downcase.pluralize, extension: ".rb"
|
78
92
|
|
79
|
-
#Creates
|
80
|
-
generate_file_from_template :
|
93
|
+
#Creates the migration file
|
94
|
+
generate_file_from_template directory: "/db/migrate", template: "migration", final_file: "#{Time.now.utc.strftime("%Y%m%d%H%M%S")}_create_#{input[:model_name].downcase}", extension: ".rb"
|
81
95
|
|
82
|
-
#Creates
|
83
|
-
mkdir :
|
96
|
+
#Creates the View diretory
|
97
|
+
mkdir directory: ".#{@name}/views/#{input[:model_name].downcase.pluralize}"
|
84
98
|
end
|
85
99
|
|
86
100
|
end
|
data/bin/helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
def generate_file_from_template input={:
|
1
|
+
def generate_file_from_template input={directory: "./#{@name}", template: '', final_file: '', extension: ''}
|
2
2
|
|
3
|
-
file_name = "./#{@name}#{input[:directory]}/#{input[:final_file]}
|
3
|
+
file_name = "./#{@name}#{input[:directory]}/#{input[:final_file]}#{input[:extension]}"
|
4
4
|
|
5
5
|
if File.exists?(file_name) && File.file?(file_name)
|
6
6
|
File.delete(file_name)
|
@@ -11,20 +11,20 @@ def generate_file_from_template input={:directory => './'+@name, :template => ''
|
|
11
11
|
begin
|
12
12
|
file_template = ERB.new(File.open("#{@root}#{input[:directory]}/#{input[:template]}.erb").read)
|
13
13
|
rescue (Errno::ENOENT)
|
14
|
-
put_error_and_quit "Error: Missing template for file #{@root}#{input[:directory]}/#{input[:template]}
|
14
|
+
put_error_and_quit "Error: Missing template for file #{@root}#{input[:directory]}/#{input[:template]}#{input[:extension]}."
|
15
15
|
end
|
16
16
|
|
17
17
|
begin
|
18
18
|
f.write(file_template.result(binding))
|
19
|
-
puts ".#{input[:directory]}/#{input[:final_file]}
|
19
|
+
puts ".#{input[:directory]}/#{input[:final_file]}#{input[:extension]} file created."
|
20
20
|
rescue (Errno::ENOENT)
|
21
|
-
put_error_and_quit "Error creating #{input[:final_file]}
|
21
|
+
put_error_and_quit "Error creating #{input[:final_file]}#{input[:extension]}."
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
|
27
|
-
def mkdir input={:
|
27
|
+
def mkdir input={directory: './'+@name}
|
28
28
|
begin
|
29
29
|
Dir.mkdir input[:directory]
|
30
30
|
puts "#{input[:directory]} directory created."
|
@@ -34,18 +34,18 @@ def mkdir input={:directory => './'+@name}
|
|
34
34
|
end
|
35
35
|
|
36
36
|
|
37
|
-
def elaborates_model_properties input={:
|
37
|
+
def elaborates_model_properties input={model_properties: ''}
|
38
38
|
|
39
39
|
new_model_properties = Array.new
|
40
40
|
|
41
41
|
input[:model_properties].each do |model_property|
|
42
42
|
name = model_property.to_s.split(':')[0].downcase
|
43
|
-
type = model_property.to_s.split(':')[1].
|
43
|
+
type = model_property.to_s.split(':')[1].downcase
|
44
44
|
|
45
45
|
if type == "Datetime" then type = "DateTime" end
|
46
46
|
|
47
47
|
if !["id", "created_at", "updated_at"].include? name
|
48
|
-
new_model_properties <<
|
48
|
+
new_model_properties << "t.#{type} :#{name}"
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -53,7 +53,7 @@ def elaborates_model_properties input={:model_properties => ''}
|
|
53
53
|
end
|
54
54
|
|
55
55
|
|
56
|
-
def put_error_and_quit input={:
|
56
|
+
def put_error_and_quit input={error_message: 'An error has ocorred.'}
|
57
57
|
puts input[:error_message]
|
58
58
|
exit
|
59
59
|
end
|
data/lib/templates/app.erb
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
|
3
3
|
# Loads database configuration
|
4
|
-
require_relative './
|
4
|
+
require_relative './db/connection.rb'
|
5
5
|
|
6
6
|
# Loads all models in models directory
|
7
7
|
Dir["./models/*.rb"].each {|file| require_relative file }
|
8
8
|
|
9
|
-
# Perform basic sanity checks and initialize all relationships
|
10
|
-
DataMapper.finalize
|
11
|
-
|
12
9
|
# Enables session
|
13
10
|
enable :sessions
|
14
11
|
|
15
12
|
# Loads all controllers in controllers directory
|
16
|
-
Dir["./controllers/*.rb"].each {|file| require_relative file }
|
13
|
+
Dir["./controllers/*.rb"].each {|file| require_relative file }
|
14
|
+
|
15
|
+
# Default root_route
|
16
|
+
get '/' do
|
17
|
+
erb :'index'
|
18
|
+
end
|
@@ -1,38 +1,38 @@
|
|
1
|
-
get '/<%= @model_name.downcase %>' do
|
2
|
-
@<%= @model_name.downcase %> = <%= @model_name %>.all
|
3
|
-
erb :'<%= @model_name.downcase %>/index'
|
1
|
+
get '/<%= @model_name.downcase.pluralize %>' do
|
2
|
+
@<%= @model_name.downcase.pluralize %> = <%= @model_name %>.all
|
3
|
+
erb :'<%= @model_name.downcase.pluralize %>/index'
|
4
4
|
end
|
5
5
|
|
6
|
-
get '/<%= @model_name.downcase %>/new' do
|
7
|
-
erb :'<%= @model_name.downcase %>/new'
|
6
|
+
get '/<%= @model_name.downcase.pluralize %>/new' do
|
7
|
+
erb :'<%= @model_name.downcase.pluralize %>/new'
|
8
8
|
end
|
9
9
|
|
10
|
-
post '/<%= @model_name.downcase %>/create' do
|
10
|
+
post '/<%= @model_name.downcase.pluralize %>/create' do
|
11
11
|
@<%= @model_name.downcase %> = <%= @model_name %>.new(params)
|
12
12
|
if @<%= @model_name.downcase %>.save
|
13
|
-
redirect '/<%= @model_name.downcase %>'
|
13
|
+
redirect '/<%= @model_name.downcase.pluralize %>'
|
14
14
|
else
|
15
|
-
erb :'<%= @model_name.downcase %>/new'
|
15
|
+
erb :'<%= @model_name.downcase.pluralize %>/new'
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
get '/<%= @model_name.downcase %>/edit/:id' do
|
20
|
-
@<%= @model_name.downcase %> = <%= @model_name %>.
|
21
|
-
erb :'<%= @model_name.downcase %>/edit'
|
19
|
+
get '/<%= @model_name.downcase.pluralize %>/edit/:id' do
|
20
|
+
@<%= @model_name.downcase %> = <%= @model_name %>.where(params[:id]).first
|
21
|
+
erb :'<%= @model_name.downcase.pluralize %>/edit'
|
22
22
|
end
|
23
23
|
|
24
|
-
post '/<%= @model_name.downcase %>/update/:id' do
|
25
|
-
@<%= @model_name.downcase %> = <%= @model_name %>.
|
24
|
+
post '/<%= @model_name.downcase.pluralize %>/update/:id' do
|
25
|
+
@<%= @model_name.downcase %> = <%= @model_name %>.where(params[:id]).first
|
26
26
|
|
27
27
|
if @<%= @model_name.downcase %>.update(params)
|
28
28
|
redirect '/<%= @model_name.downcase %>'
|
29
29
|
else
|
30
|
-
erb :'<%= @model_name.downcase %>/edit'
|
30
|
+
erb :'<%= @model_name.downcase.pluralize %>/edit'
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
get '/<%= @model_name.downcase %>/delete/:id' do
|
35
|
-
@<%= @model_name.downcase %> = <%= @model_name %>.
|
34
|
+
get '/<%= @model_name.downcase.pluralize %>/delete/:id' do
|
35
|
+
@<%= @model_name.downcase %> = <%= @model_name %>.where(params[:id]).first
|
36
36
|
@<%= @model_name.downcase %>.destroy
|
37
|
-
redirect '/<%= @model_name.downcase %>'
|
37
|
+
redirect '/<%= @model_name.downcase.pluralize %>'
|
38
38
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Create<%=@model_name%> < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
create_table :<%=@model_name.downcase.pluralize%> do |t|
|
4
|
+
<% @model_properties.each do |property|%>
|
5
|
+
<%= property %>
|
6
|
+
<% end %>
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
drop_table :<%=@model_name.downcase.pluralize%>
|
13
|
+
end
|
14
|
+
end
|
@@ -1,30 +1,21 @@
|
|
1
|
-
class <%= @model_name %>
|
2
|
-
include DataMapper::Resource
|
3
|
-
|
4
|
-
property :id, Serial
|
5
|
-
<% @model_properties.each do |property|%>
|
6
|
-
<%= property %>
|
7
|
-
<% end%>
|
8
|
-
property :created_at, DateTime
|
9
|
-
|
10
|
-
property :updated_at, DateTime
|
11
|
-
|
12
|
-
#validates_absence_of
|
1
|
+
class <%= @model_name %> < ActiveRecord::Base
|
13
2
|
#validates_acceptance_of
|
14
|
-
#
|
3
|
+
#validates_associated
|
15
4
|
#validates_confirmation_of
|
5
|
+
#validates_exclusion_of
|
16
6
|
#validates_format_of
|
7
|
+
#validates_inclusion_of
|
17
8
|
#validates_length_of
|
18
|
-
#validates_with_method
|
19
9
|
#validates_numericality_of
|
20
|
-
#validates_primitive_type_of
|
21
10
|
#validates_presence_of
|
22
11
|
#validates_uniqueness_of
|
23
|
-
#
|
12
|
+
#validates_each
|
24
13
|
|
25
|
-
#
|
14
|
+
#validate :custom_method
|
26
15
|
|
27
|
-
|
16
|
+
#def custom_method
|
17
|
+
# errors.add(:field, "that's an error") if
|
18
|
+
# some_condition != true
|
19
|
+
#end
|
28
20
|
|
29
|
-
|
30
|
-
<%= @model_name %>.auto_upgrade!
|
21
|
+
end
|
metadata
CHANGED
@@ -1,61 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatraband
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.2'
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Julio Bueno
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
date: 2013-11-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Ruby gem to create a basic scaffold sinatra app with activerecord.
|
17
28
|
email: julioce@gmail.com
|
18
|
-
executables:
|
29
|
+
executables:
|
19
30
|
- sinatraband
|
20
31
|
extensions: []
|
21
|
-
|
22
32
|
extra_rdoc_files: []
|
23
|
-
|
24
|
-
files:
|
33
|
+
files:
|
25
34
|
- lib/templates/controllers/controller.erb
|
26
35
|
- lib/templates/models/model.erb
|
27
36
|
- lib/templates/views/index.erb
|
28
37
|
- lib/templates/app.erb
|
29
|
-
- lib/templates/
|
38
|
+
- lib/templates/Gemfile.erb
|
39
|
+
- lib/templates/rakefile.erb
|
40
|
+
- lib/templates/db/migrate/migration.erb
|
41
|
+
- lib/templates/db/connection.erb
|
30
42
|
- bin/app.rb
|
31
43
|
- bin/helper.rb
|
32
44
|
- bin/sinatraband
|
33
45
|
homepage: https://github.com/julioce/SinatraBand
|
34
|
-
licenses:
|
35
|
-
|
46
|
+
licenses:
|
47
|
+
- OSL-3.0
|
48
|
+
metadata: {}
|
36
49
|
post_install_message:
|
37
50
|
rdoc_options: []
|
38
|
-
|
39
|
-
require_paths:
|
51
|
+
require_paths:
|
40
52
|
- lib
|
41
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: "0"
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
53
63
|
requirements: []
|
54
|
-
|
55
64
|
rubyforge_project:
|
56
|
-
rubygems_version: 1.
|
65
|
+
rubygems_version: 2.1.11
|
57
66
|
signing_key:
|
58
|
-
specification_version:
|
59
|
-
summary: Sinatra app generator
|
67
|
+
specification_version: 4
|
68
|
+
summary: Sinatra simple app generator
|
60
69
|
test_files: []
|
61
|
-
|