rbiphonetest 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +10 -7
  3. data/README.rdoc +1 -1
  4. data/Rakefile +23 -3
  5. data/app_generators/rbiphonetest/rbiphonetest_generator.rb +8 -5
  6. data/app_generators/rbiphonetest/templates/Classes/module.h.erb +1 -0
  7. data/app_generators/rbiphonetest/templates/Classes/module.m.erb +3 -0
  8. data/app_generators/rbiphonetest/templates/Rakefile +36 -21
  9. data/app_generators/rbiphonetest/templates/dot_autotest +1 -1
  10. data/bin/rbiphonetest +7 -5
  11. data/features/development.feature +13 -0
  12. data/features/models.feature +35 -0
  13. data/features/new_project.feature +30 -0
  14. data/features/step_definitions/cli_steps.rb +14 -0
  15. data/features/step_definitions/common_steps.rb +170 -0
  16. data/features/support/cli.rb +8 -0
  17. data/features/support/common.rb +29 -0
  18. data/features/support/env.rb +19 -0
  19. data/lib/rbiphonetest.rb +1 -1
  20. data/lib/rbiphonetest/version.rb +1 -1
  21. data/rbiphonetest_generators/install_rspec/install_rspec_generator.rb +3 -2
  22. data/rbiphonetest_generators/install_rspec/templates/spec/spec_helper.rb +5 -1
  23. data/rbiphonetest_generators/install_test_unit/install_test_unit_generator.rb +3 -2
  24. data/rbiphonetest_generators/install_test_unit/templates/test/test_helper.rb +5 -1
  25. data/rbiphonetest_generators/model_rspec/templates/spec.rb +0 -3
  26. data/rbiphonetest_generators/model_test_unit/model_test_unit_generator.rb +3 -3
  27. data/rbiphonetest_generators/model_test_unit/templates/test.rb +0 -3
  28. data/test/test_generator_helper.rb +1 -1
  29. data/test/test_rbiphonetest_generator.rb +6 -2
  30. metadata +30 -39
  31. data/License.txt +0 -20
  32. data/config/hoe.rb +0 -70
  33. data/config/requirements.rb +0 -15
  34. data/tasks/deployment.rake +0 -34
  35. data/tasks/environment.rake +0 -7
  36. data/tasks/website.rake +0 -17
  37. data/test/test_rbiphonetest.rb +0 -11
@@ -1,3 +1,9 @@
1
+ == 0.4.0 2009-03-17
2
+
3
+ * 2+ models now fixed! No more dependency issues between classes being tested: only one bundle created - all ObjC code being tested is compiled into one bundle
4
+ * Upgrade internals to use latest newgem (removed bunch of dev-only files)
5
+ * Behaviour of rbiphonetest covered by Cucumber scenarios
6
+
1
7
  == 0.3.0 2008-07-05
2
8
 
3
9
  * Support for test/unit AND rspec test frameworks (via install_test_unit and install_rspec generators)
@@ -1,17 +1,24 @@
1
1
  History.txt
2
- License.txt
3
2
  Manifest.txt
4
3
  PostInstall.txt
5
4
  README.rdoc
6
5
  Rakefile
7
6
  app_generators/rbiphonetest/USAGE
8
7
  app_generators/rbiphonetest/rbiphonetest_generator.rb
8
+ app_generators/rbiphonetest/templates/Classes/module.h.erb
9
+ app_generators/rbiphonetest/templates/Classes/module.m.erb
9
10
  app_generators/rbiphonetest/templates/Rakefile
10
11
  app_generators/rbiphonetest/templates/dot_autotest
11
12
  bin/iphoneruby
12
13
  bin/rbiphonetest
13
- config/hoe.rb
14
- config/requirements.rb
14
+ features/development.feature
15
+ features/models.feature
16
+ features/new_project.feature
17
+ features/step_definitions/cli_steps.rb
18
+ features/step_definitions/common_steps.rb
19
+ features/support/cli.rb
20
+ features/support/common.rb
21
+ features/support/env.rb
15
22
  lib/rbiphonetest.rb
16
23
  lib/rbiphonetest/version.rb
17
24
  rbiphonetest_generators/install_rspec/USAGE
@@ -41,14 +48,10 @@ script/destroy
41
48
  script/generate
42
49
  script/txt2html
43
50
  setup.rb
44
- tasks/deployment.rake
45
- tasks/environment.rake
46
- tasks/website.rake
47
51
  test/test_generator_helper.rb
48
52
  test/test_helper.rb
49
53
  test/test_install_rspec_generator.rb
50
54
  test/test_install_test_unit_generator.rb
51
55
  test/test_model_generator.rb
52
- test/test_rbiphonetest.rb
53
56
  test/test_rbiphonetest_generator.rb
54
57
  test/test_story_generator.rb
@@ -68,7 +68,7 @@ From source:
68
68
 
69
69
  (The MIT License)
70
70
 
71
- Copyright (c) 2008 Dr Nic Williams
71
+ Copyright (c) 2008-9 Dr Nic Williams
72
72
 
73
73
  Permission is hereby granted, free of charge, to any person obtaining
74
74
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,4 +1,24 @@
1
- require 'config/requirements'
2
- require 'config/hoe' # setup Hoe + all gem configuration
1
+ %w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
2
+ require File.dirname(__FILE__) + '/lib/rbiphonetest'
3
3
 
