fig 0.1.39-java → 0.1.41-java

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.
@@ -0,0 +1,7 @@
1
+ require 'fig/userinputerror'
2
+
3
+ module Fig
4
+ # An issue with a stored package.
5
+ class PackageError < UserInputError
6
+ end
7
+ end
data/lib/fig/parser.rb CHANGED
@@ -2,6 +2,8 @@ require 'polyglot'
2
2
  require 'treetop'
3
3
 
4
4
  require 'fig/grammar'
5
+ require 'fig/logging'
6
+ require 'fig/packageerror'
5
7
 
6
8
  module Fig
7
9
  class Parser
@@ -12,16 +14,11 @@ module Fig
12
14
  def parse_package(package_name, version_name, directory, input)
13
15
  input = input.gsub(/#.*$/, '')
14
16
  result = @parser.parse(" #{input} ")
15
- if result.nil?
16
- $stderr.puts "#{directory}: #{@parser.failure_reason}"
17
- exit 10
17
+ if result.nil?
18
+ Fig::Logging.fatal "#{directory}: #{@parser.failure_reason}"
19
+ raise PackageError.new
18
20
  end
19
21
  result.to_package(package_name, version_name, directory)
20
22
  end
21
-
22
- # def parse_descriptor(descriptor)
23
- # puts @parser.methods.sort
24
- # end
25
23
  end
26
-
27
24
  end
@@ -1,12 +1,17 @@
1
+ require 'fig/logging'
2
+ require 'fig/notfounderror'
1
3
  require 'fig/parser'
4
+ require 'fig/repositoryerror'
5
+ require 'fig/urlaccesserror'
2
6
 
3
7
  module Fig
4
8
  class Repository
5
- def initialize(os, local_repository_dir, remote_repository_url, remote_repository_user=nil, update=false, update_if_missing=true)
9
+ def initialize(os, local_repository_dir, remote_repository_url, application_config, remote_repository_user=nil, update=false, update_if_missing=true)
6
10
  @os = os
7
11
  @local_repository_dir = local_repository_dir
8
12
  @remote_repository_url = remote_repository_url
9
13
  @remote_repository_user = remote_repository_user
14
+ @application_config = application_config
10
15
  @update = update
11
16
  @update_if_missing = update_if_missing
12
17
  @parser = Parser.new
@@ -20,7 +25,7 @@ module Fig
20
25
  end
21
26
  end
22
27
 
23
- def clean(package_name, version_name)
28
+ def clean(package_name, version_name)
24
29
  dir = File.join(@local_repository_dir, package_name)
25
30
  dir = File.join(dir, version_name) if version_name
26
31
  FileUtils.rm_rf(dir)
@@ -42,13 +47,13 @@ module Fig
42
47
  @os.download_list(@remote_repository_url)
43
48
  end
44
49
 
45
- def publish_package(package_statements, package_name, version_name, local_only)
50
+ def publish_package(package_statements, package_name, version_name, local_only)
46
51
  temp_dir = temp_dir_for_package(package_name, version_name)
47
52
  @os.clear_directory(temp_dir)
48
53
  local_dir = local_dir_for_package(package_name, version_name)
49
54
  @os.clear_directory(local_dir)
50
- fig_file = File.join(temp_dir, ".fig")
51
- content = bundle_resources(package_statements).map do |statement|
55
+ fig_file = File.join(temp_dir, '.fig')
56
+ content = bundle_resources(package_statements).map do |statement|
52
57
  if statement.is_a?(Publish)
53
58
  nil
54
59
  elsif statement.is_a?(Archive) || statement.is_a?(Resource)
@@ -56,17 +61,17 @@ module Fig
56
61
  archive_name = statement.url
57
62
  archive_remote = "#{remote_dir_for_package(package_name, version_name)}/#{statement.url}"
58
63
  else
59
- archive_name = statement.url.split("/").last
64
+ archive_name = statement.url.split('/').last
60
65
  archive_remote = "#{remote_dir_for_package(package_name, version_name)}/#{archive_name}"
61
66
  end
62
- if is_url?(statement.url)
67
+ if is_url_with_access?(statement.url)
63
68
  archive_local = File.join(temp_dir, archive_name)
64
69
  @os.download(statement.url, archive_local)
65
70
  else
66
71
  archive_local = statement.url
67
72
  end
68
73
  @os.upload(archive_local, archive_remote, @remote_repository_user) unless local_only
69
- @os.copy(archive_local, local_dir + "/" + archive_name)
74
+ @os.copy(archive_local, local_dir + '/' + archive_name)
70
75
  if statement.is_a?(Archive)
71
76
  @os.unpack_archive(local_dir, archive_name)
72
77
  end
@@ -92,7 +97,7 @@ module Fig
92
97
  end
93
98
  if resources.size > 0
94
99
  resources = expand_globs_from(resources)
95
- file = "resources.tar.gz"
100
+ file = 'resources.tar.gz'
96
101
  @os.create_archive(file, resources)
97
102
  new_package_statements.unshift(Archive.new(file))
98
103
  at_exit { File.delete(file) }
@@ -101,12 +106,17 @@ module Fig
101
106
  end
102
107
 
103
108
  def load_package(package_name, version_name)
109
+ Logging.debug "Considering #{package_name}/#{version_name}."
104
110
  if @update || (@update_if_missing && package_missing?(package_name, version_name))
105
111
  update_package(package_name, version_name)
106
112
  end
107
113
  read_local_package(package_name, version_name)
108
114
  end
109
115
 
116
+ def updating?
117
+ return @update || @update_if_missing
118
+ end
119
+
110
120
  def update_package(package_name, version_name)
111
121
  remote_fig_file = remote_fig_file_for_package(package_name, version_name)
112
122
  local_fig_file = local_fig_file_for_package(package_name, version_name)
@@ -114,17 +124,17 @@ module Fig
114
124
  if @os.download(remote_fig_file, local_fig_file)
115
125
  install_package(package_name, version_name)
116
126
  end
117
- rescue NotFoundException
118
- $stderr.puts "Package not found in remote repository: #{package_name}/#{version_name}"
127
+ rescue NotFoundError
128
+ Logging.fatal "Package not found in remote repository: #{package_name}/#{version_name}"
119
129
  delete_local_package(package_name, version_name)
120
- exit 1
130
+ raise RepositoryError.new
121
131
  end
122
132
  end
123
133
 
124
134
  def read_local_package(package_name, version_name)
125
135
  dir = local_dir_for_package(package_name, version_name)
126
136
  read_package_from_directory(dir, package_name, version_name)
127
- end
137
+ end
128
138
 
129
139
  def read_remote_package(package_name, version_name)
130
140
  url = remote_fig_file_for_package(package_name, version_name)
@@ -133,21 +143,21 @@ module Fig
133
143
  end
134
144
 
135
145
  def read_package_from_directory(dir, package_name, version_name)
136
- file = File.join(dir, ".fig")
146
+ file = File.join(dir, '.fig')
137
147
  if not File.exist?(file)
138
- file = File.join(dir, "package.fig")
148
+ file = File.join(dir, 'package.fig')
139
149
  end
140
150
  if not File.exist?(file)
141
- $stderr.puts "Fig file not found for package: #{file}"
142
- exit 10
151
+ Logging.fatal "Fig file not found for package: #{file}"
152
+ raise RepositoryError.new
143
153
  end
144
154
  read_package_from_file(file, package_name, version_name)
145
155
  end
146
156
 
147
157
  def read_package_from_file(file_name, package_name, version_name)
148
158
  if not @os.exist?(file_name)
149
- $stderr.puts "Package not found: #{package_name}/#{version_name}"
150
- exit 1
159
+ Logging.fatal "Package not found: #{package_name}/#{version_name}"
160
+ raise RepositoryError.new
151
161
  end
152
162
  modified_time = @os.mtime(file_name)
153
163
  content = @os.read(file_name)
@@ -158,7 +168,7 @@ module Fig
158
168
  descriptor = "#{package_name}/#{version_name}"
159
169
  dir = @overrides[descriptor]
160
170
  if dir
161
- $stderr.puts "override: #{descriptor}=#{dir}"
171
+ Logging.info "override: #{descriptor}=#{dir}"
162
172
  else
163
173
  dir = File.join(@local_repository_dir, package_name, version_name)
164
174
  end
@@ -174,13 +184,13 @@ module Fig
174
184
  @os.clear_directory(temp_dir)
175
185
  package.archive_urls.each do |archive_url|
176
186
  if not is_url?(archive_url)
177
- archive_url = remote_dir_for_package(package_name, version_name) + "/" + archive_url
187
+ archive_url = remote_dir_for_package(package_name, version_name) + '/' + archive_url
178
188
  end
179
189
  @os.download_archive(archive_url, File.join(temp_dir))
180
190
  end
181
191
  package.resource_urls.each do |resource_url|
182
192
  if not is_url?(resource_url)
183
- resource_url = remote_dir_for_package(package_name, version_name) + "/" + resource_url
193
+ resource_url = remote_dir_for_package(package_name, version_name) + '/' + resource_url
184
194
  end
185
195
  @os.download_resource(resource_url, File.join(temp_dir))
186
196
  end
@@ -188,13 +198,13 @@ module Fig
188
198
  @os.clear_directory(local_dir)
189
199
  # some packages contain no files, only a fig file.
190
200
  if not (package.archive_urls.empty? && package.resource_urls.empty?)
191
- FileUtils.mv(Dir.glob(File.join(temp_dir, "*")), local_dir)
201
+ FileUtils.mv(Dir.glob(File.join(temp_dir, '*')), local_dir)
192
202
  end
193
203
  write_local_package(package_name, version_name, package)
194
204
  rescue
195
- $stderr.puts "Install failed, cleaning up"
205
+ Logging.fatal 'Install failed, cleaning up.'
196
206
  delete_local_package(package_name, version_name)
197
- exit 10
207
+ raise RepositoryError.new
198
208
  end
199
209
  end
200
210
 
@@ -209,6 +219,12 @@ module Fig
209
219
  not (/ftp:\/\/|http:\/\/|file:\/\/|ssh:\/\// =~ url).nil?
210
220
  end
211
221
 
222
+ def is_url_with_access?(url)
223
+ return false if not is_url?(url)
224
+ raise URLAccessError.new(url) if not @application_config.url_access_allowed?(url)
225
+ return true
226
+ end
227
+
212
228
  def delete_local_package(package_name, version_name)
213
229
  FileUtils.rm_rf(local_dir_for_package(package_name, version_name))
214
230
  end
@@ -220,10 +236,10 @@ module Fig
220
236
 
221
237
  def remote_fig_file_for_package(package_name, version_name)
222
238
  "#{@remote_repository_url}/#{package_name}/#{version_name}/.fig"
223
- end
239
+ end
224
240
 
225
241
  def local_fig_file_for_package(package_name, version_name)
226
- File.join(local_dir_for_package(package_name, version_name), ".fig")
242
+ File.join(local_dir_for_package(package_name, version_name), '.fig')
227
243
  end
228
244
 
229
245
  def remote_dir_for_package(package_name, version_name)
@@ -231,7 +247,7 @@ module Fig
231
247
  end
232
248
 
233
249
  def temp_dir_for_package(package_name, version_name)
234
- File.join(@local_repository_dir, "tmp")
250
+ File.join(@local_repository_dir, 'tmp')
235
251
  end
236
252
 
237
253
  def package_missing?(package_name, version_name)
@@ -0,0 +1,7 @@
1
+ require 'fig/userinputerror'
2
+
3
+ module Fig
4
+ # A problem within/related to a repository.
5
+ class RepositoryError < UserInputError
6
+ end
7
+ end
data/lib/fig/retriever.rb CHANGED
@@ -1,35 +1,37 @@
1
1
  require 'ostruct'
2
2
  require 'set'
3
3
 
4
- # This class copies files from the project directories in ~/.fighome to the
5
- # user's working directory. It keeps track of which files have already been copied, and which
4
+ require 'fig/logging'
5
+
6
+ # This class copies files from the project directories in ~/.fighome to the
7
+ # user's working directory. It keeps track of which files have already been copied, and which
6
8
  # package/versions they came from, and deletes files as necessary to ensure that
7
- # we never have files from two different versions of the same package in the user's
8
- # working directory.
9
+ # we never have files from two different versions of the same package in the user's
10
+ # working directory.
9
11
  class Retriever
10
12
  def initialize(base_dir)
11
13
  @base_dir = base_dir
12
14
  @configs = {}
13
- @fig_dir = File.join(@base_dir, ".fig")
15
+ @fig_dir = File.join(@base_dir, '.fig')
14
16
 
15
- file = File.join(@fig_dir, "retrieve")
17
+ file = File.join(@fig_dir, 'retrieve')
16
18
  if File.exist?(file)
17
19
  load(file)
18
20
  end
19
21
  end
20
22
 
21
- def with_config(name, version)
23
+ def with_package_config(name, version)
22
24
  if name and version
23
25
  @config = @configs[name]
24
26
  if @config && @config.version != version
25
27
  @config.files.each do |relpath|
26
- $stderr.puts "\033[31m- [#{@config.name}/#{@config.version}] #{relpath}\033[0m"
28
+ Fig::Logging.info "- [#{@config.name}/#{@config.version}] #{relpath}"
27
29
  FileUtils.rm_f(File.join(@base_dir, relpath))
28
30
  end
29
31
  @config = nil
30
32
  end
31
33
  if not @config
32
- @config = new_config(name, version)
34
+ @config = new_package_config(name, version)
33
35
  @configs[name] = @config
34
36
  end
35
37
  else
@@ -44,10 +46,10 @@ class Retriever
44
46
 
45
47
  def save
46
48
  FileUtils.mkdir_p(@fig_dir)
47
- File.open(File.join(@fig_dir, "retrieve"), 'w') do |f|
49
+ File.open(File.join(@fig_dir, 'retrieve'), 'w') do |f|
48
50
  @configs.each do |name,config|
49
51
  config.files.each do |target|
50
- f << target << "=" << config.name << "/" << config.version << "\n"
52
+ f << target << '=' << config.name << '/' << config.version << "\n"
51
53
  end
52
54
  end
53
55
  end
@@ -65,10 +67,10 @@ private
65
67
  config = @configs[config_name]
66
68
  if config
67
69
  if config.version != config_version
68
- raise "version mismatch in .figretrieve"
70
+ raise 'version mismatch in .figretrieve'
69
71
  end
70
72
  else
71
- config = new_config(config_name, config_version)
73
+ config = new_package_config(config_name, config_version)
72
74
  @configs[config_name] = config
73
75
  end
74
76
  config.files << target
@@ -78,7 +80,7 @@ private
78
80
  end
79
81
  end
80
82
 
81
- def new_config(name, version)
83
+ def new_package_config(name, version)
82
84
  config = OpenStruct.new
83
85
  config.name = name
84
86
  config.version = version
@@ -91,13 +93,20 @@ private
91
93
  if File.directory?(source)
92
94
  FileUtils.mkdir_p(target)
93
95
  Dir.foreach(source) do |child|
94
- if child != "." and child != ".."
95
- copy(File.join(source, child), File.join(relpath, child))
96
+ if child != '.' and child != '..'
97
+ source_file = File.join(source, child)
98
+ target_file = File.join(relpath, child)
99
+ Fig::Logging.debug "Copying #{source_file} to #{target_file}."
100
+ copy(source_file, target_file)
96
101
  end
97
102
  end
98
103
  else
99
104
  if !File.exist?(target) || File.mtime(source) > File.mtime(target)
100
- $stderr.puts "\033[32m+ [#{@config.name}/#{@config.version}] #{relpath}\033[0m"
105
+ if Fig::Logging.debug?
106
+ Fig::Logging.debug "Copying package [#{@config.name}/#{@config.version}] from #{source} to #{target}."
107
+ else
108
+ Fig::Logging.info "+ [#{@config.name}/#{@config.version}] #{relpath}"
109
+ end
101
110
  FileUtils.mkdir_p(File.dirname(target))
102
111
  FileUtils.cp(source, target, :preserve => true)
103
112
  end
@@ -0,0 +1,9 @@
1
+ require 'fig/userinputerror'
2
+
3
+ module Fig
4
+ class URLAccessError < UserInputError
5
+ def initialize(url)
6
+ @url = url
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ module Fig
2
+ class UserInputError < StandardError
3
+ end
4
+ end
data/lib/fig/windows.rb CHANGED
@@ -22,12 +22,12 @@ EOF
22
22
 
23
23
  def self.with_generated_batch_script(cmd)
24
24
  command = cmd.join(' ')
25
- template = ERB.new(BATCH_SCRIPT_TEMPLATE, 0, "%")
25
+ template = ERB.new(BATCH_SCRIPT_TEMPLATE, 0, '%')
26
26
  output = template.result(binding)
27
27
  begin
28
- tf = File.new("C:/tmp/fig_command.bat", "w")
28
+ tf = File.new('C:/tmp/fig_command.bat', 'w')
29
29
  FileUtils.chmod(0755, tf.path)
30
- File.open(tf.path, "w") do |fh|
30
+ File.open(tf.path, 'w') do |fh|
31
31
  fh.puts output
32
32
  end
33
33
  tf.close
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fig
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.39
4
+ hash: 73
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 41
10
+ version: 0.1.41
6
11
  platform: java
7
12
  authors:
8
13
  - Matthew Foemmel
@@ -10,29 +15,39 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-10-07 00:00:00 -05:00
18
+ date: 2011-11-10 00:00:00 -06:00
14
19
  default_executable:
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
17
- name: net-ssh
22
+ name: highline
18
23
  prerelease: false
19
24
  requirement: &id001 !ruby/object:Gem::Requirement
20
25
  none: false
21
26
  requirements:
22
27
  - - ">="
23
28
  - !ruby/object:Gem::Version
24
- version: 2.0.15
29
+ hash: 11
30
+ segments:
31
+ - 1
32
+ - 6
33
+ - 2
34
+ version: 1.6.2
25
35
  type: :runtime
26
36
  version_requirements: *id001
27
37
  - !ruby/object:Gem::Dependency
28
- name: net-sftp
38
+ name: log4r
29
39
  prerelease: false
30
40
  requirement: &id002 !ruby/object:Gem::Requirement
31
41
  none: false
32
42
  requirements:
33
43
  - - ">="
34
44
  - !ruby/object:Gem::Version
35
- version: 2.0.4
45
+ hash: 25
46
+ segments:
47
+ - 1
48
+ - 1
49
+ - 5
50
+ version: 1.1.5
36
51
  type: :runtime
37
52
  version_requirements: *id002
38
53
  - !ruby/object:Gem::Dependency
@@ -43,64 +58,124 @@ dependencies:
43
58
  requirements:
44
59
  - - ">="
45
60
  - !ruby/object:Gem::Version
61
+ hash: 19
62
+ segments:
63
+ - 0
64
+ - 2
65
+ - 2
46
66
  version: 0.2.2
47
67
  type: :runtime
48
68
  version_requirements: *id003
49
69
  - !ruby/object:Gem::Dependency
50
- name: polyglot
70
+ name: net-sftp
51
71
  prerelease: false
52
72
  requirement: &id004 !ruby/object:Gem::Requirement
53
73
  none: false
54
74
  requirements:
55
75
  - - ">="
56
76
  - !ruby/object:Gem::Version
57
- version: 0.2.9
77
+ hash: 7
78
+ segments:
79
+ - 2
80
+ - 0
81
+ - 4
82
+ version: 2.0.4
58
83
  type: :runtime
59
84
  version_requirements: *id004
60
85
  - !ruby/object:Gem::Dependency
61
- name: treetop
86
+ name: net-ssh
62
87
  prerelease: false
63
88
  requirement: &id005 !ruby/object:Gem::Requirement
64
89
  none: false
65
90
  requirements:
66
91
  - - ">="
67
92
  - !ruby/object:Gem::Version
68
- version: 1.4.2
93
+ hash: 17
94
+ segments:
95
+ - 2
96
+ - 0
97
+ - 15
98
+ version: 2.0.15
69
99
  type: :runtime
70
100
  version_requirements: *id005
71
101
  - !ruby/object:Gem::Dependency
72
- name: highline
102
+ name: polyglot
73
103
  prerelease: false
74
104
  requirement: &id006 !ruby/object:Gem::Requirement
75
105
  none: false
76
106
  requirements:
77
107
  - - ">="
78
108
  - !ruby/object:Gem::Version
79
- version: 1.6.2
109
+ hash: 5
110
+ segments:
111
+ - 0
112
+ - 2
113
+ - 9
114
+ version: 0.2.9
80
115
  type: :runtime
81
116
  version_requirements: *id006
82
117
  - !ruby/object:Gem::Dependency
83
- name: rspec
118
+ name: rdoc
84
119
  prerelease: false
85
120
  requirement: &id007 !ruby/object:Gem::Requirement
86
121
  none: false
87
122
  requirements:
88
- - - ~>
123
+ - - ">="
89
124
  - !ruby/object:Gem::Version
90
- version: "1.3"
91
- type: :development
125
+ hash: 27
126
+ segments:
127
+ - 2
128
+ - 4
129
+ - 2
130
+ version: 2.4.2
131
+ type: :runtime
92
132
  version_requirements: *id007
93
133
  - !ruby/object:Gem::Dependency
94
- name: open4
134
+ name: treetop
95
135
  prerelease: false
96
136
  requirement: &id008 !ruby/object:Gem::Requirement
97
137
  none: false
98
138
  requirements:
99
139
  - - ">="
100
140
  - !ruby/object:Gem::Version
141
+ hash: 3
142
+ segments:
143
+ - 1
144
+ - 4
145
+ - 2
146
+ version: 1.4.2
147
+ type: :runtime
148
+ version_requirements: *id008
149
+ - !ruby/object:Gem::Dependency
150
+ name: open4
151
+ prerelease: false
152
+ requirement: &id009 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 21
158
+ segments:
159
+ - 1
160
+ - 0
161
+ - 1
101
162
  version: 1.0.1
102
163
  type: :development
103
- version_requirements: *id008
164
+ version_requirements: *id009
165
+ - !ruby/object:Gem::Dependency
166
+ name: rspec
167
+ prerelease: false
168
+ requirement: &id010 !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ hash: 7
174
+ segments:
175
+ - 2
176
+ version: "2"
177
+ type: :development
178
+ version_requirements: *id010
104
179
  description: Fig is a utility for configuring environments and managing dependencies across a team of developers. You give it a list of packages and a shell command to run; it creates an environment that includes those packages, then executes the shell command in it (the caller's environment is not affected).
105
180
  email: git@foemmel.com
106
181
  executables:
@@ -112,18 +187,31 @@ extra_rdoc_files:
112
187
  - LICENSE
113
188
  - README.md
114
189
  files:
190
+ - Changes
191
+ - VERSION
115
192
  - bin/fig
116
193
  - bin/fig-download
117
194
  - lib/fig.rb
195
+ - lib/fig/applicationconfiguration.rb
118
196
  - lib/fig/backtrace.rb
197
+ - lib/fig/configfileerror.rb
119
198
  - lib/fig/environment.rb
199
+ - lib/fig/figrc.rb
120
200
  - lib/fig/grammar.treetop
201
+ - lib/fig/log4rconfigerror.rb
202
+ - lib/fig/logging.rb
203
+ - lib/fig/networkerror.rb
204
+ - lib/fig/notfounderror.rb
121
205
  - lib/fig/options.rb
122
206
  - lib/fig/os.rb
123
207
  - lib/fig/package.rb
208
+ - lib/fig/packageerror.rb
124
209
  - lib/fig/parser.rb
125
210
  - lib/fig/repository.rb
211
+ - lib/fig/repositoryerror.rb
126
212
  - lib/fig/retriever.rb
213
+ - lib/fig/urlaccesserror.rb
214
+ - lib/fig/userinputerror.rb
127
215
  - lib/fig/windows.rb
128
216
  - LICENSE
129
217
  - README.md
@@ -141,19 +229,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
229
  requirements:
142
230
  - - ">="
143
231
  - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
144
235
  version: "0"
145
236
  required_rubygems_version: !ruby/object:Gem::Requirement
146
237
  none: false
147
238
  requirements:
148
239
  - - ">="
149
240
  - !ruby/object:Gem::Version
241
+ hash: 3
242
+ segments:
243
+ - 0
150
244
  version: "0"
151
245
  requirements: []
152
246
 
153
247
  rubyforge_project:
154
- rubygems_version: 1.5.3
248
+ rubygems_version: 1.3.7
155
249
  signing_key:
156
250
  specification_version: 3
157
- summary: Fig is a utility for configuring environments and managing dependencies across a team of developers..
251
+ summary: Fig is a utility for configuring environments and managing dependencies across a team of developers.
158
252
  test_files: []
159
253