29. Por quê Thor?
Plataforma Tecnologia, José Valim 2009
30. class AppGenerator < Thor::Group
def create_app_folders
empty_directory “app/models”
empty_directory “app/controllers”
end
def copy_config_files
copy_file “config/routes.rb”
end
end
Plataforma Tecnologia, José Valim 2009
31. class AppGenerator < Thor::Group
def create_app_folders
empty_directory “app/models”
empty_directory “app/controllers”
end
def copy_config_files
copy_file “config/routes.rb”
end
end
Plataforma Tecnologia, José Valim 2009
32. class AppGenerator < Thor::Group
def create_app_folders
empty_directory “app/models”
empty_directory “app/controllers”
end
def copy_config_files
copy_file “config/routes.rb”
end
end
Plataforma Tecnologia, José Valim 2009
51. Invocações
Plataforma Tecnologia, José Valim 2009
52. class ResourceGenerator < Thor::Group
def run_dependencies
invoke ModelGenerator
invoke ControllerGenerator
invoke “testunit:resource”
end
end
Plataforma Tecnologia, José Valim 2009
53. class ResourceGenerator < Thor::Group
def run_dependencies
invoke ModelGenerator
invoke ControllerGenerator
invoke “testunit:resource”
end
end
Plataforma Tecnologia, José Valim 2009
65. Qual a diferença entre
geradores de código e
tarefas (como rake)?
Plataforma Tecnologia, José Valim 2009
66. Geradores de código são
um grupo de tarefas
Plataforma Tecnologia, José Valim 2009
67. class Alphabet < Thor
def a
print :a
end
def b
print :b
end
end
$ thor alphabet:a #=> “a”
$ thor alphabet:b #=> “b”
Plataforma Tecnologia, José Valim 2009
68. class Alphabet < Thor
def a
print :a
end
def b
print :b
end
end
$ thor alphabet:a #=> “a”
$ thor alphabet:b #=> “b”
Plataforma Tecnologia, José Valim 2009
69. class Alphabet < Thor
def a
print :a
end
def b
print :b
end
end
$ thor alphabet:a #=> “a”
$ thor alphabet:b #=> “b”
Plataforma Tecnologia, José Valim 2009
70. class Alphabet < Thor::Group
def a
print :a
end
def b
print :b
end
end
$ thor alphabet #=> “ab”
Plataforma Tecnologia, José Valim 2009
71. class Alphabet < Thor::Group
def a
print :a
end
def b
print :b
end
end
$ thor alphabet #=> “ab”
Plataforma Tecnologia, José Valim 2009
86. prepend_file “environments/test.rb”
“config.gem "rspec"”
prepend_file “environments/test.rb” do
“config.gem "rspec"”
end
Plataforma Tecnologia, José Valim 2009
87. append_file “environments/test.rb”
“config.gem "rspec"”
append_file “environments/test.rb” do
“config.gem "rspec"”
end
Plataforma Tecnologia, José Valim 2009
88. flag = "Rails::Initializer.run do |config|n"
inject_into_file "config/environment.rb",
"config.gem :thor",
:after => flag
Plataforma Tecnologia, José Valim 2009
114. require File.join(File.dirname(__FILE__),
'config', 'boot')
require 'rake/testtask'
require 'rake/rdoctask'
require 'thor/rake_compat'
class Default < Thor
include Thor::RakeCompat
require 'rails/tasks'
end
Plataforma Tecnologia, José Valim 2009
115. require File.join(File.dirname(__FILE__),
'config', 'boot')
require 'rake/testtask'
require 'rake/rdoctask'
require 'thor/rake_compat'
class Default < Thor
include Thor::RakeCompat
require 'rails/tasks'
end
Plataforma Tecnologia, José Valim 2009
116. require File.join(File.dirname(__FILE__),
'config', 'boot')
require 'rake/testtask'
require 'rake/rdoctask'
require 'thor/rake_compat'
class Default < Thor
include Thor::RakeCompat
require 'rails/tasks'
end
Plataforma Tecnologia, José Valim 2009
117. require File.join(File.dirname(__FILE__),
'config', 'boot')
require 'rake/testtask'
require 'rake/rdoctask'
require 'thor/rake_compat'
class Default < Thor
include Thor::RakeCompat
require 'rails/tasks'
end
Plataforma Tecnologia, José Valim 2009
118. Show me the code!
Plataforma Tecnologia, José Valim 2009
119. ?!
@josevalim
http://plataformatec.com.br
jose@plataformatec.com.br
Plataforma Tecnologia, José Valim 2009
120. blog.plataformatec.com.br
@josevalim
http://plataformatec.com.br
jose@plataformatec.com.br
Plataforma Tecnologia, José Valim 2009