sprout 0.7.193-mswin32 → 0.7.196-mswin32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sprout might be problematic. Click here for more details.

data/lib/sprout.rb CHANGED
@@ -33,6 +33,7 @@ require 'sprout/builder'
33
33
  require 'sprout/version'
34
34
  require 'sprout/tasks/tool_task'
35
35
  require 'sprout/general_tasks'
36
+ require 'sprout/generator'
36
37
 
37
38
  module Sprout
38
39
  SUDO_INSTALL_GEMS = 'false' == ENV['SUDO_INSTALL_GEMS'] ? false : true
@@ -138,11 +139,12 @@ module Sprout
138
139
  # For each sprout found, remove it!
139
140
  RubiGen::GemGeneratorSource.new().each_sprout do |sprout|
140
141
  count += 1
141
- command = "#{get_gem_preamble} uninstall -x -a -i -q #{sprout.name}"
142
+ command = "#{get_gem_preamble} uninstall -x -a -q #{sprout.name}"
142
143
 
143
144
  if(!confirmation)
144
145
  break unless confirmation = remove_gems_confirmation
145
146
  end
147
+ puts "executing #{command}"
146
148
  raise ">> Exited with errors: #{$?}" unless system(command)
147
149
  end
148
150
 
@@ -251,7 +253,7 @@ EOF
251
253
  exe = target.archive_path
252
254
  end
253
255
 
254
- if(File.exists?(exe) && !File.directory?(exe) && File.stat(exe).mode != 33261)
256
+ if(File.exists?(exe) && !File.directory?(exe) && File.stat(exe).executable?)
255
257
  File.chmod 0755, exe
256
258
  end
257
259
 
@@ -324,7 +326,7 @@ EOF
324
326
  # This method will actually download and install the provided gem by +name+ and +requirements+ if
325
327
  # it is not found locally on the system.
326
328
  def self.find_gem_spec(name, requirements=nil, recursed=false)