4
- Dir['tasks/**/*.rake'].each { |rake| load rake }
4
+ # Generate all the Rake tasks
5
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
6
+ $hoe = Hoe.new('rbiphonetest', RbIphoneTest::VERSION) do |p|
7
+ p.developer('Dr Nic Williams', 'drnicwilliams@gmail.com')
8
+ p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
9
+ p.post_install_message = 'PostInstall.txt'
10
+ p.extra_deps = [
11
+ ['newgem', ">= #{::Newgem::VERSION}"]
12
+ ]
13
+
14
+ p.clean_globs |= %w[**/.DS_Store tmp *.log]
15
+ path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
16
+ p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
17
+ p.rsync_args = '-av --delete --ignore-errors'
18
+ end
19
+
20
+ require 'newgem/tasks' # load /tasks/*.rake
21
+ Dir['tasks/**/*.rake'].each { |t| load t }
22
+
23
+ # TODO - want other tests/tasks run by default? Add them to the list
24
+ task :default => [:features]
@@ -6,14 +6,15 @@ class RbiphonetestGenerator < RubiGen::Base
6
6
  default_options :author => nil,
7
7
  :test_framework => 'test_unit'
8
8
 
9
- attr_reader :name
9
+ attr_reader :name, :module_name
10
10
  attr_reader :test_framework
11
11
 
12
12
  def initialize(runtime_args, runtime_options = {})
13
13
  super
14
14
  usage if args.empty?
15
15
  @destination_root = File.expand_path(args.shift)
16
- @name = base_name
16
+ @name = base_name.gsub("-", "_")
17
+ @module_name = name.camelize
17
18
  extract_options
18
19
  end
19
20
 
@@ -24,8 +25,10 @@ class RbiphonetestGenerator < RubiGen::Base
24
25
  BASEDIRS.each { |path| m.directory path }
25
26
 
26
27
  # Create stubs
27
- m.file_copy_each ["Rakefile"]
28
- m.file "dot_autotest", ".autotest"
28
+ m.template_copy_each ["Rakefile"]
29
+ m.file "dot_autotest", ".autotest"
30
+ m.template "Classes/module.m.erb", "Classes/#{module_name}.m"
31
+ m.template "Classes/module.h.erb", "Classes/#{module_name}.h"
29
32
 
30
33
  # Selecting a test framework
31
34
  case test_framework
@@ -75,4 +78,4 @@ EOS
75
78
  Classes
76
79
  tasks
77
80
  )
78
- end
81
+ end
@@ -0,0 +1 @@
1
+ /* <%= module_name %> */
@@ -0,0 +1,3 @@
1
+ #import "<%= module_name %>.h"
2
+
3
+ void Init_<%= module_name %>() { }
@@ -1,6 +1,12 @@
1
1
  require "rubygems"
2
2
  require "rake"
3
3
 
4
+ bundle_name = '<%= module_name %>'
5
+ src_paths = %w[Classes] # any included projects, add folders here
6
+ src_files = FileList['Classes/**/*.m'] # any included projects, add files here
7
+ req_frameworks = %w[Foundation] # use only frameworks available to both Cocoa + iPhone SDKs
8
+ req_libraries = %w[] # e.g. add sqlite3 for libsqlite3 to be used by linking step
9
+
4
10
  Dir['tasks/**/*.rake'].each { |rake| load rake }
5
11
 
6
12
  namespace :objc do
@@ -10,31 +16,40 @@ end
10
16
 
11
17
  task :compile => "objc:compile"
12
18
 
13
- namespace :objc do
14
- # look for Classes/*.m files containing a line "void Init_ClassName"
15
- # These are the primary classes for bundles; make a bundle for each
16
- model_file_paths = `find Classes/*.m -exec grep -l "^void Init_" {} \\;`.split("\n")
17
- model_file_paths.each do |path|
18
- path =~ /Classes\/(.*)\.m/
19
- model_name = $1
20
-
21
- task :compile => model_name do
22
- if Dir.glob("**/#{model_name}.bundle").length == 0
23
- STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
24
- STDERR.puts "Bundle actually failed to build."
25
- STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
26
- exit(1)
27
- end
28
- end
19
+ # Converts ('-I', ['foo', 'bar'])
20
+ # Into: -Ifoo -Ibar
21
+ def make_options(flag, items)
22
+ items.map { |item| "#{flag}#{item}" }.join(" ")
23
+ end
29
24
 
30
- task model_name.to_sym => "build/bundles/#{model_name}.bundle"
25
+ src_files.each do |file|
26
+ FileUtils.mkdir_p "build"
27
+ base = file.gsub(/\.m$/,'')
28
+ dot_o = "build/#{File.basename base}.o"
29
+ file dot_o => ["#{base}.m", "#{base}.h"] do
30
+ sh "gcc -c #{base}.m -o #{dot_o} #{make_options '-I', src_paths}"
31
+ end
32
+ end
33
+
34
+ dot_o_files = src_files.map { |file| "build/" + File.basename(file).gsub(/\.m$/,'') + ".o" }
31
35
 
32
- file "build/bundles/#{model_name}.bundle" => ["Classes/#{model_name}.m", "Classes/#{model_name}.h"] do |t|
33
- FileUtils.mkdir_p "build/bundles"
34
- FileUtils.rm Dir["build/bundles/#{model_name}.bundle"]
35
- sh "gcc -o build/bundles/#{model_name}.bundle -bundle -framework Foundation Classes/#{model_name}.m"
36
+ namespace :objc do
37
+ task :compile => "build/bundles/#{bundle_name}.bundle" do
38
+ if Dir.glob("**/#{bundle_name}.bundle").length == 0
39
+ STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
40
+ STDERR.puts "Bundle actually failed to build."
41
+ STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
42
+ exit(1)
36
43
  end
