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