Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
18456758
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
18456758
编写于
6月 23, 2009
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added metal generator.
上级
f03890e1
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
100 addition
and
12 deletion
+100
-12
railties/bin/gen
railties/bin/gen
+27
-0
railties/bin/rails
railties/bin/rails
+1
-1
railties/lib/generator/base.rb
railties/lib/generator/base.rb
+28
-6
railties/lib/generator/generators/app/app_generator.rb
railties/lib/generator/generators/app/app_generator.rb
+5
-3
railties/lib/generator/generators/metal/USAGE
railties/lib/generator/generators/metal/USAGE
+8
-0
railties/lib/generator/generators/metal/metal_generator.rb
railties/lib/generator/generators/metal/metal_generator.rb
+17
-0
railties/lib/generator/generators/metal/templates/metal.rb
railties/lib/generator/generators/metal/templates/metal.rb
+12
-0
railties/test/generator/app_test.rb
railties/test/generator/app_test.rb
+2
-2
未找到文件。
railties/bin/gen
0 → 100755
浏览文件 @
18456758
require File.dirname(__FILE__) + '/../lib/ruby_version_check'
Signal.trap("INT") { puts; exit }
require File.dirname(__FILE__) + '/../lib/rails/version'
if %w(--version -v).include? ARGV.first
puts "Rails #{Rails::VERSION::STRING}"
exit(0)
end
if ARGV.size == 0
puts "Please select a generator. Options: foo, bar"
return
else ARGV.size == 1
ARGV << "--help"
end
Dir[File.dirname(__FILE__) + '/../lib/generator/generators/*/*_generator.rb'].each do |file|
require file
end
name = ARGV.shift
if klass = Thor::Util.find_by_namespace("rails:generators:#{name}")
klass.start
else
puts "Could not find generator #{name}."
end
railties/bin/rails
浏览文件 @
18456758
...
...
@@ -10,4 +10,4 @@ end
ARGV << "--help" if ARGV.empty?
require File.dirname(__FILE__) + '/../lib/generator/generators/app/app_generator'
Rails::Generators::App.start
Rails::Generators::App
Generator
.start
railties/lib/generator/base.rb
浏览文件 @
18456758
...
...
@@ -23,9 +23,16 @@ class Base < Thor::Group
# Automatically sets the source root based on the class name.
#
def
self
.
source_root
@source_root
||=
begin
klass_name
=
self
.
name
.
gsub
(
/^Rails::Generators::/
,
''
)
File
.
expand_path
(
File
.
join
(
File
.
dirname
(
__FILE__
),
'generators'
,
klass_name
.
underscore
,
'templates'
))
@source_root
||=
File
.
expand_path
(
File
.
join
(
File
.
dirname
(
__FILE__
),
'generators'
,
generator_name
,
'templates'
))
end
# Convenience method to get the namespace from the class name.
#
def
self
.
namespace
(
name
=
nil
)
if
name
super
else
@namespace
||=
"rails:generators:
#{
generator_name
}
"
end
end
...
...
@@ -34,11 +41,26 @@ def self.source_root
# Use Rails default banner.
#
def
self
.
banner
"
#{
$0
}
#{
self
.
arguments
.
map
(
&
:usage
).
join
(
' '
)
}
[options]"
"
#{
$0
}
#{
generator_name
}
#{
self
.
arguments
.
map
(
&
:usage
).
join
(
' '
)
}
[options]"
end
# Removes the namespaces and get the generator name. For example,
# Rails::Generators::MetalGenerator will return "metal" as generator name.
#
# The name is used to set the namespace (in this case "rails:generators:metal")
# and to set the source root ("generators/metal/templates").
#
def
self
.
generator_name
@generator_name
||=
begin
klass_name
=
self
.
name
klass_name
.
gsub!
(
/^Rails::Generators::/
,
''
)
klass_name
.
gsub!
(
/Generator$/
,
''
)
klass_name
.
underscore
end
end
# Small macro to
ruby as an option to the generator with proper default
#
value plus an instance helper method
.
# Small macro to
add ruby as an option to the generator with proper
#
default value plus an instance helper method called shebang
.
#
def
self
.
add_shebang_option!
require
'rbconfig'
...
...
railties/lib/generator/generators/app/app_generator.rb
浏览文件 @
18456758
...
...
@@ -3,10 +3,8 @@
require
'active_support/secure_random'
module
Rails::Generators
class
App
<
Base
class
App
Generator
<
Base
DATABASES
=
%w( mysql oracle postgresql sqlite2 sqlite3 frontbase ibm_db )
namespace
"rails:app"
add_shebang_option!
argument
:app_path
,
:type
=>
:string
...
...
@@ -182,6 +180,10 @@ def app_secret
ActiveSupport
::
SecureRandom
.
hex
(
64
)
end
def
self
.
banner
"
#{
$0
}
#{
self
.
arguments
.
map
(
&
:usage
).
join
(
' '
)
}
[options]"
end
def
mysql_socket
@mysql_socket
||=
[
"/tmp/mysql.sock"
,
# default
...
...
railties/lib/generator/generators/metal/USAGE
0 → 100644
浏览文件 @
18456758
Description:
Cast some metal!
Examples:
`./script/generate metal poller`
This will create:
Metal: app/metal/poller.rb
railties/lib/generator/generators/metal/metal_generator.rb
0 → 100644
浏览文件 @
18456758
require
File
.
dirname
(
__FILE__
)
+
'/../../base'
module
Rails::Generators
class
MetalGenerator
<
Base
argument
:file_name
,
:type
=>
:string
def
create_file
template
"metal.rb"
,
"app/metal/
#{
file_name
}
.rb"
end
protected
def
class_name
file_name
.
classify
end
end
end
railties/lib/generator/generators/metal/templates/metal.rb
0 → 100644
浏览文件 @
18456758
# Allow the metal piece to run in isolation
require
(
File
.
dirname
(
__FILE__
)
+
"/../../config/environment"
)
unless
defined?
(
Rails
)
class
<
%= class_name %>
def self.call(env)
if env["PATH_INFO"] =
~
/^\/<%= file_name %>/
[
200
,
{
"Content-Type"
=>
"text/html"
},
[
"Hello, World!"
]]
else
[
404
,
{
"Content-Type"
=>
"text/html"
},
[
"Not Found"
]]
end
end
end
railties/test/generator/app_test.rb
浏览文件 @
18456758
...
...
@@ -122,11 +122,11 @@ def test_template_is_executed_when_supplied
protected
def
run_generator
(
args
=
[])
silence
(
:stdout
)
{
Rails
::
Generators
::
App
.
start
[
destination_root
].
concat
(
args
)
}
silence
(
:stdout
)
{
Rails
::
Generators
::
App
Generator
.
start
[
destination_root
].
concat
(
args
)
}
end
def
generator
(
options
=
{})
@generator
||=
Rails
::
Generators
::
App
.
new
([
destination_root
],
options
,
:root
=>
destination_root
)
@generator
||=
Rails
::
Generators
::
App
Generator
.
new
([
destination_root
],
options
,
:root
=>
destination_root
)
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录