sprout 0.7.193-darwin → 0.7.196-darwin

Sign up to get free protection for your applications and to get access to all the features.
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: darwin
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.