rocketstarter 0.0.3 → 0.1.0

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.
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.1.0 2008-07-10
2
+
3
+ * update project status to beta.
4
+ * add rspec files.(but basic test only)
5
+ * don't use -g option with rails command when a git repository is empty.
6
+ * fix some bugs.
7
+
1
8
  == 0.0.3 2008-06-30
2
9
 
3
10
  * change default of plugin-list name from "$HOME/useful_plugins" to "$HOME/.rocket_starter_pluginlist".
@@ -168,7 +168,7 @@ put gitignore files
168
168
  when "git"
169
169
  exec_shell_command "mkdir rails docs"
170
170
  managed_chdir("#{@scm_root}/rails")
171
- rails_option = " -g"
171
+ rails_option = ""
172
172
  else
173
173
  exec_shell_command "mkdir rails docs"
174
174
  managed_chdir("#{@scm_root}/rails")
@@ -283,12 +283,12 @@ put gitignore files
283
283
 
284
284
  def managed_chdir(path)
285
285
  notice("change directory to " + path)
286
- Dir::chdir(path)
286
+ Dir::chdir(path) unless @options[:emulate]
287
287
  end
288
288
 
289
289
  def set_scm_password
290
290
  @scm_password = ""
291
- @scm_password = '--password=' + @options[:scmpassword] if @options[:scmpassword]
291
+ @scm_password = '--password="' + @options[:scmpassword] + '"' if @options[:scmpassword]
292
292
  end
293
293
 
294
294
  def get_current_directory
@@ -104,7 +104,7 @@ class Rocket_starter_options < Hash
104
104
  @@command_line_params[:createdb] = true
105
105
  end
106
106
 
107
- opts.on( '--dbpassword', 'write password to config/database.yml file' ) do |p|
107
+ opts.on( '--dbpassword=password', 'write password to config/database.yml file' ) do |p|
108
108
  @@command_line_params[:dbpassword] = p
109
109
  end
110
110
 
@@ -182,7 +182,8 @@ class Rocket_starter_options < Hash
182
182
  File.open(self[:rocket_starter_conf_path], "w") do |yamlfile|
183
183
  yamlfile.puts "# Rocket_starter conf file"
184
184
  yamlfile.puts ""
185
- yamlfile.puts Rocket_starter_options::static_default_values.to_yaml
185
+ output = Rocket_starter_options::static_default_values.merge(@@command_line_params)
186
+ yamlfile.puts output.to_yaml
186
187
  end
187
188
  puts "Put template yaml file to #{self[:rocket_starter_conf_path]}"
188
189
  rescue
@@ -196,7 +197,7 @@ class Rocket_starter_options < Hash
196
197
  Rocket_starter_options::error_with_show_usage "plugin list path is empty. set --pluginlist_path paramater." if "" == self[:pluginlist_path]
197
198
 
198
199
  unless "y" == Readline.readline("Would a template of plugin list file put to #{self[:pluginlist_path]}? [y/N] > ").downcase
199
- puts "Set your plugin list path to --pluginlist_path paramater."
200
+ puts "Set your plugin list path to --listpath paramater."
200
201
  exit
201
202
  end
202
203
 
@@ -1,8 +1,8 @@
1
1
  module Rocketstarter
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 0
5
- TINY = 3
4
+ MINOR = 1
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,11 +1,95 @@
1
+ # This file was wrote by Japanese with UTF8
2
+ # This spec needs sandbox directory, please make "~/sandbox/rocketstarter" directory first!
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
5
+ require "~/Sources/secret.rb"
6
+
2
7
 
3
- # Time to add your specs!
4
- # http://rspec.info/
5
- describe "Place your specs here" do
8
+ describe "のspec用のメソッドが動作するとき:" do
9
+ it "Hash.includes_hash?を使うと、ハッシュを含むかどうかがわかる事" do
10
+ target = {"1" => "a", "2" => "b", "3" => "c"}
11
+ target.includes_hash?(target).should be_true
12
+ target.includes_hash?({"1" => "a"}).should be_true
13
+ target.includes_hash?({"5" => "a"}).should be_false
14
+ target.includes_hash?(target.merge({"4" => "d"})).should be_false
15
+ end
6
16
 
