rucola 0.0.1 → 0.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.
- data/ChangeLog +301 -0
- data/History.txt +51 -0
- data/Manifest.txt +12 -0
- data/README.txt +6 -7
- data/TODO +13 -8
- data/app_generators/rucola/rucola_generator.rb +1 -1
- data/app_generators/rucola/templates/app/controllers/application_controller.rb +2 -2
- data/app_generators/rucola/templates/test/controllers/test_application_controller.rb +22 -5
- data/app_generators/rucola/templates/test/test_helper.rb +3 -2
- data/config/hoe.rb +2 -2
- data/lib/autotest/discover.rb +9 -0
- data/lib/autotest/fail.png +0 -0
- data/lib/autotest/growl_images.rb +39 -0
- data/lib/autotest/pass.png +0 -0
- data/lib/autotest/rucola.rb +36 -0
- data/lib/autotest/sound.rb +52 -0
- data/lib/rucola/info_plist.rb +5 -0
- data/lib/rucola/initializer.rb +65 -113
- data/lib/rucola/nib.rb +2 -2
- data/lib/rucola/plugin.rb +57 -0
- data/lib/rucola/rucola_support/initialize_hooks.rb +7 -0
- data/lib/rucola/rucola_support/notifications/notifications.rb +67 -27
- data/lib/rucola/rucola_support/rc_app.rb +9 -0
- data/lib/rucola/tasks/main.rake +8 -4
- data/lib/rucola/tasks/xcode.rake +10 -6
- data/lib/rucola/test_helper.rb +14 -0
- data/lib/rucola/version.rb +1 -1
- data/lib/rucola/xcode.rb +11 -6
- data/rucola_generators/controller/controller_generator.rb +1 -1
- data/rucola_generators/controller/templates/test_controller_template.rb.erb +14 -5
- data/rucola_generators/document_model/document_model_generator.rb +3 -3
- data/rucola_generators/document_model/templates/test_document_model_template.rb.erb +18 -5
- data/rucola_generators/rucola_plugin/USAGE +6 -0
- data/rucola_generators/rucola_plugin/rucola_plugin_generator.rb +63 -0
- data/rucola_generators/rucola_plugin/templates/init.rb.erb +25 -0
- data/rucola_generators/window_controller/templates/test_window_controller_template.rb.erb +21 -5
- data/rucola_generators/window_controller/window_controller_generator.rb +1 -1
- data/test/test_document_model_generator.rb +8 -2
- data/test/test_info_plist.rb +4 -0
- data/test/test_initializer.rb +80 -0
- data/test/test_nib.rb +9 -0
- data/test/test_notifications.rb +38 -19
- data/test/test_plugin.rb +48 -0
- data/test/test_rc_app.rb +5 -0
- data/test/test_rucola_plugin_generator.rb +65 -0
- data/test/test_xcode.rb +3 -3
- data/website/index.html +49 -7
- data/website/index.txt +34 -4
- metadata +37 -2
data/test/test_rc_app.rb
CHANGED
@@ -12,6 +12,11 @@ describe 'Rucola::RCApp' do
|
|
12
12
|
::RUBYCOCOA_ROOT = Pathname.new(@root_path)
|
13
13
|
end
|
14
14
|
|
15
|
+
it "should return the name of the application" do
|
16
|
+
OSX::NSDictionary.expects(:dictionaryWithContentsOfFile).returns({'CFBundleExecutable' => 'PhatApp'})
|
17
|
+
RCApp.app_name.should == 'PhatApp'
|
18
|
+
end
|
19
|
+
|
15
20
|
it "should return the path to the current root dir" do
|
16
21
|
RCApp.root_path.should == @root_path
|
17
22
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
2
|
+
|
3
|
+
class TestRucolaPluginGenerator < Test::Unit::TestCase
|
4
|
+
include RubiGen::GeneratorTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
bare_setup
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
bare_teardown
|
12
|
+
end
|
13
|
+
|
14
|
+
# Some generator-related assertions:
|
15
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
16
|
+
# assert_directory_exists(name)
|
17
|
+
# assert_generated_class(name, &block)
|
18
|
+
# assert_generated_module(name, &block)
|
19
|
+
# assert_generated_test_for(name, &block)
|
20
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
21
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
22
|
+
#
|
23
|
+
# Other helper methods are:
|
24
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
25
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
26
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
27
|
+
|
28
|
+
def test_generator_without_options
|
29
|
+
name = "my_plugin"
|
30
|
+
run_generator('rucola_plugin', [name], sources)
|
31
|
+
plugin_dir = 'vendor/plugins/my_plugin'
|
32
|
+
assert_directory_exists(plugin_dir)
|
33
|
+
assert_directory_exists("#{plugin_dir}/generators")
|
34
|
+
assert_directory_exists("#{plugin_dir}/lib")
|
35
|
+
assert_directory_exists("#{plugin_dir}/tasks")
|
36
|
+
assert_directory_exists("#{plugin_dir}/test")
|
37
|
+
assert_generated_file("#{plugin_dir}/init.rb") do |file|
|
38
|
+
assert_match /class MyPlugin \< Plugin/, file
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_generator_with_spec_option
|
43
|
+
name = "my_plugin"
|
44
|
+
run_generator('rucola_plugin', [name], sources, :rspec => true)
|
45
|
+
plugin_dir = 'vendor/plugins/my_plugin'
|
46
|
+
assert_directory_exists(plugin_dir)
|
47
|
+
assert_directory_exists("#{plugin_dir}/generators")
|
48
|
+
assert_directory_exists("#{plugin_dir}/lib")
|
49
|
+
assert_directory_exists("#{plugin_dir}/tasks")
|
50
|
+
assert_directory_exists("#{plugin_dir}/spec")
|
51
|
+
assert_generated_file("#{plugin_dir}/init.rb") do |file|
|
52
|
+
assert_match /class MyPlugin \< Plugin/, file
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def sources
|
58
|
+
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
59
|
+
]
|
60
|
+
end
|
61
|
+
|
62
|
+
def generator_path
|
63
|
+
"rucola_generators"
|
64
|
+
end
|
65
|
+
end
|
data/test/test_xcode.rb
CHANGED
@@ -16,13 +16,13 @@ describe 'Xcode' do
|
|
16
16
|
@object_values = { 'isa' => 'PBXNativeTarget', 'name' => @name, 'buildPhases' => [] }.to_ns
|
17
17
|
@object = [@object_id, @object_values]
|
18
18
|
@data = { 'objects' => { @object_id => @object_values } }.to_ns
|
19
|
-
OSX::
|
19
|
+
OSX::NSMutableDictionary.stubs(:dictionaryWithContentsOfFile).with(@data_path).returns(@data)
|
20
20
|
|
21
21
|
@project = Xcode.new(@project_path)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should initialize" do
|
25
|
-
OSX::
|
25
|
+
OSX::NSMutableDictionary.expects(:dictionaryWithContentsOfFile).with(@data_path).returns(@data)
|
26
26
|
|
27
27
|
project = Xcode.new(@project_path)
|
28
28
|
project.project_path.to_s.should == @project_path
|
@@ -76,7 +76,7 @@ describe 'Xcode' do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
it "should add an object to a copy build phase" do
|
79
|
-
id, values = 'BUILD_PHASE_ID'.to_ns, { 'name' => 'some blah', 'files' => [] }.to_ns
|
79
|
+
id, values = 'BUILD_PHASE_ID'.to_ns, { 'name' => 'some blah', 'files' => [].to_ns }.to_ns
|
80
80
|
@project.add_object(id, values)
|
81
81
|
@project.add_build_phase_to_project_target(id)
|
82
82
|
|
data/website/index.html
CHANGED
@@ -33,14 +33,11 @@
|
|
33
33
|
<h1>rucola</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rucola"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/rucola" class="numbers">0.0.
|
36
|
+
<a href="http://rubyforge.org/projects/rucola" class="numbers">0.0.2</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘rucola’</h1>
|
39
39
|
|
40
40
|
|
41
|
-
<h3><span class="caps">SUPER DUPER PRE ALPHA VERSION</span> (expect things to break kinda alpha…)</h3>
|
42
|
-
|
43
|
-
|
44
41
|
<h2>What</h2>
|
45
42
|
|
46
43
|
|
@@ -57,16 +54,25 @@ and document-based applications. It also provides APIs for simplifying some of
|
|
57
54
|
ways of doing things.</p>
|
58
55
|
|
59
56
|
|
57
|
+
<h2>Requirements</h2>
|
58
|
+
|
59
|
+
|
60
|
+
<ul>
|
61
|
+
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=44114&package_id=36578">RubyCocoa 0.13</a> That’s <span class="caps">NOT</span> the one included with Leopard, which is 0.12</li>
|
62
|
+
<li>For testing it’s adviced to install the following gems: test-spec, mocha, zentest (autotest)</li>
|
63
|
+
</ul>
|
64
|
+
|
65
|
+
|
60
66
|
<h2>Installing</h2>
|
61
67
|
|
62
68
|
|
63
|
-
<p><pre class='syntax'
|
69
|
+
<p><pre class='syntax'>sudo gem install rucola</pre></p>
|
64
70
|
|
65
71
|
|
66
72
|
<h2>Demonstration of usage</h2>
|
67
73
|
|
68
74
|
|
69
|
-
<
|
75
|
+
<h3>Generating an application skeleton</h3>
|
70
76
|
|
71
77
|
|
72
78
|
<pre><code>rucola MyApp -a "Your Name"</code></pre>
|
@@ -162,6 +168,42 @@ After you’ve added this, you can run `rake ib:update` and your outlet will
|
|
162
168
|
you can now hook up to your UI button.</p>
|
163
169
|
|
164
170
|
|
171
|
+
<h2>Extras</h2>
|
172
|
+
|
173
|
+
|
174
|
+
<p>Sample apps can be found at:</p>
|
175
|
+
|
176
|
+
|
177
|
+
<p><pre class='syntax'> svn co svn://rubyforge.org/var/svn/rucola/extras/examples/</pre></p>
|
178
|
+
|
179
|
+
|
180
|
+
<p>There’s a basic TextMate bundle which contains only 4 commands which are the equivalent of the “go to file” commands in the rails bundle. With these going from a controller to it’s test/model/view file is only a shortcut away. To get it:</p>
|
181
|
+
|
182
|
+
|
183
|
+
<p><pre class='syntax'>
|
184
|
+
cd ~/Library/Application\ Support/TextMate/Bundles/
|
185
|
+
svn co svn://rubyforge.org/var/svn/rucola/extras/Rucola.tmbundle
|
186
|
+
</pre></p>
|
187
|
+
|
188
|
+
|
189
|
+
<p>There’s a crash reporter plugin and a ActiveRecord plugin available. Check their descriptions with:</p>
|
190
|
+
|
191
|
+
|
192
|
+
<p><pre class='syntax'>
|
193
|
+
cd MyApp
|
194
|
+
script/plugin list
|
195
|
+
</pre></p>
|
196
|
+
|
197
|
+
|
198
|
+
<p>Or install them with:</p>
|
199
|
+
|
200
|
+
|
201
|
+
<p><pre class='syntax'>
|
202
|
+
cd MyApp
|
203
|
+
script/plugin install SACrashReporter
|
204
|
+
</pre></p>
|
205
|
+
|
206
|
+
|
165
207
|
<h2>Forum</h2>
|
166
208
|
|
167
209
|
|
@@ -188,7 +230,7 @@ you can now hook up to your UI button.</p>
|
|
188
230
|
|
189
231
|
<p>Comments are welcome. Send an email via the <a href="http://groups.google.com/group/rucola">forum</a></p>
|
190
232
|
<p class="coda">
|
191
|
-
<a href="http://groups.google.com/group/rucola">Eloy Duran, Justin Palmer</a>,
|
233
|
+
<a href="http://groups.google.com/group/rucola">Eloy Duran, Justin Palmer</a>, 26th November 2007<br>
|
192
234
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
193
235
|
</p>
|
194
236
|
</div>
|
data/website/index.txt
CHANGED
@@ -2,8 +2,6 @@ h1. rucola
|
|
2
2
|
|
3
3
|
h1. → 'rucola'
|
4
4
|
|
5
|
-
h3. SUPER DUPER PRE ALPHA VERSION (expect things to break kinda alpha...)
|
6
|
-
|
7
5
|
h2. What
|
8
6
|
|
9
7
|
A Framework for building Cocoa applications in Ruby
|
@@ -16,13 +14,18 @@ Rucola provides a set of generators to help you generate controllers, window con
|
|
16
14
|
and document-based applications. It also provides APIs for simplifying some of Objective-C's
|
17
15
|
ways of doing things.
|
18
16
|
|
17
|
+
h2. Requirements
|
18
|
+
|
19
|
+
* "RubyCocoa 0.13":http://sourceforge.net/project/showfiles.php?group_id=44114&package_id=36578 That's NOT the one included with Leopard, which is 0.12
|
20
|
+
* For testing it's adviced to install the following gems: test-spec, mocha, zentest (autotest)
|
21
|
+
|
19
22
|
h2. Installing
|
20
23
|
|
21
|
-
<pre syntax="
|
24
|
+
<pre syntax="sh">sudo gem install rucola</pre>
|
22
25
|
|
23
26
|
h2. Demonstration of usage
|
24
27
|
|
25
|
-
|
28
|
+
h3. Generating an application skeleton
|
26
29
|
|
27
30
|
rucola MyApp -a "Your Name"
|
28
31
|
|
@@ -106,6 +109,33 @@ For example, if we wanted to add a button to the application controller above, w
|
|
106
109
|
After you've added this, you can run `rake ib:update` and your outlet will be available in interface builder that
|
107
110
|
you can now hook up to your UI button.
|
108
111
|
|
112
|
+
h2. Extras
|
113
|
+
|
114
|
+
Sample apps can be found at:
|
115
|
+
|
116
|
+
<pre syntax="sh"> svn co svn://rubyforge.org/var/svn/rucola/extras/examples/</pre>
|
117
|
+
|
118
|
+
There's a basic TextMate bundle which contains only 4 commands which are the equivalent of the "go to file" commands in the rails bundle. With these going from a controller to it's test/model/view file is only a shortcut away. To get it:
|
119
|
+
|
120
|
+
<pre syntax="sh">
|
121
|
+
cd ~/Library/Application\ Support/TextMate/Bundles/
|
122
|
+
svn co svn://rubyforge.org/var/svn/rucola/extras/Rucola.tmbundle
|
123
|
+
</pre>
|
124
|
+
|
125
|
+
There's a crash reporter plugin and a ActiveRecord plugin available. Check their descriptions with:
|
126
|
+
|
127
|
+
<pre syntax="sh">
|
128
|
+
cd MyApp
|
129
|
+
script/plugin list
|
130
|
+
</pre>
|
131
|
+
|
132
|
+
Or install them with:
|
133
|
+
|
134
|
+
<pre syntax="sh">
|
135
|
+
cd MyApp
|
136
|
+
script/plugin install SACrashReporter
|
137
|
+
</pre>
|
138
|
+
|
109
139
|
h2. Forum
|
110
140
|
|
111
141
|
"http://groups.google.com/group/rucola":http://groups.google.com/group/rucola
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rucola
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-11-
|
6
|
+
version: 0.0.2
|
7
|
+
date: 2007-11-26 00:00:00 +01:00
|
8
8
|
summary: Rucola is an extension for RubyCocoa. It has a application skeleton generator and builds an "opinionated" application layout, like the one known from rails. And comes with RubyCocoa specific rake tasks.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -29,6 +29,8 @@ post_install_message:
|
|
29
29
|
authors:
|
30
30
|
- Eloy Duran
|
31
31
|
- Justin Palmer
|
32
|
+
- Chris McGrath
|
33
|
+
- Satoshi Nagakawa
|
32
34
|
files:
|
33
35
|
- ChangeLog
|
34
36
|
- History.txt
|
@@ -62,10 +64,17 @@ files:
|
|
62
64
|
- bin/rucola
|
63
65
|
- config/hoe.rb
|
64
66
|
- config/requirements.rb
|
67
|
+
- lib/autotest/discover.rb
|
68
|
+
- lib/autotest/fail.png
|
69
|
+
- lib/autotest/growl_images.rb
|
70
|
+
- lib/autotest/pass.png
|
71
|
+
- lib/autotest/rucola.rb
|
72
|
+
- lib/autotest/sound.rb
|
65
73
|
- lib/rucola.rb
|
66
74
|
- lib/rucola/info_plist.rb
|
67
75
|
- lib/rucola/initializer.rb
|
68
76
|
- lib/rucola/nib.rb
|
77
|
+
- lib/rucola/plugin.rb
|
69
78
|
- lib/rucola/rucola_support.rb
|
70
79
|
- lib/rucola/rucola_support/controllers.rb
|
71
80
|
- lib/rucola/rucola_support/controllers/rc_controller.rb
|
@@ -97,6 +106,9 @@ files:
|
|
97
106
|
- rucola_generators/document_model/document_model_generator.rb
|
98
107
|
- rucola_generators/document_model/templates/document_model_template.rb.erb
|
99
108
|
- rucola_generators/document_model/templates/test_document_model_template.rb.erb
|
109
|
+
- rucola_generators/rucola_plugin/USAGE
|
110
|
+
- rucola_generators/rucola_plugin/rucola_plugin_generator.rb
|
111
|
+
- rucola_generators/rucola_plugin/templates/init.rb.erb
|
100
112
|
- rucola_generators/window_controller/USAGE
|
101
113
|
- rucola_generators/window_controller/templates/Window.nib/classes.nib.erb
|
102
114
|
- rucola_generators/window_controller/templates/Window.nib/info.nib
|
@@ -124,11 +136,13 @@ files:
|
|
124
136
|
- test/test_nib.rb
|
125
137
|
- test/test_notifications.rb
|
126
138
|
- test/test_objc_core_ext.rb
|
139
|
+
- test/test_plugin.rb
|
127
140
|
- test/test_rc_app.rb
|
128
141
|
- test/test_rc_document.rb
|
129
142
|
- test/test_rc_window_controller.rb
|
130
143
|
- test/test_rucola.rb
|
131
144
|
- test/test_rucola_generator.rb
|
145
|
+
- test/test_rucola_plugin_generator.rb
|
132
146
|
- test/test_window_controller_generator.rb
|
133
147
|
- test/test_xcode.rb
|
134
148
|
- website/index.html
|
@@ -143,14 +157,17 @@ test_files:
|
|
143
157
|
- test/test_generator_helper.rb
|
144
158
|
- test/test_helper.rb
|
145
159
|
- test/test_info_plist.rb
|
160
|
+
- test/test_initializer.rb
|
146
161
|
- test/test_nib.rb
|
147
162
|
- test/test_notifications.rb
|
148
163
|
- test/test_objc_core_ext.rb
|
164
|
+
- test/test_plugin.rb
|
149
165
|
- test/test_rc_app.rb
|
150
166
|
- test/test_rc_document.rb
|
151
167
|
- test/test_rc_window_controller.rb
|
152
168
|
- test/test_rucola.rb
|
153
169
|
- test/test_rucola_generator.rb
|
170
|
+
- test/test_rucola_plugin_generator.rb
|
154
171
|
- test/test_window_controller_generator.rb
|
155
172
|
- test/test_xcode.rb
|
156
173
|
rdoc_options:
|
@@ -187,3 +204,21 @@ dependencies:
|
|
187
204
|
- !ruby/object:Gem::Version
|
188
205
|
version: 0.0.0
|
189
206
|
version:
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: test-spec
|
209
|
+
version_requirement:
|
210
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
211
|
+
requirements:
|
212
|
+
- - ">"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: 0.0.0
|
215
|
+
version:
|
216
|
+
- !ruby/object:Gem::Dependency
|
217
|
+
name: mocha
|
218
|
+
version_requirement:
|
219
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">"
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: 0.0.0
|
224
|
+
version:
|