fig 1.24.1.beta.2 → 1.24.1.beta.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1e5215c6b2a2e43e74fc04c1d3edbdf085db2c0
4
- data.tar.gz: 40ae3c1877969e31dea223d4594fec1fa0b88cf2
3
+ metadata.gz: b8cdbd459dfb515f0701d28fe062527a0d3ed627
4
+ data.tar.gz: 724829b9273df955565b304b37c4f333f5f8c27e
5
5
  SHA512:
6
- metadata.gz: 88d441ff92224c341e3e79346eb4952b50b00841205fe17c2f7c2179ba2cc67ccc06c4ccdfc6a8c116f220656c5266d875e83813773cc7623bdd7c5486629f37
7
- data.tar.gz: 6e30cb231f647fc7b50b09c7570c1ce7bf9415eda4df9e5a70db3ac543f3cd302d44ec48213749e31571d0979af72d375e4098536c4a866e429606c115938505
6
+ metadata.gz: 4a7d05fa8c86fd0b7098b8dad60ee1d8a4aa5f55f6f5a909aa44f6c56d085cb98dd7083fffe67d408d0daeca92b591605c868b3ce306fdaf127652d154dd07bb
7
+ data.tar.gz: 690e99f51ed7ef89758c4650e762e6321fa2217ed6771400ae8c0b68e192a77c59948c761c0b3d2a9592fd57577044f659bcfa4ff9552d1ffdd9048933c747d5
data/Changes CHANGED
@@ -1,3 +1,21 @@
1
+ v1.24.1.beta.3 - 2015/04/27
2
+
3
+ Bug fixes:
4
+
5
+ - Fixed potential package version data collapsing in --yaml and --json
6
+ output.
7
+
8
+ - The --list-dependencies and --list-variables options now work with packages
9
+ brought in via an include-file statement.
10
+
11
+ Miscellaneous:
12
+
13
+ - Fig now refuses to use the --list-all-configs option with --graphviz,
14
+ --yaml, and --json options. The results were non-sensical in the face of
15
+ overrides and other conflicts between peer base configs.
16
+
17
+ - Display file names instead of "<unpublished>" for unnamed packages.
18
+
1
19
  v1.24.1.beta.2 - 2015/04/24
2
20
 
3
21
  Bug fix:
data/lib/fig.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
2
 
3
3
  module Fig
4
- VERSION = '1.24.1.beta.2'
4
+ VERSION = '1.24.1.beta.3'
5
5
  end
data/lib/fig/command.rb CHANGED
@@ -11,6 +11,7 @@ require 'fig/command/package_applier'
11
11
  require 'fig/command/package_loader'
12
12
  require 'fig/figrc'
13
13
  require 'fig/logging'
14
+ require 'fig/non_repository_packages'
14
15
  require 'fig/operating_system'
15
16
  require 'fig/package'
16
17
  require 'fig/parser'
@@ -76,10 +77,11 @@ class Fig::Command
76
77
  base_config(),
77
78
  @environment,
78
79
  @repository,
80
+ @non_repository_packages,
79
81
  @working_directory_maintainer,
80
82
  @operating_system,
81
83
  @package_source_description,
82
- @package_loaded_from_path
84
+ @package_load_path_description
83
85
  )
84
86
 
85
87
  actions.each do
@@ -139,10 +141,11 @@ class Fig::Command
139
141
  :base_config,
140
142
  :environment,
141
143
  :repository,
144
+ :non_repository_packages,
142
145
  :working_directory_maintainer,
143
146
  :operating_system,
144
147
  :package_source_description,
145
- :package_loaded_from_path
148
+ :package_load_path_description
146
149
  )
147
150
 
148
151
  def handle_nothing_to_do()
@@ -202,6 +205,9 @@ class Fig::Command
202
205
  )
203
206
 
204
207
  prepare_repository()
208
+
209
+ @non_repository_packages = Fig::NonRepositoryPackages.new @parser
210
+
205
211
  prepare_runtime_environment()