7
- it "find this spec in spec directory" do
8
- violated "Be sure to write your specs"
17
+ it "build_option_stringはハッシュからパラメータ用文字列を生成できる事" do
18
+ options = {
19
+ "bystring" => "string",
20
+ "byflag" => "true",
21
+ "project" => "testproj",
22
+ }
23
+ build_option_string(options).should == " --project=testproj --byflag --bystring=string"
24
+ end
25
+
26
+ it 'options.delete("project")を使うと、プロジェクト名を取り出し、ハッシュからは抜ける事' do
27
+ options = {
28
+ "bystring" => "string",
29
+ "byflag" => "true",
30
+ "project" => "testproj",
31
+ }
32
+ project_name = options.delete("project")
33
+ project_name.should == "testproj"
34
+ build_option_string(options).should == " --byflag --bystring=string"
35
+ end
36
+ end
37
+
38
+ describe "のspecが実行された場合:" do
39
+ before do
40
+ move_to_sandbox
41
+ clean_up_sandbox
9
42
  end
10
43
 
44
+ it "sandboxに移動できる事" do
45
+ move_to_sandbox.should be_true
46
+ end
47
+
48
+ it "sandboxをclean upできる事" do
49
+ clean_up_sandbox.should be_true
50
+ end
51
+
11
52
  end
53
+
54
+
55
+ describe "に--initオプションを付けた場合:" do
56
+ before do
57
+ move_to_sandbox
58
+ clean_up_sandbox
59
+ setup_config_directory
60
+ end
61
+
62
+ it "最初はconfigファイルとプラグインリストファイルが無い事" do
63
+ FileTest::file?(path_of_config_file).should be_false
64
+ end
65
+
66
+ it "--initを付けるとconfigファイルとプラグインリストファイルのテンプレートが生成される事" do
67
+ setup_config_file.should be_true
68
+ FileTest::file?(path_of_config_file).should be_true
69
+ FileTest::file?(path_of_plugin_list_file).should be_true
70
+ end
71
+
72
+ it "最初の初期化時はファイルを上書きしない事" do
73
+ setup_config_file.should be_true
74
+ FileTest::file?(path_of_config_file).should be_true
75
+ FileTest::file?(path_of_plugin_list_file).should be_true
76
+ end
77
+
78
+ it "2回目の初期化時はファイルの上書き確認が表示される事" do
79
+ setup_config_file.should be_true
80
+ setup_config_file(nil, 4).should be_true
81
+ FileTest::file?(path_of_config_file).should be_true
82
+ FileTest::file?(path_of_plugin_list_file).should be_true
83
+ end
84
+
85
+ it "--init時に他のパラメータを付けておくと、デフォルトではなく、パラメータを保存する事" do
86
+ options = {
87
+ "database" => "sqlite3",
88
+ "verbose" => "true",
89
+ }
90
+
91
+ setup_config_file(options).should be_true
92
+ parse_setting.includes_hash?(options).should be_true
93
+ end
94
+ end
95
+
data/spec/spec_helper.rb CHANGED
@@ -8,3 +8,151 @@ end
8
8
 
9
9
  $:.unshift(File.dirname(__FILE__) + '/../lib')
10
10
  require 'rocketstarter'
