setup 4.2.0 → 5.0.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 (55) hide show
  1. data/HISTORY +47 -3
  2. data/MANIFEST +49 -16
  3. data/README.rdoc +148 -0
  4. data/bin/setup.rb +1 -5
  5. data/lib/setup.rb +2 -2
  6. data/lib/setup/base.rb +143 -0
  7. data/lib/setup/command.rb +218 -114
  8. data/lib/setup/compiler.rb +69 -0
  9. data/lib/setup/configuration.rb +822 -0
  10. data/lib/setup/constants.rb +12 -0
  11. data/lib/setup/{rubyver.rb → core_ext.rb} +0 -0
  12. data/lib/setup/documentor.rb +149 -0
  13. data/lib/setup/installer.rb +363 -0
  14. data/lib/setup/project.rb +68 -0
  15. data/lib/setup/rake.rb +44 -45
  16. data/lib/setup/session.rb +233 -0
  17. data/lib/setup/tester.rb +92 -0
  18. data/lib/setup/uninstaller.rb +76 -0
  19. data/meta/active +1 -0
  20. data/meta/collection +1 -0
  21. data/meta/{abstract → description} +0 -0
  22. data/meta/{package → name} +0 -0
  23. data/meta/repository +1 -0
  24. data/meta/ruby +3 -0
  25. data/meta/version +1 -1
  26. data/script/bstrap +5 -0
  27. data/script/bundle +64 -0
  28. data/script/setup +1338 -0
  29. data/script/test +3 -0
  30. data/test/cases/installer.rb +28 -0
  31. data/test/features/config.feature +16 -0
  32. data/test/features/document.feature +2 -0
  33. data/test/features/install.feature +72 -0
  34. data/test/features/make.feature +18 -0
  35. data/test/features/step_definitions/common_steps.rb +34 -0
  36. data/test/features/step_definitions/config_steps.rb +24 -0
  37. data/test/features/step_definitions/env.rb +37 -0
  38. data/test/features/step_definitions/install_steps.rb +75 -0
  39. data/test/features/step_definitions/setup_steps.rb +30 -0
  40. data/test/features/step_definitions/uninstall_steps.rb +8 -0
  41. data/test/features/test.feature +2 -0
  42. data/test/features/uninstall.feature +13 -0
  43. data/test/fixtures/faux-project/bin/faux +3 -0
  44. data/test/fixtures/faux-project/ext/faux/extconf.rb +12 -0
  45. data/test/fixtures/faux-project/ext/faux/faux.c +24 -0
  46. data/test/fixtures/faux-project/lib/faux.rb +1 -0
  47. metadata +58 -29
  48. data/README +0 -106
  49. data/RELEASE +0 -41
  50. data/lib/setup/build.rb +0 -2
  51. data/lib/setup/config.rb +0 -452
  52. data/lib/setup/error.rb +0 -4
  53. data/lib/setup/install.rb +0 -1007
  54. data/meta/setup/metaconfig.rb +0 -3
  55. data/test/test_installer.rb +0 -139