206
212
  end
207
213
 
@@ -282,7 +288,7 @@ class Fig::Command
282
288
 
283
289
  @environment = Fig::RuntimeEnvironment.new(
284
290
  @repository,
285
- @parser,
291
+ @non_repository_packages,
286
292
  @options.suppress_includes,
287
293
  environment_variables,
288
294
  @working_directory_maintainer,
@@ -337,7 +343,8 @@ class Fig::Command
337
343
  @base_package = package_loader.load_package_object_from_file()
338
344
  end
339
345
  @package_source_description = package_loader.package_source_description()
340
- @package_loaded_from_path = package_loader.package_loaded_from_path()
346
+ @package_load_path_description =
347
+ package_loader.package_load_path_description()
341
348
 
342
349
  return
343
350
  end
@@ -84,6 +84,9 @@ module Fig::Command::Action::Role::ListFromDataStructure
84
84
  if package.version
85
85
  hash['version'] = package.version
86
86
  end
87
+ if package.file_path
88
+ hash['file'] = package.file_path
89
+ end
87
90
  if package.description
88
91
  hash['description'] = package.description
89
92
  end
@@ -93,6 +96,14 @@ module Fig::Command::Action::Role::ListFromDataStructure
93
96
  end
94
97
 
95
98
  def package_id(package)
96
- return package.name || "description: #{package.description}"
99
+ if package.name
100
+ return package.to_s
101
+ end
102
+
103
+ if file = package.file_path
104
+ return "file: #{file}"
105
+ end
106
+
107
+ return "description: #{package.description}"
97
108
  end
98
109
  end
@@ -73,6 +73,7 @@ module Fig::Command::Action::Role::ListWalkingDependencyTree
73
73
 
74
74
  if depth < 1
75
75
  @execution_context.repository.reset_cached_data
76
+ @execution_context.non_repository_packages.reset_cached_data
76
77
  end
77
78
 
78
79
  package_block.call base_package, config_name, depth
@@ -86,7 +87,7 @@ module Fig::Command::Action::Role::ListWalkingDependencyTree
86
87
 
87
88
  do_walk_dependency_tree(
88
89
  package,
89
- [descriptor.config],
90
+ [descriptor.config || Fig::Package::DEFAULT_CONFIG],
90
91
  new_backtrace,
91
92
  depth + 1,
92
93
  include_block,
@@ -121,6 +122,8 @@ module Fig::Command::Action::Role::ListWalkingDependencyTree
121
122
  return @execution_context.repository.get_package(
122
123
  descriptor, :allow_any_version
123
124
  )
125
+ elsif descriptor.file_path
126
+ return @execution_context.non_repository_packages[descriptor.file_path]
124
127
  end
125
128
 
126
129
  return base_package
@@ -93,9 +93,9 @@ module Fig::Command::Action::Role::Publish
93
93
  end
94
94
 
95
95
  def derive_publish_statements_from_environment_statements
96
- if @execution_context.package_loaded_from_path
96
+ if @execution_context.package_load_path_description
97
97
  message = 'Cannot publish based upon both a package definition file ('
98
- message << @execution_context.package_loaded_from_path
98
+ message << @execution_context.package_load_path_description
99
99
  message << ') and --set/--append options.'
100
100
 
101
101
  if @execution_context.package_source_description ==
@@ -916,19 +916,10 @@ Running commands:
916
916
  end
917
917
 
918
918
  if list_tree?
919
- if graphviz?
920
- raise Fig::Command::OptionError.new(
921
- 'Cannot use --list-tree and --graphviz at the same time.'
922
- )
923
- elsif json?
924
- raise Fig::Command::OptionError.new(
925
- 'Cannot use --list-tree and --json at the same time.'
926
- )
927
- elsif yaml?
928
- raise Fig::Command::OptionError.new(
929
- 'Cannot use --list-tree and --json at the same time.'
930
- )
931
- end
919
+ validate_list_options_with_nodes('--list-tree')
920
+ end
921
+ if list_all_configs?
922
+ validate_list_options_with_nodes('--list-all-configs')
932
923
  end
933
924
  if graphviz?
934
925
  if json?
@@ -981,6 +972,24 @@ Running commands:
981
972
  return
982
973
  end
983
974
 
975
+ def validate_list_options_with_nodes(conflicting_option)
976
+ if graphviz?
977
+ raise Fig::Command::OptionError.new(
978
+ "Cannot use #{conflicting_option} and --graphviz at the same time."
979
+ )
980
+ elsif json?
981
+ raise Fig::Command::OptionError.new(
982
+ "Cannot use #{conflicting_option} and --json at the same time."
983
+ )
984
+ elsif yaml?
985
+ raise Fig::Command::OptionError.new(
986
+ "Cannot use #{conflicting_option} and --json at the same time."
987
+ )
988
+ end
989
+
990
+ return
991
+ end
992
+
984
993
  def set_up_sub_actions()
985
994
  if @base_action and @base_action.sub_action?
986
995
  # This is a cheat because the only things with sub-actions at present are
@@ -71,6 +71,7 @@ class Fig::Command::PackageApplier
71
71
  @base_package.name(),
72
72
  @base_package.version(),
73
73
  @base_config,
74
+ :file_path => @base_package.file_path,
74
75
  :description => @base_package.description
75
76
  ),
76
77
  @base_package,
@@ -91,6 +92,7 @@ class Fig::Command::PackageApplier
91
92
  return Fig::Package.new(
92
93
  nil, # Name
93
94
  nil, # Version
95
+ nil, # File path
94
96
  'command-line',
95
97
  '.', # Working
96
98
  '.', # Base
@@ -9,7 +9,7 @@ class Fig::Command; end
9
9
 
10
10
  # Loads the base package.
11
11
  class Fig::Command::PackageLoader
12
- attr_reader :package_loaded_from_path
12
+ attr_reader :package_load_path_description
13
13
 
14
14
  DEFAULT_PACKAGE_FILE = 'package.fig'
15
15
  DEFAULT_APPLICATION_FILE = 'application.fig'
@@ -47,8 +47,8 @@ class Fig::Command::PackageLoader
47
47
  end
48
48
 
49
49
  def package_source_description()
50
- if @package_loaded_from_path
51
- return @package_loaded_from_path
50
+ if @package_load_path_description
51
+ return @package_load_path_description
52
52
  elsif @descriptor
53
53
  return Fig::PackageDescriptor.format(
54
54
  @descriptor.name, @descriptor.version, nil
@@ -64,18 +64,20 @@ class Fig::Command::PackageLoader
64
64
  if @package_definition_file == :none
65
65
  return nil
66
66
  elsif @package_definition_file == '-'
67
- @package_loaded_from_path = '<standard input>'
67
+ @package_load_path_description = '<standard input>'
68
68
 
69
69
  return $stdin.read
70
70
  elsif @package_definition_file.nil?
71
71
  if File.exist?(DEFAULT_PACKAGE_FILE)
72
- @package_loaded_from_path = DEFAULT_PACKAGE_FILE
72
+ @package_load_path_description = DEFAULT_PACKAGE_FILE
73
+ @package_load_path = DEFAULT_PACKAGE_FILE
73
74
  elsif File.exist?(DEFAULT_APPLICATION_FILE)
74
- @package_loaded_from_path = DEFAULT_APPLICATION_FILE
75
+ @package_load_path_description = DEFAULT_APPLICATION_FILE
76
+ @package_load_path = DEFAULT_APPLICATION_FILE
75
77
  end
76
78
 
77
- if @package_loaded_from_path
78
- return File.read(@package_loaded_from_path)
79
+ if @package_load_path
80
+ return File.read(@package_load_path)
79
81
  end
80
82
  else
81
83
  return read_in_package_definition_file(@package_definition_file)
@@ -86,7 +88,8 @@ class Fig::Command::PackageLoader
86
88
 
87
89
  def read_in_package_definition_file(config_file)
88
90
  if File.exist?(config_file)
89
- @package_loaded_from_path = config_file
91
+ @package_load_path_description = config_file
92
+ @package_load_path = config_file
90
93
  @package_include_file_base_directory = File.dirname config_file
91
94
 
92
95
  return File.read(config_file)
@@ -109,7 +112,8 @@ class Fig::Command::PackageLoader
109
112
  nil,
110
113
  nil,
111
114
  nil,
112
- :description => source_description,
115
+ :file_path => @package_load_path,
116
+ :description => @package_load_path ? nil : source_description,
113
117
  :source_description => source_description
114
118
  )
115
119
 
@@ -135,6 +139,7 @@ class Fig::Command::PackageLoader
135
139
  Fig::Package.new(
136
140
  nil, # Name
137
141
  nil, # Version
142
+ nil, # File path
138
143
  'synthetic',
139
144
  '.', # Working
140
145
  '.', # Base
@@ -0,0 +1,63 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/not_yet_parsed_package'
4
+ require 'fig/package_descriptor'
5
+
6
+
7
+ module Fig; end
8
+
9
+
10
+ class Fig::NonRepositoryPackages
11
+ def initialize(parser)
12
+ @parser = parser
13
+
14
+ reset_cached_data
15
+
16
+ return
17
+ end
18
+
19
+ def reset_cached_data
20
+ @packages_by_path = {}
21
+
22
+ return
23
+ end
24
+
25
+ def [](file_path)
26
+ file_path = File.expand_path file_path
27
+ if package = @packages_by_path[file_path]
28
+ return package
29
+ end
30
+
31
+ if ! File.exist? file_path
32
+ return
33
+ end
34
+
35
+ load_package file_path
36
+
37
+ return @packages_by_path[file_path]
38
+ end
39
+
40
+
41
+ private
42
+
43
+ def load_package(file_path)
44
+ content = File.read file_path
45
+
46
+ descriptor =
47
+ Fig::PackageDescriptor.new(nil, nil, nil, :file_path => file_path)
48
+
49
+ unparsed_package = Fig::NotYetParsedPackage.new
50
+ unparsed_package.descriptor = descriptor
51
+ unparsed_package.working_directory =
52
+ unparsed_package.include_file_base_directory =
53
+ File.dirname(file_path)
54
+ unparsed_package.source_description = file_path
55
+ unparsed_package.unparsed_text = content
56
+
57
+ package = @parser.parse_package unparsed_package
58
+
59
+ @packages_by_path[file_path] = package
60
+
61
+ return
62
+ end
63
+ end
data/lib/fig/package.rb CHANGED
@@ -5,6 +5,8 @@ require 'fig/no_such_package_config_error'
5
5
  require 'fig/package_descriptor'
6
6
  require 'fig/statement/archive'
7
7
  require 'fig/statement/configuration'
8
+ require 'fig/statement/include'
9
+ require 'fig/statement/include_file'
8
10
  require 'fig/statement/resource'
9
11
  require 'fig/statement/retrieve'
10
12
 
@@ -22,6 +24,7 @@ class Fig::Package
22
24
 
23
25
  attr_reader :name
24
26
  attr_reader :version
27
+ attr_reader :file_path
25
28
  attr_reader :description
26
29
  attr_reader :runtime_directory
27
30
  attr_reader :include_file_base_directory
@@ -32,6 +35,7 @@ class Fig::Package
32
35
  def initialize(
33
36
  name,
34
37
  version,
38
+ file_path,
35
39
  description,
36
40
  runtime_directory,
37
41
  include_file_base_directory,
@@ -40,6 +44,7 @@ class Fig::Package
40
44
  )
41
45
  @name = name
42
46
  @version = version
47
+ @file_path = file_path
43
48
  @description = description
44
49
  @runtime_directory = runtime_directory
45
50
  @include_file_base_directory = include_file_base_directory
@@ -68,12 +73,20 @@ class Fig::Package
68
73
  end
69
74
 
70
75
  def [](config_name)
71
- @statements.each do |stmt|
72
- return stmt if stmt.is_a?(Fig::Statement::Configuration) && stmt.name == config_name
76
+ @statements.each do
77
+ |statement|
78
+
79
+ return statement if
80
+ statement.is_a?(Fig::Statement::Configuration) \
81
+ && statement.name == config_name
73
82
  end
74
83
 
75
84
  descriptor = Fig::PackageDescriptor.new(
76
- @name, @version, config_name, :description => @description
85
+ @name,
86
+ @version,
87
+ config_name,
88
+ :file_path => @file_path,
89
+ :description => @description
77
90
  )
78
91
  config_description = nil
79
92
  if @name.nil? and @version.nil?
@@ -139,6 +152,12 @@ class Fig::Package
139
152
 
140
153
  if statement.is_a?(Fig::Statement::Include)
141
154
  descriptors << statement.resolved_dependency_descriptor(self, backtrace)
155
+ elsif statement.is_a?(Fig::Statement::IncludeFile)
156
+ full_path = statement.full_path_relative_to self
157
+
158
+ descriptors << Fig::PackageDescriptor.new(
159
+ nil, nil, nil, :file_path => full_path
160
+ )
142
161
  elsif statement.is_a?(Fig::Statement::Override)
143
162
  backtrace.add_override(statement)
144
163
  end
@@ -157,8 +176,18 @@ class Fig::Package
157
176
  return
158
177
  end
159
178
 
179
+ def name_or_file_or_description
180
+ return @name if @name
181
+
182
+ if @file_path
183
+ return "[#{@file_path}]"
184
+ end
185
+
186
+ return @description
187
+ end
188
+
160
189
  def to_s
161
- name = @name || UNPUBLISHED
190
+ name = name_or_file_or_description
162
191
  version = @version || '<empty>'
163
192
  return Fig::PackageDescriptor.format(name, version, nil)
164
193
  end
@@ -166,7 +195,7 @@ class Fig::Package
166
195
  def to_s_with_config(config_name)
167
196
  displayed_config = config_name == DEFAULT_CONFIG ? nil : config_name
168
197
  return Fig::PackageDescriptor.format(
169
- name || UNPUBLISHED, version, displayed_config
198
+ name_or_file_or_description, version, displayed_config
170
199
  )
171
200
  end
172
201
 
@@ -177,9 +206,8 @@ class Fig::Package
177
206
  )
178
207
  end
179
208
 
180
- private
181
209
 
182
- UNPUBLISHED = '<unpublished>'
210
+ private
183
211
 
184
212
  def compare_components(mine, others)
185
213
  if mine.nil?
@@ -11,7 +11,12 @@ class Fig::PackageDescriptor
11
11
  UNBRACKETED_COMPONENT_PATTERN = / (?! [.]{1,2} $) [a-zA-Z0-9_.-]+ /x
12
12
  COMPONENT_PATTERN = / \A #{UNBRACKETED_COMPONENT_PATTERN} \z /x
13
13
 
14
- attr_reader :name, :version, :config, :original_string, :description
14
+ attr_reader :name
15
+ attr_reader :version
16
+ attr_reader :config
17
+ attr_reader :original_string
18
+ attr_reader :file_path
19
+ attr_reader :description
15
20
 
16
21
  def self.format(
17
22
  name, version, config, use_default_config = false, description = nil
@@ -59,6 +64,9 @@ class Fig::PackageDescriptor
59
64
  # :version => { :required | :forbidden }
60
65
  # :config => { :required | :forbidden }
61
66
  # :original_string => the unparsed form
67
+ # :file_path => if this is for a file outside of the
68
+ # repository and not synthetic, the
69
+ # source of the package
62
70
  # :description => meta-information, if this is for a
63
71
  # synthetic package
64
72
  # :require_at_least_one_component => should we have at least one of
@@ -72,6 +80,7 @@ class Fig::PackageDescriptor
72
80
  @version = translate_component(version)
73
81
  @config = translate_component(config)
74
82
  @original_string = options[:original_string]
83
+ @file_path = options[:file_path]
75
84
  @description = options[:description]
76
85
 
77
86
  validate_component name, 'name', :name, options
@@ -81,13 +90,13 @@ class Fig::PackageDescriptor
81
90
  end
82
91
 
83
92
  # Specifically not named :to_s because it doesn't act like that should.
84
- def to_string(use_default_config = false, use_description = false)
93
+ def to_string(use_default_config = false, use_file_or_description = false)
85
94
  return Fig::PackageDescriptor.format(
86
95
  @name,
87
96
  @version,
88
97
  @config,
89
98
  use_default_config,
90
- use_description ? @description : nil
99
+ use_file_or_description ? @file_path ? @file_path : @description : nil
91
100
  )
92
101
  end
93
102
 
@@ -95,6 +104,7 @@ class Fig::PackageDescriptor
95
104
  return to_string() <=> other.to_string()
96
105
  end
97
106
 
107
+
98
108
  private
99
109
 
100
110
  def translate_component(value)
@@ -159,6 +169,21 @@ class Fig::PackageDescriptor
159
169
  )
160
170
  end
161
171
 
172
+ name_alternate_count = 0
173
+ if @name
174
+ name_alternate_count += 1
175
+ end
176
+ if @file_path
177
+ name_alternate_count += 1
178
+ end
179
+ if @description
180
+ name_alternate_count += 1
181
+ end
182
+
183
+ if name_alternate_count > 1
184
+ raise "Bug! More than one of name, file, and description provided! Name: #{@name}, File: #{@file}, Description: #{@description}"
185
+ end
186
+
162
187
  return
163
188
  end
164
189
 
@@ -68,6 +68,7 @@ class Fig::ParserPackageBuildState
68
68
  package = Fig::Package.new(
69
69
  @descriptor.name,
70
70
  @descriptor.version,
71
+ @descriptor.file_path,
71
72
  @descriptor.description,
72
73
  unparsed_package.working_directory,
73
74
  unparsed_package.include_file_base_directory,
@@ -28,19 +28,18 @@ class Fig::RuntimeEnvironment
28
28
 
29
29
  def initialize(
30
30
  repository,
31
- parser,
31
+ non_repository_packages,
32
32
  suppress_includes,
33
33
  variables_override,
34
34
  working_directory_maintainer
35
35
  )
36
36
  @repository = repository
37
- @parser = parser
37
+ @non_repository_packages = non_repository_packages
38
38
  @suppress_includes = suppress_includes
39
39
  @variables =
40
40
  variables_override || Fig::OperatingSystem.get_environment_variables()
41
41
  @retrieves = {}
42
42
  @named_packages = {}
43
- @packages_from_files = {}
44
43
  @working_directory_maintainer = working_directory_maintainer
45
44
  end
46
45
 
@@ -106,6 +105,7 @@ class Fig::RuntimeEnvironment
106
105
  package.name,
107
106
  package.version,
108
107
  config_name,
108
+ :file_path => package.file_path,
109
109
  :description => package.description
110
110
  )
111
111
  )
@@ -170,9 +170,7 @@ class Fig::RuntimeEnvironment
170
170
  when Fig::Statement::Include
171
171
  include_config(package, statement, backtrace)
172
172
  when Fig::Statement::IncludeFile
173
- include_file_config(
174
- package, statement.path, statement.config_name, backtrace
175
- )
173
+ include_file_config(package, statement, backtrace)
176
174
  when Fig::Statement::Override
177
175
  backtrace.add_override(statement)
178
176
  end
@@ -263,18 +261,17 @@ class Fig::RuntimeEnvironment
263
261
  return package, resolved_descriptor, new_backtrace
264
262
  end
265
263
 
266
- def include_file_config(including_package, path, config_name, backtrace)
264
+ def include_file_config(including_package, include_file_statement, backtrace)
267
265
  return if @suppress_includes
268
266
 
269
- full_path =
270
- File.absolute_path(path, including_package.include_file_base_directory)
267
+ full_path = include_file_statement.full_path_relative_to including_package
271
268
 
272
269
  descriptor =
273
- Fig::PackageDescriptor.new(nil, nil, nil, :description => full_path)
270
+ Fig::PackageDescriptor.new(nil, nil, nil, :file_path => full_path)
274
271
 
275
272
  new_backtrace = Fig::IncludeBacktrace.new(backtrace, descriptor)
276
- package =
277
- package_for_file(including_package, full_path, descriptor, backtrace)
273
+ package = package_for_file(including_package, full_path, backtrace)
274
+ config_name = include_file_statement.config_name
278
275
 
279
276
  apply_config(
280
277
  package, config_name || Fig::Package::DEFAULT_CONFIG, new_backtrace
@@ -354,31 +351,16 @@ class Fig::RuntimeEnvironment
354
351
  return package
355
352
  end
356
353
 
357
- def package_for_file(including_package, full_path, descriptor, backtrace)
358
- package = @packages_from_files[full_path]
359
- return package if package
354
+ def package_for_file(including_package, full_path, backtrace)
355
+ if package = @non_repository_packages[full_path]
356
+ package.backtrace = backtrace
360
357
 
361
- if ! File.exist? full_path
362
- raise_repository_error(
363
- %Q<"#{full_path}" does not exist.>, backtrace, including_package
364
- )
358
+ return package
365
359
  end
366
360
 
367
- content = File.read full_path
368
-
369
- unparsed_package = Fig::NotYetParsedPackage.new
370
- unparsed_package.descriptor = descriptor
371
- unparsed_package.working_directory =
372
- unparsed_package.include_file_base_directory =
373
- File.dirname(full_path)
374
- unparsed_package.source_description = full_path
375
- unparsed_package.unparsed_text = content
376
-
377
- package = @parser.parse_package unparsed_package
378
-
379
- @packages_from_files[full_path] = package
380
-
381
- return package
361
+ raise_repository_error(
362
+ %Q<"#{full_path}" does not exist.>, backtrace, including_package
363
+ )
382
364
  end
383
365
 
384
366
  def determine_package_for_execution(base_package, base_config, descriptor)
@@ -395,7 +377,11 @@ class Fig::RuntimeEnvironment
395
377
  Fig::IncludeBacktrace.new(
396
378
  nil,
397
379
  Fig::PackageDescriptor.new(
398
- package_name, descriptor.version, config_name
380
+ package_name,
381
+ descriptor.version,
382
+ config_name,
383
+ :file_path => descriptor.file_path,
384
+ :description => descriptor.description
399
385
  )
400
386
  )
401
387
  )
@@ -70,6 +70,10 @@ class Fig::Statement::IncludeFile < Fig::Statement
70
70
  return 'include-file'
71
71
  end
72
72
 
73
+ def full_path_relative_to(including_package)
74
+ return File.expand_path(path, including_package.include_file_base_directory)
75
+ end
76
+
73
77
  def deparse_as_version(deparser)
74
78
  return deparser.include_file(self)
75
79
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fig
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.24.1.beta.2
4
+ version: 1.24.1.beta.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Foemmel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-24 00:00:00.000000000 Z
11
+ date: 2015-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -343,6 +343,7 @@ files:
343
343
  - lib/fig/logging/colorizable.rb
344
344
  - lib/fig/network_error.rb
345
345
  - lib/fig/no_such_package_config_error.rb
346
+ - lib/fig/non_repository_packages.rb
346
347
  - lib/fig/not_yet_parsed_package.rb
347
348
  - lib/fig/operating_system.rb
348
349
  - lib/fig/package.rb