rbiphonetest 0.3.0 → 0.4.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.
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