327
- specs = Gem::cache.search(/.*#{name}$/).reverse # Found specs are returned in order from oldest to newest!?
329
+ specs = Gem::cache.sprout_search(/.*#{name}$/).reverse # Found specs are returned in order from oldest to newest!?
328
330
  requirement = nil
329
331
  if(requirements)
330
332
  requirement = Gem::Requirement.new(requirements)
@@ -344,7 +346,7 @@ EOF
344
346
  else
345
347
  msg = ">> Loading gem [#{name}]"
346
348
  msg << " #{requirements}" if requirements
347
- msg << " from #{gem_sources.join(', ')} with it's dependencies"
349
+ msg << " from #{gem_sources.join(', ')} with its dependencies"
348
350
  Log.puts msg
349
351
  parts = [ 'ins', '-r', name ]
350
352
  # This url should be removed once released, released gems should be hosted from the rubyforge
@@ -1,3 +1,58 @@
1
+
2
+ class Gem::SourceIndex
3
+
4
+ # This feature seems to be getting deprecated from the latest
5
+ # gems releases (1.3.x).
6
+ # We actually need it and don't want the nagging - so,
7
+ # copied sources from RubyGems SVN trunk, and mixing in...
8
+ # :-(
9
+ # There should be a more stable integration point with RubyGems
10
+ # Any ideas or contributions are welcome!
11
+ def sprout_search(gem_pattern, platform_only = false)
12
+ version_requirement = nil
13
+ only_platform = false
14
+
15
+ # unless Gem::Dependency === gem_pattern
16
+ # warn "#{Gem.location_of_caller.join ':'}:Warning: Gem::SourceIndex#search support for #{gem_pattern.class} patterns is deprecated"
17
+ # end
18
+
19
+ case gem_pattern
20
+ when Regexp then
21
+ version_requirement = platform_only || Gem::Requirement.default
22
+ when Gem::Dependency then
23
+ only_platform = platform_only
24
+ version_requirement = gem_pattern.version_requirements
25
+ gem_pattern = if Regexp === gem_pattern.name then
26
+ gem_pattern.name
27
+ elsif gem_pattern.name.empty? then
28
+ //
29
+ else
30
+ /^#{Regexp.escape gem_pattern.name}$/
31
+ end
32
+ else
33
+ version_requirement = platform_only || Gem::Requirement.default
34
+ gem_pattern = /#{gem_pattern}/i
35
+ end
36
+
37
+ unless Gem::Requirement === version_requirement then
38
+ version_requirement = Gem::Requirement.create version_requirement
39
+ end
40
+
41
+ specs = @gems.values.select do |spec|
42
+ spec.name =~ gem_pattern and
43
+ version_requirement.satisfied_by? spec.version
44
+ end
45
+
46
+ if only_platform then
47
+ specs = specs.select do |spec|
48
+ Gem::Platform.match spec.platform
49
+ end
50
+ end
51
+
52
+ specs.sort_by { |s| s.sort_obj }
53
+ end
54
+ end
55
+
1
56
  module RubiGen # :nodoc:[all]
2
57
 
3
58
  class Base # :nodoc:[all]
@@ -37,7 +92,7 @@ module RubiGen # :nodoc:[all]
37
92
 
38
93
  # Yield latest versions of generator gems.
39
94
  def each
40
- Gem::cache.search(/sprout-*#{@sprout_name}-bundle$/).inject({}) { |latest, gem|
95
+ Gem::cache.sprout_search(/sprout-*#{@sprout_name}-bundle$/).inject({}) { |latest, gem|
41
96
  hem = latest[gem.name]
42
97
  latest[gem.name] = gem if hem.nil? or gem.version > hem.version
43
98
  latest
@@ -47,7 +102,7 @@ module RubiGen # :nodoc:[all]
47
102
  end
48
103
 
49
104
  def each_sprout
50
- Gem::cache.search(/^sprout-.*/).inject({}) { |latest, gem|
105
+ Gem::cache.sprout_search(/^sprout-.*/).inject({}) { |latest, gem|
51
106
  hem = latest[gem.name]
52
107
  latest[gem.name] = gem if hem.nil? or gem.version > hem.version
53
108
  latest
@@ -38,6 +38,10 @@ module Sprout #:nodoc:
38
38
  @alive = update_status
39
39
  end
40
40
 
41
+ def close
42
+ update_status
43
+ end
44
+
41
45
  def update_status
42
46
  pid_int = Integer("#{ @pid }")
43
47
  begin
@@ -122,6 +122,8 @@ module Sprout
122
122
  attr_accessor :test_height
123
123
  # The test runner SWF width
124
124
  attr_accessor :test_width
125
+ # Tasks that can, will use the Flex Compiler SHell.
126
+ attr_accessor :use_fcsh
125
127
  # The default width of the SWF file
126
128
  # _(This value is overridden when embedded in an HTML page)_
127
129
  attr_accessor :width
@@ -183,7 +183,7 @@ module Sprout
183
183
  # the command works fine!?
184
184
  def unpack_dmg(dmg_file, dir)
185
185
  # 1) Mount the dmg in place
186
- # 2) Recursively Copy it's contents to asproject_home
186
+ # 2) Recursively Copy its contents to asproject_home
187
187
  # 3) Unmount the dmg
188
188
  if(mounted_path.nil?)
189
189
  raise StandardError.new('DMG file downloaded, but the RemoteFileTask needs a mounted_path in order to mount it')
@@ -16,7 +16,7 @@ module Sprout
16
16
  # be compared and if they differ, the installation process will break.
17
17
  attr_accessor :md5
18
18
 
19
- # Used for dmg archives. Absolute path to the mounted dmg (essentially it's name)
19
+ # Used for dmg archives. Absolute path to the mounted dmg (essentially its name)
20
20
  attr_accessor :mount_path
21
21
 
22
22
  # Which platform will this RemoteFileTarget support.
data/lib/sprout/user.rb CHANGED
@@ -196,31 +196,40 @@ module Sprout
196
196
  return Platform::IMPL
197
197
  end
198
198
  end
199
-
199
+
200
200
  def get_process_runner(command)
201
201
  return ProcessRunner.new(command)
202
202
  end
203
203
 
204
+ # Creates a new process, executes the command
205
+ # and returns the result and throws if the process
206
+ # writes to stderr
204
207
  def execute(tool, options='')
205
208
  Log.puts(">> Execute: #{File.basename(tool)} #{options}")
206
209
  tool = clean_path(tool)
207
210
  runner = get_process_runner("#{tool} #{options}")
208
-
211
+
209
212
  result = runner.read
210
213
  error = runner.read_err
214
+
211
215
  if(result.size > 0)
212
216
  Log.puts result
213
217
  end
218
+
214
219
  if(error.size > 0)
215
220
  raise ExecutionError.new("[ERROR] #{error}")
216
221
  end
217
222
  end
218
223
 
224
+ # Creates and returns the process without
225
+ # attempting to read or write to the stream.
226
+ # This is useful for interacting with
227
+ # long-lived CLI processes like FCSH or FDB.
219
228
  def execute_silent(tool, options='')
220
229
  tool = clean_path(tool)
221
230
  return get_process_runner("#{tool} #{options}")
222
231
  end
223
-
232
+
224
233
  def execute_thread(tool, options='')
225
234
  return Thread.new {
226
235
  execute(tool, options)
@@ -2,7 +2,7 @@ module Sprout
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 7
5
- TINY = 193
5
+ TINY = 196
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  MAJOR_MINOR = [MAJOR, MINOR].join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.193
4
+ version: 0.7.196
5
5
  platform: mswin32
6
6
  authors:
7
7
  - Luke Bayes
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-20 00:00:00 -07:00
12
+ date: 2009-01-06 00:00:00 -08:00
13
13
  default_executable: sprout
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  requirements: []
161
161
 
162
162
  rubyforge_project: sprout
163
- rubygems_version: 1.2.0
163
+ rubygems_version: 1.3.1
164
164
  signing_key:
165
165
  specification_version: 2
166
166
  summary: Sprouts is an open-source, cross-platform project generation, configuration and build tool.