37
44
  end
38
45
 
46
+ file "build/bundles/#{bundle_name}.bundle" => dot_o_files do |t|
47
+ FileUtils.mkdir_p "build/bundles"
48
+ FileUtils.rm Dir["build/bundles/#{bundle_name}.bundle"]
49
+ sh "gcc -o build/bundles/#{bundle_name}.bundle #{dot_o_files.join(" ")} -bundle " +
50
+ "#{make_options '-framework ', req_frameworks} " +
51
+ "#{make_options '-l', req_libraries} " +
52
+ "#{make_options '-I', src_paths}"
53
+ end
39
54
  end
40
55
 
@@ -9,7 +9,7 @@ end
9
9
 
10
10
  Autotest.add_hook :initialize do |at|
11
11
  at.add_mapping(/Classes\/(.*)\.[mh]/) do |_, m|
12
- ["test/test_#{m[1].underscore}.rb"]
12
+ ["spec/#{m[1].underscore}_spec.rb", "test/test_#{m[1].underscore}.rb"]
13
13
  end
14
14
  end
15
15
 
@@ -5,14 +5,16 @@ require 'rubigen'
5
5
 
6
6
  if %w(-v --version).include? ARGV.first
7
7
  require 'rbiphonetest/version'
8
- puts "#{File.basename($0)} #{Iphoneruby::VERSION::STRING}"
8
+ puts "#{File.basename($0)} #{RbIphoneTest::VERSION::STRING}"
9
9
  exit(0)
10
10
  end
11
11
 
12
12
  require 'rubigen/scripts/generate'
13
13
  RubiGen::Base.reset_sources
14
- source = RubiGen::PathSource.new(:application, File.join(File.dirname(__FILE__), "../app_generators"))
15
- RubiGen::Base.append_sources source
16
- source = RubiGen::PathSource.new(:application, File.join(File.dirname(__FILE__), "../rbiphonetest_generators"))
17
- RubiGen::Base.append_sources source
14
+ RubiGen::Base.use_application_sources! :rubygems
15
+ RubiGen::Base.prepend_sources(*[
16
+ RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "app_generators")),
17
+ RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "rbiphonetest_generators"))
18
+ ])
19
+
18
20
  RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'rbiphonetest')
