sinatraband 0.1.6 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
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 :error_message => "Error: Missing arguments"
11
+ put_error_and_quit error_message: "Error: Missing arguments"
11
12
  end
12
13
 
13
14
  #Get the global current path
14
- @root = Pathname(__FILE__).dirname.realpath.to_s+"/../lib/templates"
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 de App name
20
+ #Get the App name
20
21
  if ARGV[1].nil?
21
- put_error_and_quit :error_message => "Error: Missing arguments for create action"
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 :error_message => "Error: Missing arguments for model action"
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 :model_name => ARGV[1], :model_properties => model_properties
39
+ create_model model_name: ARGV[1], model_properties: model_properties
39
40
  end
40
41
  else
41
- put_error_and_quit :error_message => "Error: Unknow arguments"
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 de App diretory
47
- mkdir :directory => "./#{@name}"
47
+ #Creates the App diretory
48
+ mkdir directory: "./#{@name}"
48
49
 
49
- #Creates de App file
50
- generate_file_from_template :directory => "", :template => "app", :final_file => "app", :extension => "rb"
50
+ #Creates the Models diretory
51
+ mkdir directory: "./#{@name}/models"
51
52
 
52
- #Creates de Database file
53
- generate_file_from_template :directory => "", :template => "database", :final_file => "database", :extension => "rb"
53
+ #Creates the Controllers diretory
54
+ mkdir directory: "./#{@name}/controllers"
54
55
 
55
- #Creates de Models diretory
56
- mkdir :directory => "./#{@name}/models"
56
+ #Creates the View diretory
57
+ mkdir directory: "./#{@name}/views"
57
58
 
58
- #Creates de Controllers diretory
59
- mkdir :directory => "./#{@name}/controllers"
59
+ #Creates the Database diretory
60
+ mkdir directory: "./#{@name}/db"
61
+ mkdir directory: "./#{@name}/db/migrate"
60
62
 
61
- #Creates de View diretory
62
- mkdir :directory => "./#{@name}/views"
63
+ #Creates the Gemfile
64
+ generate_file_from_template directory: "", template: "Gemfile", final_file: "Gemfile", extension: ""
63
65
 
64
- #Creates de index file
65
- generate_file_from_template :directory => "/views", :template => "index", :final_file => "index", :extension => "erb"
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={:model_name => '', :model_properties => {}}
79
+ def create_model input={model_name: '', model_properties: {}}
69
80
  if input[:model_properties].nil?
70
- put_error_and_quit :error_message => "Error: Missing arguments for model action"
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 :model_properties => input[: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 de Model file
77
- generate_file_from_template :directory => "/models", :template => "model", :final_file => input[:model_name].downcase, :extension => "rb"
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 de Controller file
80
- generate_file_from_template :directory => "/controllers", :template => "controller", :final_file => input[:model_name].downcase, :extension => "rb"
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 de View diretory
83
- mkdir :directory => ".#{@name}/views/"+input[:model_name].downcase
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={:directory => './'+@name, :template => '', :final_file => '', :extension => ''}
1
+ def generate_file_from_template input={directory: "./#{@name}", template: '', final_file: '', extension: ''}
2
2
 
3
- file_name = "./#{@name}#{input[:directory]}/#{input[:final_file]}.#{input[:extension]}"
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]}.#{input[:extension]}."
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]}.#{input[:extension]} file created."
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]}.#{input[:extension]}."
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={:directory => './'+@name}
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={:model_properties => ''}
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].capitalize
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 << "property :" + name + ", " + type
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={:error_message => 'An error has ocorred.'}
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
@@ -0,0 +1,6 @@
1
+ # Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ gem "mysql2"
5
+ gem "rake"
6
+ gem "sinatra-activerecord"
@@ -1,16 +1,18 @@
1
1
  require 'sinatra'
2
2
 
3
3
  # Loads database configuration
4
- require_relative './database.rb'
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 %>.get(params[:id])
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 %>.get(params[:id])
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 %>.get(params[:id])
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,2 @@
1
+ require 'sinatra/activerecord'
2
+ set :database, "mysql2://root:@localhost/<%= @name %>"
@@ -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
- #validates_with_block
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
- #validates_within
12
+ #validates_each
24
13
 
25
- #validates_with_method
14
+ #validate :custom_method
26
15
 
27
- end
16
+ #def custom_method
17
+ # errors.add(:field, "that's an error") if
18
+ # some_condition != true
19
+ #end
28
20
 
29
- # Automatically create the <%= @model_name %> table if you haven't already
30
- <%= @model_name %>.auto_upgrade!
21
+ end
@@ -0,0 +1,2 @@
1
+ require "sinatra/activerecord/rake"
2
+ require "./app.rb"
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
- prerelease:
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
- date: 2012-09-20 00:00:00 Z
14
- dependencies: []
15
-
16
- description: Ruby gem to create a basic scaffold sinatra app.
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/database.erb
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
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
47
- required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
- requirements:
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.8.24
65
+ rubygems_version: 2.1.11
57
66
  signing_key:
58
- specification_version: 3
59
- summary: Sinatra app generator
67
+ specification_version: 4
68
+ summary: Sinatra simple app generator
60
69
  test_files: []
61
-
@@ -1,7 +0,0 @@
1
- require 'data_mapper'
2
-
3
- # A MySQL connection:
4
- DataMapper.setup(:default, 'mysql://root:@127.0.0.1/<%= @name %>')
5
-
6
- # Set all String properties to have a default length of 255
7
- DataMapper::Property::String.length(255)