11
+
12
+
13
+ def move_to_sandbox
14
+ sandbox_path = test_dir
15
+ unless FileTest::directory?(sandbox_path)
16
+ puts 'This spec needs a sandbox directory at ' + sandbox_path
17
+ puts 'If you want to countinue, please make it first!'
18
+ return false
19
+ end
20
+ Dir::chdir(sandbox_path)
21
+ if sandbox_path == Dir::pwd
22
+ return true
23
+ else
24
+ return false
25
+ end
26
+ end
27
+
28
+ def clean_up_sandbox
29
+ `rm -rf ./gitproj`
30
+ return false unless 0 == $?
31
+ `rm -rf ./svnproj`
32
+ return false unless 0 == $?
33
+ `rm -rf ./setting`
34
+ return false unless 0 == $?
35
+ return true
36
+ end
37
+
38
+ def test_dir
39
+ ENV["HOME"] + "/sandbox/rocketstarter"
40
+ end
41
+
42
+ def path_of_config_file
43
+ test_dir + "/setting/rocketstarter"
44
+ end
45
+
46
+ def path_of_plugin_list_file
47
+ test_dir + "/setting/pluginlist"
48
+ end
49
+
50
+ def path_of_program
51
+ "/opt/local/bin/rocketstarter"
52
+ end
53
+
54
+ def setup_config_directory
55
+ Dir.mkdir("setting")
56
+ end
57
+
58
+ def build_option_string(options)
59
+ option_string = ""
60
+ options.each_pair do |key, value|
61
+ if "true" == value or "false" == value
62
+ option_string << " --#{key}"
63
+ else
64
+ option_string << " --#{key}=#{value}"
65
+ end
66
+ end
67
+ option_string
68
+ end
69
+
70
+ def setup_config_file(options = nil, how_many = 2)
71
+ option_string = ""
72
+ if options
73
+ option_string = build_option_string(options)
74
+ end
75
+ commandline = "|#{path_of_program} --init --conf=#{path_of_config_file} --listpath=#{path_of_plugin_list_file} #{option_string}"
76
+ open(commandline, "r+") do |rs|
77
+ how_many.times do
78
+ rs.puts "y"
79
+ end
80
+ # rs.puts "y" # ask to create for config
81
+ # rs.puts "y" # ask to over write for config
82
+ # rs.puts "y" # ask to create for plugin list
83
+ # rs.puts "y" # ask to over write for plugin list
84
+ end
85
+ return true
86
+ end
87
+
88
+ =begin
89
+ /Users/maimuzo/sandbox/rocketstarter/setting% rocketstarter --check
90
+ current variables
91
+ scmtype:svn
92
+ skip_plugins:false
93
+ emulate:false
94
+ log_file:/Users/maimuzo/rocket_starter.log
95
+ check:true
96
+ scmuri:
97
+ verbose:true
98
+ pluginlist_path:/Users/maimuzo/.rocket_starter_pluginlist
99
+ external:false
100
+ scmpassword:mogemoge
101
+ ignoredatabase:true
102
+ logging:true
103
+ createdb:true
104
+ rapt:true
105
+ skip_commit_for_plugins:false
106
+ rocket_starter_conf_path:/Users/maimuzo/.rocket_starter
107
+ project:--check
108
+ database:mysql
109
+ sudo:false
110
+ skip_netbeans:false
111
+ dbpassword:
112
+ init:false
113
+
114
+ =end
115
+
116
+ def parse_setting
117
+ parsed_param = {}
118
+ result = `#{path_of_program} --check --conf=#{path_of_config_file}`
119
+ return false unless 0 == $?
120
+ result.each do |line|
121
+ temp = line.scan(/^(.+):(.+)$/)
122
+ parsed_param[temp[0][0]] = temp[0][1] if temp.size > 0
123
+ end
124
+ parsed_param
125
+ end
126
+
127
+ class Hash
128
+ def includes_hash?(target)
129
+ result = target.reject do |key, value|
130
+ !self[key].nil? and value == self[key]
131
+ end
132
+ result.empty?
133
+ end
134
+ end
135
+
136
+ def create_repos_with(options)
137
+ project_name = options.delete("project")
138
+ option_string = build_option_string(options)
139
+ result = `#{path_of_program} #{project_name} --conf=#{path_of_config_file} #{option_string}`
140
+ return false unless 0 == $?
141
+ result
142
+ end
143
+
144
+ def clean_up_at_svn_repository(secret)
145
+ begin
146
+ uri = secret["scmuri"]
147
+ password = secret["scmpassword"]
148
+ `svn delete #{uri}/trunk -m "clean up trunk for test" --password #{password}`
149
+ raise "command error" unless 0 == $?
150
+ `svn delete #{uri}/branches -m "clean up branches for test" --password #{password}`
151
+ raise "command error" unless 0 == $?
152
+ `svn delete #{uri}/tags -m "clean up tags for test" --password #{password}`
153
+ raise "command error" unless 0 == $?
154
+ rescue
155
+ puts "This message was showed when the subversion repository is empty. In this case is no probrem."
156
+ return false
157
+ end
158
+ end
data/website/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <h1>rocket starter</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rocketstarter"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/rocketstarter" class="numbers">0.0.3</a>
36
+ <a href="http://rubyforge.org/projects/rocketstarter" class="numbers">0.1.0</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;rocketstarter&#8217;</h1>
39
39
 