@@ -0,0 +1,13 @@
1
+ Feature: Development processes of newgem itself (rake tasks)
2
+
3
+ As a Newgem maintainer or contributor
4
+ I want rake tasks to maintain and release the gem
5
+ So that I can spend time on the tests and code, and not excessive time on maintenance processes
6
+
7
+ Scenario: Generate RubyGem
8
+ Given this project is active project folder
9
+ And 'pkg' folder is deleted
10
+ When I invoke task 'rake gem'
11
+ Then folder 'pkg' is created
12
+ And file with name matching 'pkg/*.gem' is created else you should run "rake manifest" to fix this
13
+ And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
@@ -0,0 +1,35 @@
1
+ Feature: Generate, compile and test Objective-C classes with Ruby tests
2
+ In order to reduce the cost of development and maintenance of Objective-C projects
3
+ As an Objective-C developer
4
+ I want a generator for new Objective-C models/classes that are covered by Ruby tests
5
+
6
+ Scenario: Generate a single model and its default tests should pass
7
+ Given an existing rbiphonetest scaffold using options '' [called 'my_project']
8
+ When I invoke 'model' generator with arguments 'Person'
9
+ Then file 'Classes/Person.m' is created
10
+ And file 'Classes/Person.h' is created
11
+ And file 'test/test_person.rb' is created
12
+ When I invoke task 'rake test'
13
+ Then all 1 tests pass
14
+
15
+ Scenario: Generate a single model and its default tests should pass, for rspec project
16
+ Given an existing rbiphonetest scaffold using options '--test-with=rspec' [called 'my_project']
17
+ When I invoke 'model' generator with arguments 'Person'
18
+ Then file 'Classes/Person.m' is created
19
+ And file 'Classes/Person.h' is created
20
+ And file 'spec/person_spec.rb' is created
21
+ When I invoke task 'rake spec'
22
+ Then all 1 examples pass
23
+
24
+ Scenario: Generate multiple models and its tests should pass
25
+ Given an existing rbiphonetest scaffold using options '' [called 'my_project']
26
+ When I invoke 'model' generator with arguments 'Person'
27
+ When I invoke 'model' generator with arguments 'Company'
28
+ Then file 'Classes/Person.m' is created
29
+ And file 'Classes/Person.h' is created
30
+ And file 'test/test_person.rb' is created
31
+ Then file 'Classes/Company.m' is created
32
+ And file 'Classes/Company.h' is created
33
+ And file 'test/test_company.rb' is created
34
+ When I invoke task 'rake test'
35
+ Then all 2 tests pass
@@ -0,0 +1,30 @@
1
+ Feature: Created a new Objective-C project that can be tested by Ruby tests
2
+ In order to reduce the cost of development and maintenance of Objective-C projects
3
+ As an Objective-C developer
4
+ I want a generator for new Objective-C libraries that are covered by Ruby tests
5
+
6
+ Scenario: Generate new project (defaults test/unit)
7
+ Given a safe folder
8
+ When I execute rbiphonetest for project 'my_project' with options ''
9
+ Then file 'Rakefile' is created
10
+ And file 'Classes/MyProject.h' is created
11
+ And file 'Classes/MyProject.m' is created
12
+ And file 'Classes/MyProject.m' contents does match /void Init_MyProject\(\) \{ \}/
13
+ And file 'Classes/MyProject.m' contents does match /#import "MyProject.h"/
14
+ And Rakefile can display tasks successfully
15
+ And file 'test/test_helper.rb' is created
16
+
17
+ Scenario: Generate new test/unit project
18
+ Given a safe folder
19
+ When I execute rbiphonetest for project 'my_project' with options '--test-with=test_unit'
20
+ Then file 'Rakefile' is created
21
+ And Rakefile can display tasks successfully
22
+ And file 'test/test_helper.rb' is created
23
+
24
+ Scenario: Generate new rspec project
25
+ Given a safe folder
26
+ When I execute rbiphonetest for project 'my_project' with options '--test-with=rspec'
27
+ Then file 'Rakefile' is created
28
+ And Rakefile can display tasks successfully
29
+ And file 'spec/spec_helper.rb' is created
30
+
@@ -0,0 +1,14 @@
1
+ When /^I execute rbiphonetest for project '(.*)' with options '(.*)'/ do |project_name, arguments|
2
+ setup_active_project_folder project_name
3
+ in_tmp_folder do
4
+ @stdout = File.expand_path("newgem.out")
5
+ system "ruby #{rbiphonetest_cmd} #{arguments} #{project_name} > #{@stdout}"
6
+ force_local_lib_override
7
+ end
8
+ end
9
+
10
+ Given /^an existing rbiphonetest scaffold using options '(.*)' \[called '(.*)'\]/ do |arguments, project_name|
11
+ Given "a safe folder"
12
+ Given "I execute rbiphonetest for project '#{project_name}' with options '#{arguments}'"
13
+ end
14
+
@@ -0,0 +1,170 @@
1
+ Given /^a safe folder/ do
2
+ FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
3
+ FileUtils.mkdir_p @tmp_root
4
+ FileUtils.mkdir_p @home_path = File.expand_path(File.join(@tmp_root, "home"))
5
+ @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
6
+ Given "env variable $HOME set to '#{@home_path}'"
7
+ end
8
+
9
+ Given /^this project is active project folder/ do
10
+ Given "a safe folder"
11
+ @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
12
+ end
13
+
14
+ Given /^env variable \$([\w_]+) set to '(.*)'/ do |env_var, value|
15
+ ENV[env_var] = value
16
+ end
17
+
18
+ Given /'(.*)' folder is deleted/ do |folder|
19
+ in_project_folder { FileUtils.rm_rf folder }
20
+ end
21
+
22
+ When /^I invoke '(.*)' generator with arguments '(.*)'$/ do |generator, arguments|
23
+ @stdout = StringIO.new
24
+ FileUtils.chdir(@active_project_folder) do
25
+ if Object.const_defined?("APP_ROOT")
26
+ APP_ROOT.replace(FileUtils.pwd)
27
+ else
28
+ APP_ROOT = FileUtils.pwd
29
+ end
30
+ run_generator(generator, arguments.split(' '), SOURCES, :stdout => @stdout)
31
+ end
32
+ File.open(File.join(@tmp_root, "generator.out"), "w") do |f|
33
+ @stdout.rewind
34
+ f << @stdout.read
35
+ end
36
+ end
37
+
38
+ When /^I run executable '(.*)' with arguments '(.*)'/ do |executable, arguments|
39
+ @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
40
+ in_project_folder do
41
+ system "#{executable} #{arguments} > #{@stdout} 2> #{@stdout}"
42
+ end
43
+ end
44
+
45
+ When /^I run project executable '(.*)' with arguments '(.*)'/ do |executable, arguments|
46
+ @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
47
+ in_project_folder do
48
+ system "ruby #{executable} #{arguments} > #{@stdout} 2> #{@stdout}"
49
+ end
50
+ end
51
+
52
+ When /^I run local executable '(.*)' with arguments '(.*)'/ do |executable, arguments|
53
+ @stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
54
+ executable = File.expand_path(File.join(File.dirname(__FILE__), "/../../bin", executable))
55
+ in_project_folder do
56
+ system "ruby #{executable} #{arguments} > #{@stdout} 2> #{@stdout}"
57
+ end
58
+ end
59
+
60
+ When /^I invoke task 'rake (.*)'/ do |task|
61
+ @stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
62
+ FileUtils.chdir(@active_project_folder) do
63
+ system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
64
+ end
65
+ end
66
+
67
+ Then /^folder '(.*)' (is|is not) created/ do |folder, is|
68
+ in_project_folder do
69
+ File.exists?(folder).should(is == 'is' ? be_true : be_false)
70
+ end
71
+ end
72
+
73
+ Then /^file '(.*)' (is|is not) created/ do |file, is|
74
+ in_project_folder do
75
+ File.exists?(file).should(is == 'is' ? be_true : be_false)
76
+ end
77
+ end
78
+
79
+ Then /^file with name matching '(.*)' is created/ do |pattern|
80
+ in_project_folder do
81
+ Dir[pattern].should_not be_empty
82
+ end
83
+ end
84
+
85
+ Then /^file '(.*)' contents (does|does not) match \/(.*)\// do |file, does, regex|
86
+ in_project_folder do
87
+ actual_output = File.read(file)
88
+ (does == 'does') ?
89
+ actual_output.should(match(/#{regex}/)) :
90
+ actual_output.should_not(match(/#{regex}/))
91
+ end
92
+ end
93
+
94
+ Then /gem file '(.*)' and generated file '(.*)' should be the same/ do |gem_file, project_file|
95
+ File.exists?(gem_file).should be_true
96
+ File.exists?(project_file).should be_true
97
+ gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}")
98
+ project_file_contents = File.read(File.join(@active_project_folder, project_file))
99
+ project_file_contents.should == gem_file_contents
100
+ end
101
+
102
+ Then /^output same as contents of '(.*)'$/ do |file|
103
+ expected_output = File.read(File.join(File.dirname(__FILE__) + "/../expected_outputs", file))
104
+ actual_output = File.read(@stdout)
105
+ actual_output.should == expected_output
106
+ end
107
+
108
+ Then /^(does|does not) invoke generator '(.*)'$/ do |does_invoke, generator|
109
+ actual_output = File.read(@stdout)
110
+ does_invoke == "does" ?
111
+ actual_output.should(match(/dependency\s+#{generator}/)) :
112
+ actual_output.should_not(match(/dependency\s+#{generator}/))
113
+ end
114
+
115
+ Then /help options '(.*)' and '(.*)' are displayed/ do |opt1, opt2|
116
+ actual_output = File.read(@stdout)
117
+ actual_output.should match(/#{opt1}/)
118
+ actual_output.should match(/#{opt2}/)
119
+ end
120
+
121
+ Then /^output (does|does not) match \/(.*)\// do |does, regex|
122
+ actual_output = File.read(@stdout)
123
+ (does == 'does') ?
124
+ actual_output.should(match(/#{regex}/)) :
125
+ actual_output.should_not(match(/#{regex}/))
126
+ end
127
+
128
+ Then /^all (\d+) tests pass/ do |expected_test_count|
129
+ expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
130
+ actual_output = File.read(@stdout)
131
+ actual_output.should match(expected)
132
+ end
133
+
134
+ Then /^all (\d+) examples pass/ do |expected_test_count|
135
+ expected = %r{^#{expected_test_count} examples?, 0 failures}
136
+ actual_output = File.read(@stdout)
137
+ actual_output.should match(expected)
138
+ end
139
+
140
+ Then /^yaml file '(.*)' contains (\{.*\})/ do |file, yaml|
141
+ in_project_folder do
142
+ yaml = eval yaml
143
+ YAML.load(File.read(file)).should == yaml
144
+ end
145
+ end
146
+
147
+ Then /^Rakefile can display tasks successfully/ do
148
+ @stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
149
+ FileUtils.chdir(@active_project_folder) do
150
+ system "rake -T > #{@stdout} 2> #{@stdout}"
151
+ end
152
+ actual_output = File.read(@stdout)
153
+ actual_output.should match(/^rake\s+\w+\s+#\s.*/)
154
+ end
155
+
156
+ Then /^task 'rake (.*)' is executed successfully/ do |task|
157
+ @stdout.should_not be_nil
158
+ actual_output = File.read(@stdout)
159
+ actual_output.should_not match(/^Don't know how to build task '#{task}'/)
160
+ actual_output.should_not match(/Error/i)
161
+ end
162
+
163
+ Then /^gem spec key '(.*)' contains \/(.*)\// do |key, regex|
164
+ in_project_folder do
165
+ gem_file = Dir["pkg/*.gem"].first
166
+ gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
167
+ spec_value = gem_spec.send(key.to_sym)
168
+ spec_value.to_s.should match(/#{regex}/)
169
+ end
170
+ end
@@ -0,0 +1,8 @@
1
+ module CliHelpers
2
+ def rbiphonetest_cmd
3
+ @rbiphonetest_cmd ||= File.expand_path(File.dirname(__FILE__) + "/../../../bin/rbiphonetest")
4
+ end
5
+ end
6
+
7
+ World { |world| world.extend CliHelpers }
8
+
@@ -0,0 +1,29 @@
1
+ module CommonHelpers
2
+ def in_tmp_folder(&block)
3
+ FileUtils.chdir(@tmp_root, &block)
4
+ end
5
+
6
+ def in_project_folder(&block)
7
+ project_folder = @active_project_folder || @tmp_root
8
+ FileUtils.chdir(project_folder, &block)
9
+ end
10
+
11
+ def in_home_folder(&block)
12
+ FileUtils.chdir(@home_path, &block)
13
+ end
14
+
15
+ def force_local_lib_override(project_name = @project_name)
16
+ rakefile = File.read(File.join(project_name, 'Rakefile'))
17
+ File.open(File.join(project_name, 'Rakefile'), "w+") do |f|
18
+ f << "$:.unshift('#{@lib_path}')\n"
19
+ f << rakefile
20
+ end
21
+ end
22
+
23
+ def setup_active_project_folder project_name
24
+ @active_project_folder = File.join(@tmp_root, project_name)
25
+ @project_name = project_name
26
+ end
27
+ end
28
+
29
+ World { |world| world.extend CommonHelpers }
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + "/../../lib/rbiphonetest"
2
+
3
+ gem 'cucumber'
4
+ require 'cucumber'
5
+ gem 'rspec'
6
+ require 'spec'
7
+
8
+ begin
9
+ require 'rubigen'
10
+ rescue LoadError
11
+ require 'rubygems'
12
+ require 'rubigen'
13
+ end
14
+ require 'rubigen/helpers/generator_test_helper'
15
+ include RubiGen::GeneratorTestHelper
16
+
17
+ SOURCES = Dir[File.dirname(__FILE__) + "/../../*_generators"].map do |f|
18
+ RubiGen::PathSource.new(:test, File.expand_path(f))
19
+ end
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module RbIphoneTest
5
-
5
+ VERSION = '0.4.0'
6
6
  end
@@ -1,7 +1,7 @@
1
1
  module RbIphoneTest
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 3
4
+ MINOR = 4
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
@@ -2,12 +2,13 @@ class InstallRspecGenerator < RubiGen::Base
2
2
 
3
3
  default_options :author => nil
4
4
 
5
- attr_reader :name
5
+ attr_reader :name, :module_name
6
6
 
7
7
  def initialize(runtime_args, runtime_options = {})
8
8
  super
9
9
  usage if args.empty?
10
10
  @name = args.shift
11
+ @module_name = File.basename(destination_root).gsub("-", "_").camelize
11
12
  extract_options
12
13
  end
13
14
 
@@ -17,7 +18,7 @@ class InstallRspecGenerator < RubiGen::Base
17
18
  m.directory 'spec'
18
19
  m.directory 'tasks'
19
20
 
20
- m.file_copy_each ["spec/spec_helper.rb"]
21
+ m.template_copy_each ["spec/spec_helper.rb"]
21
22
  m.file_copy_each ["tasks/rspec.rake"]
22
23
  end
23
24
  end
@@ -1,3 +1,7 @@
1
1
  require "osx/cocoa"
2
2
 
3
- $:.unshift File.dirname(__FILE__) + "/../build/bundles"
3
+ $:.unshift File.dirname(__FILE__) + "/../build/bundles"
4
+
5
+ bundle_name = '<%= module_name %>'
6
+ require "#{bundle_name}.bundle"
7
+ OSX::ns_import bundle_name.to_sym
@@ -2,12 +2,13 @@ class InstallTestUnitGenerator < RubiGen::Base
2
2
 
3
3
  default_options :author => nil
4
4
 
5
- attr_reader :name
5
+ attr_reader :name, :module_name
6
6
 
7
7
  def initialize(runtime_args, runtime_options = {})
8
8
  super
9
9
  usage if args.empty?
10
10
  @name = args.shift
11
+ @module_name = File.basename(destination_root).gsub("-", "_").camelize
11
12
  extract_options
12
13
  end
13
14
 
@@ -17,7 +18,7 @@ class InstallTestUnitGenerator < RubiGen::Base
17
18
  m.directory 'test'
18
19
  m.directory 'tasks'
19
20
 
20
- m.file_copy_each ["test/test_helper.rb"]
21
+ m.template_copy_each ["test/test_helper.rb"]
21
22
  m.file_copy_each ["tasks/test_unit.rake"]
22
23
 
23
24
  end
@@ -1,4 +1,8 @@
1
1
  require "test/unit"
2
2
  require "osx/cocoa"
3
3
 
4
- $:.unshift File.dirname(__FILE__) + "/../build/bundles"
4
+ $:.unshift File.dirname(__FILE__) + "/../build/bundles"
5
+
6
+ bundle_name = '<%= module_name %>'
7
+ require "#{bundle_name}.bundle"
8
+ OSX::ns_import bundle_name.to_sym
@@ -1,8 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
- require "<%= class_name %>.bundle"
4
- OSX::ns_import :<%= class_name %>
5
-
6
3
  describe OSX::<%= class_name %> do
7
4
 
8
5
  it "should exist" do
@@ -7,8 +7,8 @@ class ModelTestUnitGenerator < RubiGen::Base
7
7
  def initialize(runtime_args, runtime_options = {})
8
8
  super
9
9
  usage if args.empty?
10
- @name = args.shift.underscore
11
- @class_name = @name.camelcase
10
+ @name = args.shift.underscore
11
+ @class_name = @name.camelcase
12
12
  extract_options
13
13
  end
14
14
 
@@ -48,4 +48,4 @@ EOS
48
48
  # raw instance variable value.
49
49
  # @author = options[:author]
50
50
  end
51
- end
51
+ end
@@ -1,8 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/test_helper'
2
2
 
3
- require "<%= class_name %>.bundle"
4
- OSX::ns_import :<%= class_name %>
5
-
6
3
  class Test<%= class_name %> < Test::Unit::TestCase
7
4
  def test_<%= name %>_class_exists
8
5
  OSX::<%= class_name %>
@@ -7,7 +7,7 @@ require 'fileutils'
7
7
 
8
8
  # Must set before requiring generator libs.
9
9
  TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
- PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
10
+ PROJECT_NAME = "my_project" unless defined?(PROJECT_NAME)
11
11
  app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
12
  if defined?(APP_ROOT)
13
13
  APP_ROOT.replace(app_root)
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
2
 
3
- class TestIphonerubyGenerator < Test::Unit::TestCase
3
+ class TestRbIphoneTestGenerator < Test::Unit::TestCase
4
4
  include RubiGen::GeneratorTestHelper
5
5
 
6
6
  def setup
@@ -32,6 +32,8 @@ class TestIphonerubyGenerator < Test::Unit::TestCase
32
32
  assert_directory_exists "tasks"
33
33
  assert_generated_file ".autotest"
34
34
  assert_generated_file "Rakefile"
35
+ assert_generated_file "Classes/MyProject.h"
36
+ assert_generated_file "Classes/MyProject.m"
35
37
  assert_generated_file "test/test_helper.rb"
36
38
  assert_generated_file "script/generate"
37
39
  end
@@ -39,10 +41,12 @@ class TestIphonerubyGenerator < Test::Unit::TestCase
39
41
  def test_generator_with_rspec
40
42
  run_generator('rbiphonetest', [APP_ROOT], sources, {:test_framework => 'rspec'})
41
43
  assert_directory_exists "Classes"
42
- assert_directory_exists "test"
44
+ assert_directory_exists "spec"
43
45
  assert_directory_exists "tasks"
44
46
  assert_generated_file ".autotest"
45
47
  assert_generated_file "Rakefile"
48
+ assert_generated_file "Classes/MyProject.h"
49
+ assert_generated_file "Classes/MyProject.m"
46
50
  assert_generated_file "spec/spec_helper.rb"
47
51
  assert_generated_file "script/generate"
48
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbiphonetest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
@@ -9,9 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-08 00:00:00 +10:00
12
+ date: 2009-03-17 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: newgem
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.3.0
24
+ version:
15
25
  - !ruby/object:Gem::Dependency
16
26
  name: hoe
17
27
  type: :development
@@ -20,9 +30,9 @@ dependencies:
20
30
  requirements:
21
31
  - - ">="
22
32
  - !ruby/object:Gem::Version
23
- version: 1.7.0
33
+ version: 1.8.0
24
34
  version:
25
- description: Want to write iPhone unit tests? Want to write them in Ruby?
35
+ description: "Want to write iPhone apps with unit tests? Want to write them in Ruby? * Blog introduction: http://drnicwilliams.com/2008/07/04/unit-testing-iphone-apps-with-ruby-rbiphonetest/ * Video introduction: http://www.vimeo.com/1262916 * Google Group: http://groups.google.com/group/rbiphonetest * Bugs/Features: http://drnic.lighthouseapp.com/projects/13763-rbiphonetest"
26
36
  email:
27
37
  - drnicwilliams@gmail.com
28
38
  executables:
@@ -32,24 +42,31 @@ extensions: []
32
42
 
33
43
  extra_rdoc_files:
34
44
  - History.txt
35
- - License.txt
36
45
  - Manifest.txt
37
46
  - PostInstall.txt
47
+ - README.rdoc
38
48
  files:
39
49
  - History.txt
40
- - License.txt
41
50
  - Manifest.txt
42
51
  - PostInstall.txt
43
52
  - README.rdoc
44
53
  - Rakefile
45
54
  - app_generators/rbiphonetest/USAGE
46
55
  - app_generators/rbiphonetest/rbiphonetest_generator.rb
56
+ - app_generators/rbiphonetest/templates/Classes/module.h.erb
57
+ - app_generators/rbiphonetest/templates/Classes/module.m.erb
47
58
  - app_generators/rbiphonetest/templates/Rakefile
48
59
  - app_generators/rbiphonetest/templates/dot_autotest
49
60
  - bin/iphoneruby
50
61
  - bin/rbiphonetest
51
- - config/hoe.rb
52
- - config/requirements.rb
62
+ - features/development.feature
63
+ - features/models.feature
64
+ - features/new_project.feature
65
+ - features/step_definitions/cli_steps.rb
66
+ - features/step_definitions/common_steps.rb
67
+ - features/support/cli.rb
68
+ - features/support/common.rb
69
+ - features/support/env.rb
53
70
  - lib/rbiphonetest.rb
54
71
  - lib/rbiphonetest/version.rb
55
72
  - rbiphonetest_generators/install_rspec/USAGE
@@ -79,44 +96,19 @@ files:
79
96
  - script/generate
80
97
  - script/txt2html
81
98
  - setup.rb
82
- - tasks/deployment.rake
83
- - tasks/environment.rake
84
- - tasks/website.rake
85
99
  - test/test_generator_helper.rb
86
100
  - test/test_helper.rb
87
101
  - test/test_install_rspec_generator.rb
88
102
  - test/test_install_test_unit_generator.rb
89
103
  - test/test_model_generator.rb
90
- - test/test_rbiphonetest.rb
91
104
  - test/test_rbiphonetest_generator.rb
92
105
  - test/test_story_generator.rb
93
106
  has_rdoc: true
94
- homepage: http://github.com/drnic/rbiphonetest
95
- post_install_message: |-
96
-
97
- You can add Ruby-based unit tests to any iPhone/Xcode project by changing to the
98
- project's folder in the terminal/console and running:
99
-
100
- rbiphonetest .
101
-
102
- This adds the test framework, a Rakefile, and an `autotest` config file.
103
-
104
- You can now create testable Objective-C models/classes using the generator:
105
-
106
- $ script/generate model WidgetMaker
107
- create Classes/WidgetMaker.h
108
- create Classes/WidgetMaker.m
109
- create test/test_widget_maker.rb
110
-
111
- To run tests you have several options:
112
-
113
- 1. `rake` or `rake test`
114
- 1. `autotest` (after installing the ZenTest gem)
115
-
116
- Enjoy iPhone development with Ruby!
107
+ homepage: http://rbiphonetest.rubyforge.org
108
+ post_install_message: PostInstall.txt
117
109
  rdoc_options:
118
110
  - --main
119
- - README.txt
111
+ - README.rdoc
120
112
  require_paths:
121
113
  - lib
122
114
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -134,16 +126,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
126
  requirements: []
135
127
 
136
128
  rubyforge_project: rbiphonetest
137
- rubygems_version: 1.2.0
129
+ rubygems_version: 1.3.1
138
130
  signing_key:
139
131
  specification_version: 2
140
- summary: Want to write iPhone unit tests? Want to write them in Ruby?
132
+ summary: "Want to write iPhone apps with unit tests? Want to write them in Ruby? * Blog introduction: http://drnicwilliams.com/2008/07/04/unit-testing-iphone-apps-with-ruby-rbiphonetest/ * Video introduction: http://www.vimeo.com/1262916 * Google Group: http://groups.google.com/group/rbiphonetest * Bugs/Features: http://drnic.lighthouseapp.com/projects/13763-rbiphonetest"
141
133
  test_files:
142
134
  - test/test_generator_helper.rb
143
135
  - test/test_helper.rb
144
136
  - test/test_install_rspec_generator.rb
145
137
  - test/test_install_test_unit_generator.rb
146
138
  - test/test_model_generator.rb
147
- - test/test_rbiphonetest.rb
148
139
  - test/test_rbiphonetest_generator.rb
149
140
  - test/test_story_generator.rb
@@ -1,20 +0,0 @@
1
- Copyright (c) 2008 Dr Nic Williams
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,70 +0,0 @@
1
- require 'rbiphonetest/version'
2
-
3
- AUTHOR = 'Dr Nic Williams'
4
- EMAIL = "drnicwilliams@gmail.com"
5
- DESCRIPTION = "Want to write iPhone unit tests? Want to write them in Ruby?"
6
- GEM_NAME = 'rbiphonetest' # what ppl will type to install your gem
7
- RUBYFORGE_PROJECT = 'rbiphonetest' # The unix name for your project
8
- HOMEPATH = "http://github.com/drnic/rbiphonetest"
9
- DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
10
- EXTRA_DEPENDENCIES = [
11
- ['rubigen', '>= 1.3.2']
12
- ] # An array of rubygem dependencies [name, version]
13
-
14
- @config_file = "~/.rubyforge/user-config.yml"
15
- @config = nil
16
- RUBYFORGE_USERNAME = "unknown"
17
- def rubyforge_username
18
- unless @config
19
- begin
20
- @config = YAML.load(File.read(File.expand_path(@config_file)))
21
- rescue
22
- puts <<-EOS
23
- ERROR: No rubyforge config file found: #{@config_file}
24
- Run 'rubyforge setup' to prepare your env for access to Rubyforge
25
- - See http://newgem.rubyforge.org/rubyforge.html for more details
26
- EOS
27
- exit
28
- end
29
- end
30
- RUBYFORGE_USERNAME.replace @config["username"]
31
- end
32
-
33
-
34
- VERS = RbIphoneTest::VERSION::STRING
35
- RDOC_OPTS = ['--quiet', '--title', 'rbiphonetest documentation',
36
- "--opname", "index.html",
37
- "--line-numbers",
38
- "--main", "README",
39
- "--inline-source"]
40
-
41
- class Hoe
42
- def extra_deps
43
- @extra_deps.reject! { |x| Array(x).first == 'hoe' }
44
- @extra_deps
45
- end
46
- end
47
-
48
- # Generate all the Rake tasks
49
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
50
- $hoe = Hoe.new(GEM_NAME, VERS) do |p|
51
- p.developer(AUTHOR, EMAIL)
52
- p.description = DESCRIPTION
53
- p.summary = DESCRIPTION
54
- p.url = HOMEPATH
55
- p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
56
- p.test_globs = ["test/**/test_*.rb"]
57
- p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
58
-
59
- # == Optional
60
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
61
- #p.extra_deps = EXTRA_DEPENDENCIES
62
-
63
- #p.spec_extras = {} # A hash of extra values to set in the gemspec.
64
- end
65
-
66
- CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
67
- PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
68
- $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
69
- $hoe.rsync_args = '-av --delete --ignore-errors'
70
- $hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
@@ -1,15 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
-
4
- require 'rubygems'
5
- %w[rake hoe newgem rubigen].each do |req_gem|
6
- begin
7
- require req_gem
8
- rescue LoadError
9
- puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
- puts "Installation: gem install #{req_gem} -y"
11
- exit
12
- end
13
- end
14
-
15
- $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
@@ -1,34 +0,0 @@
1
- desc 'Release the website and new gem version'
2
- task :deploy => [:check_version, :website, :release] do
3
- puts "Remember to create SVN tag:"
4
- puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
- puts "Suggested comment:"
7
- puts "Tagging release #{CHANGES}"
8
- end
9
-
10
- desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
- task :local_deploy => [:website_generate, :install_gem]
12
-
13
- task :check_version do
14
- unless ENV['VERSION']
15
- puts 'Must pass a VERSION=x.y.z release version'
16
- exit
17
- end
18
- unless ENV['VERSION'] == VERS
19
- puts "Please update your version.rb to match the release version, currently #{VERS}"
20
- exit
21
- end
22
- end
23
-
24
- desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
- task :install_gem_no_doc => [:clean, :package] do
26
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
- end
28
-
29
- namespace :manifest do
30
- desc 'Recreate Manifest.txt to include ALL files'
31
- task :refresh do
32
- `rake check_manifest | patch -p0 > Manifest.txt`
33
- end
34
- end
@@ -1,7 +0,0 @@
1
- task :ruby_env do
2
- RUBY_APP = if RUBY_PLATFORM =~ /java/
3
- "jruby"
4
- else
5
- "ruby"
6
- end unless defined? RUBY_APP
7
- end
@@ -1,17 +0,0 @@
1
- desc 'Generate website files'
2
- task :website_generate => :ruby_env do
3
- (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
- sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
- end
6
- end
7
-
8
- desc 'Upload website files to rubyforge'
9
- task :website_upload do
10
- host = "#{rubyforge_username}@rubyforge.org"
11
- remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
- local_dir = 'website'
13
- sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
- end
15
-
16
- desc 'Generate and upload website files'
17
- task :website => [:website_generate, :website_upload, :publish_docs]
@@ -1,11 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- class TestRbIphoneTest < Test::Unit::TestCase
4
-
5
- def setup
6
- end
7
-
8
- def test_truth
9
- assert true
10
- end
11
- end