@@ -1,3 +0,0 @@
1
- # This is simply here to test metaconfig loading.
2
-
3
- add_config('dummyvar', nil, 'ignore this options')
@@ -1,139 +0,0 @@
1
- # This isn't begin used presently. The only tests were for sheband lines
2
- # and these are not being made in the current version.
3
-
4
- require 'setup'
5
- require 'fileutils'
6
- require 'stringio'
7
- require 'test/unit'
8
-
9
- class DummyConfig
10
- def initialize(config)
11
- @config = config
12
- end
13
-
14
- def [](key)
15
- @config[key]
16
- end
17
-
18
- def no_harm?
19
- false
20
- end
21
-
22
- def verbose?
23
- false
24
- end
25
- end
26
-
27
- class TestInstaller #< Test::Unit::TestCase
28
-
29
- include FileUtils
30
-
31
- def setup
32
- rm_rf %w(srcdir objdir)
33
- mkdir %w(srcdir objdir)
34
- Dir.chdir 'objdir'
35
- $stderr, $orig_stderr = StringIO.new, $stderr
36
- end
37
-
38
- def teardown
39
- $stderr = $orig_stderr
40
- Dir.chdir '..'
41
- rm_rf %w(srcdir objdir)
42
- end
43
-
44
- def setup_installer(config = {})
45
- @installer = Installer.new(DummyConfig.new(config), '../srcdir', '.')
46
- end
47
-
48
- def do_update_shebang_line(id, str)
49
- create id, str
50
- @installer.update_shebang_line "../srcdir/#{id}"
51
- read(id)
52
- end
53
-
54
- def create(filename, content)
55
- File.open("../srcdir/#{filename}", 'wb') {|f|
56
- f.write content
57
- }
58
- end
59
-
60
- def read(filename)
61
- path = File.exist?(filename) ? filename : "../srcdir/#{filename}"
62
- File.open(path, 'rb') {|f|
63
- return f.read
64
- }
65
- end
66
-
67
- def test_update_shebang_line__never
68
- setup_installer 'shebang' => 'never', 'rubypath' => 'ERROR'
69
- assert_equal "#!/usr/local/bin/ruby\nprogram",
70
- do_update_shebang_line('ruby', "#!/usr/local/bin/ruby\nprogram")
71
- assert_equal "#! /usr/local/bin/ruby\nprogram",
72
- do_update_shebang_line('ruby-sp', "#! /usr/local/bin/ruby\nprogram")
73
- assert_equal "#!/usr/local/bin/ruby -Ke\nprogram",
74
- do_update_shebang_line('ruby-arg', "#!/usr/local/bin/ruby -Ke\nprogram")
75
- assert_equal "#!/usr/bin/ruby -n -p\nprogram",
76
- do_update_shebang_line('ruby-args', "#!/usr/bin/ruby -n -p\nprogram")
77
- assert_equal "#!/usr/bin/env ruby\nprogram",
78
- do_update_shebang_line('env-ruby', "#!/usr/bin/env ruby\nprogram")
79
- assert_equal "#!/usr/bin/env perl\nprogram",
80
- do_update_shebang_line('env-noruby', "#!/usr/bin/env perl\nprogram")
81
- assert_equal "#!/bin/sh\nprogram",
82
- do_update_shebang_line('interp', "#!/bin/sh\nprogram")
83
- assert_equal "#!/bin/sh -l -r -\nprogram",
84
- do_update_shebang_line('interp-args', "#!/bin/sh -l -r -\nprogram")
85
- assert_equal "program",
86
- do_update_shebang_line('bare', "program")
87
- assert_equal "\001\002\003\n\004\005\006",
88
- do_update_shebang_line('binary', "\001\002\003\n\004\005\006")
89
- end
90
-
91
- def test_update_shebang_line__all
92
- setup_installer 'shebang' => 'all', 'rubypath' => 'RUBYPATH'
93
- assert_equal "#! RUBYPATH\nprogram",
94
- do_update_shebang_line('ruby', "#!/usr/local/bin/ruby\nprogram")
95
- assert_equal "#! RUBYPATH\nprogram",
96
- do_update_shebang_line('ruby-sp', "#! /usr/local/bin/ruby\nprogram")
97
- assert_equal "#! RUBYPATH -Ke\nprogram",
98
- do_update_shebang_line('ruby-arg', "#!/usr/local/bin/ruby -Ke\nprogram")
99
- assert_equal "#! RUBYPATH -n -p\nprogram",
100
- do_update_shebang_line('ruby-args', "#!/usr/bin/ruby -n -p\nprogram")
101
- assert_equal "#! RUBYPATH\nprogram",
102
- do_update_shebang_line('env-ruby', "#!/usr/bin/env ruby\nprogram")
103
- assert_equal "#! RUBYPATH\nprogram",
104
- do_update_shebang_line('env-noruby', "#!/usr/bin/env perl\nprogram")
105
- assert_equal "#! RUBYPATH\nprogram",
106
- do_update_shebang_line('interp', "#!/bin/sh\nprogram")
107
- assert_equal "#! RUBYPATH\nprogram", # args removed
108
- do_update_shebang_line('interp-args', "#!/bin/sh -l -r -\nprogram")
109
- assert_equal "#! RUBYPATH\nprogram",
110
- do_update_shebang_line('bare', "program")
111
- assert_equal "#! RUBYPATH\n\001\002\003\n\004\005\006",
112
- do_update_shebang_line('binary', "\001\002\003\n\004\005\006")
113
- end
114
-
115
- def test_update_shebang_line__ruby
116
- setup_installer 'shebang' => 'ruby', 'rubypath' => 'RUBYPATH'
117
- assert_equal "#! RUBYPATH\nprogram",
118
- do_update_shebang_line('ruby', "#!/usr/local/bin/ruby\nprogram")
119
- assert_equal "#! RUBYPATH\nprogram",
120
- do_update_shebang_line('ruby-sp', "#! /usr/local/bin/ruby\nprogram")
121
- assert_equal "#! RUBYPATH -Ke\nprogram",
122
- do_update_shebang_line('ruby-arg', "#!/usr/local/bin/ruby -Ke\nprogram")
123
- assert_equal "#! RUBYPATH -n -p\nprogram",
124
- do_update_shebang_line('ruby-args', "#!/usr/bin/ruby -n -p\nprogram")
125
- assert_equal "#! RUBYPATH\nprogram",
126
- do_update_shebang_line('env-ruby', "#!/usr/bin/env ruby\nprogram")
127
- assert_equal "#!/usr/bin/env perl\nprogram",
128
- do_update_shebang_line('env-noruby', "#!/usr/bin/env perl\nprogram")
129
- assert_equal "#!/bin/sh\nprogram",
130
- do_update_shebang_line('interp', "#!/bin/sh\nprogram")
131
- assert_equal "#!/bin/sh -l -r -\nprogram",
132
- do_update_shebang_line('interp-args', "#!/bin/sh -l -r -\nprogram")
133
- assert_equal "program",
134
- do_update_shebang_line('bare', "program")
135
- assert_equal "\001\002\003\n\004\005\006",
136
- do_update_shebang_line('binary', "\001\002\003\n\004\005\006")
137
- end
138
-
139
- end