@@ -63,6 +63,11 @@ If you want, you can use the git and the RaPT gem and a list of plugins.<br /></
63
63
  </ul>
64
64
 
65
65
 
66
+ <h2>Live video</h2>
67
+
68
+
69
+ <p><a target="_blank" href="http://www.nicovideo.jp/watch/sm3792334">GemCast.1 Rocketstarter live video(Japanese)</a></p><iframe width="312" height="176" src="http://ext.nicovideo.jp/thumb/sm3792334" scrolling="no" style="border:solid 1px #CCC;" frameborder="0"></iframe>
70
+
66
71
  <h2>Installing</h2>
67
72
 
68
73
 
@@ -183,7 +188,7 @@ rake install_gem</pre>
183
188
 
184
189
  <p>Comments are welcome. Send an email to <a href="mailto:maimuzo@gmail.com">maimuzo</a> via the <a href="http://groups.google.com/group/rocket-starter">forum</a></p>
185
190
  <p class="coda">
186
- <a href="maimuzo@gmail.com">Yusuke Ohmichi(maimuzo)</a>, 30th June 2008<br>
191
+ <a href="maimuzo@gmail.com">Yusuke Ohmichi(maimuzo)</a>, 11th July 2008<br>
187
192
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
188
193
  </p>
189
194
  </div>
data/website/index.txt CHANGED
@@ -20,6 +20,10 @@ h2. Features
20
20
  * write password to config/database.yml<br />
21
21
  * create databases before finish by 'rake db:create:all' command<br />
22
22
 
23
+ h2. Live video
24
+
25
+ <p><a target="_blank" href="http://www.nicovideo.jp/watch/sm3792334">GemCast.1 Rocketstarter live video(Japanese)</a></p><iframe width="312" height="176" src="http://ext.nicovideo.jp/thumb/sm3792334" scrolling="no" style="border:solid 1px #CCC;" frameborder="0"></iframe>
26
+
23
27
  h2. Installing
24
28
 
25
29
  <pre syntax="ruby">gem install rocketstarter</pre>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketstarter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yusuke Ohmichi(maimuzo)
@@ -30,7 +30,7 @@ cert_chain:
30
30
  KWTqcg==
31
31
  -----END CERTIFICATE-----
32
32
 
33
- date: 2008-06-30 00:00:00 +09:00
33
+ date: 2008-07-11 00:00:00 +09:00
34
34
  default_executable:
35
35
  dependencies: []
36
36
 
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  requirements: []
136
136
 
137
137
  rubyforge_project: rocketstarter
138
- rubygems_version: 1.1.1
138
+ rubygems_version: 1.2.0
139
139
  signing_key:
140
140
  specification_version: 2
141
141
  summary: When you want to create new rails applications, the Rocket-starter can set up basic directories and svn/git repositories for your applications.
metadata.gz.sig CHANGED
Binary file