fig 1.24.0 → 1.24.1.beta.1

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: 0d99866feed5b6eb83d604fab879d601c996acb4
4
- data.tar.gz: bfed1252e9d45b6da5a7b13524de2a3e7c996077
3
+ metadata.gz: 2ea33a3e608936d3bc7ba5dfa2e844cfa425f979
4
+ data.tar.gz: b062f1064cac523af1372d5197001b06ffd5c7e1
5
5
  SHA512:
6
- metadata.gz: c4b4a0e59742d104a3fe257af19b700edf45096ccf4e11043fa8be32fb410d3f97fd446a33044cf9f0d5f6ba64e4c0d3db21da394a3de83f6c2b2e7081683619
7
- data.tar.gz: 9bdd6433c1edc83df1165c20d66676a0818b734e8b02067b6baee11ab9cb04b9a83fe2a402e619a19193f8c53c82ff85782783d2b52d6c546fedf1a630f56a82
6
+ metadata.gz: c0c03e39ab625727c7a1570ccecb581e16d0a188eda16d7e91cfbe5213975e7340fd8133fd5f4d453627f1f62d82251f1b7c802471ff40897d3bedf8e255c5bf
7
+ data.tar.gz: 2b8cc76a6b3d749978e72800a1dde63f03bdf2db741f77b2a4001aebe67cc67d1f34ad9d8b2824544d376685f806373c626197b104d5d3e868def67ee30b2822
data/Changes CHANGED
@@ -1,3 +1,35 @@
1
+ v1.24.1.beta.1 - 2015/04/23
2
+
3
+ Announcement:
4
+
5
+ - This is the final version that will support Ruby 1.9.x. The next version
6
+ will require Ruby 2.0.0.
7
+
8
+ Bug fix:
9
+
10
+ - No longer crashes when using --graphviz, --list-tree, or --list-all-configs
11
+ without any other options. Thanks to Matt Godbolt for the report.
12
+
13
+ New features:
14
+
15
+ - New --list-yaml option to get --list-dependencies and --list-variables to
16
+ emit their data as YAML (http://yaml.org).
17
+
18
+ - New --list-json option to get --list-dependencies and --list-variables to
19
+ emit their data as JSON (http://json.org). Note that JSON isn't exactly
20
+ ideal for representing the directed acyclic graph that even a mildly
21
+ complicated set of dependencies can result in and you can end up with large
22
+ amounts of duplicate data in the output. If you can handle parsing YAML,
23
+ you are probably better off with that.
24
+
25
+ Miscellaneous:
26
+
27
+ - Small tweaks to --publish-comment and --publish-comment-file handling to
28
+ remove some trailing whitespace when there are blank lines in the input.
29
+
30
+ - A blank line is added after grammar statements in published packages in
31
+ order to seperate them from other statements.
32
+
1
33
  v1.24.0 - 2015/01/13
2
34
 
3
35
  New feature:
data/README.md CHANGED
@@ -39,7 +39,13 @@ Community
39
39
 
40
40
  [Fig Mailing List](http://groups.google.com/group/fig-user)
41
41
 
42
+ Extensions for other tools
43
+ ==========================
44
+
45
+ These live in the `support` directory within the repository. For example,
46
+ there's a Vim plugin in `support/vim`.
47
+
42
48
  Copyright
43
49
  =========
44
50
 
45
- Copyright (c) 2009-2013 Matthew Foemmel. See LICENSE for details.
51
+ Copyright (c) 2009-2015 Matthew Foemmel. See LICENSE for details.
data/lib/fig.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
2
 
3
3
  module Fig
4
- VERSION = '1.24.0'
4
+ VERSION = '1.24.1.beta.1'
5
5
  end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_as_json'
5
+ require 'fig/command/action/role/list_base_config'
6
+ require 'fig/command/action/role/list_dependencies_from_data_structure'
7
+ require 'fig/command/action/role/list_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListDependencies; end
14
+
15
+ class Fig::Command::Action::ListDependencies::JSON
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAsJSON
18
+ include Fig::Command::Action::Role::ListBaseConfig
19
+ include Fig::Command::Action::Role::ListDependenciesFromDataStructure
20
+ include Fig::Command::Action::Role::ListFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-dependencies --list-json>
25
+ end
26
+
27
+ def descriptor_requirement()
28
+ return nil
29
+ end
30
+
31
+ def load_base_package?()
32
+ return true
33
+ end
34
+
35
+ def register_base_package?()
36
+ return nil # don't care
37
+ end
38
+
39
+ def apply_config?()
40
+ return nil # don't care
41
+ end
42
+
43
+ def apply_base_config?()
44
+ return nil # don't care
45
+ end
46
+ end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_all_configs'
5
+ require 'fig/command/action/role/list_as_json'
6
+ require 'fig/command/action/role/list_dependencies_from_data_structure'
7
+ require 'fig/command/action/role/list_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListDependencies; end
14
+
15
+ class Fig::Command::Action::ListDependencies::JSONAllConfigs
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAllConfigs
18
+ include Fig::Command::Action::Role::ListAsJSON
19
+ include Fig::Command::Action::Role::ListDependenciesFromDataStructure
20
+ include Fig::Command::Action::Role::ListFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-dependencies --list-json --list-all-configs>
25
+ end
26
+
27
+ def descriptor_requirement()
28
+ return nil
29
+ end
30
+
31
+ def load_base_package?()
32
+ return true
33
+ end
34
+
35
+ def register_base_package?()
36
+ return nil # don't care
37
+ end
38
+
39
+ def apply_config?()
40
+ return nil # don't care
41
+ end
42
+
43
+ def apply_base_config?()
44
+ return nil # don't care
45
+ end
46
+ end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_as_yaml'
5
+ require 'fig/command/action/role/list_base_config'
6
+ require 'fig/command/action/role/list_dependencies_from_data_structure'
7
+ require 'fig/command/action/role/list_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListDependencies; end
14
+
15
+ class Fig::Command::Action::ListDependencies::YAML
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAsYAML
18
+ include Fig::Command::Action::Role::ListBaseConfig
19
+ include Fig::Command::Action::Role::ListDependenciesFromDataStructure
20
+ include Fig::Command::Action::Role::ListFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-dependencies --list-yaml>
25
+ end
26
+
27
+ def descriptor_requirement()
28
+ return nil
29
+ end
30
+
31
+ def load_base_package?()
32
+ return true
33
+ end
34
+
35
+ def register_base_package?()
36
+ return nil # don't care
37
+ end
38
+
39
+ def apply_config?()
40
+ return nil # don't care
41
+ end
42
+
43
+ def apply_base_config?()
44
+ return nil # don't care
45
+ end
46
+ end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_all_configs'
5
+ require 'fig/command/action/role/list_as_yaml'
6
+ require 'fig/command/action/role/list_dependencies_from_data_structure'
7
+ require 'fig/command/action/role/list_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListDependencies; end
14
+
15
+ class Fig::Command::Action::ListDependencies::YAMLAllConfigs
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAllConfigs
18
+ include Fig::Command::Action::Role::ListAsYAML
19
+ include Fig::Command::Action::Role::ListDependenciesFromDataStructure
20
+ include Fig::Command::Action::Role::ListFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-dependencies --list-yaml --list-all-configs>
25
+ end
26
+
27
+ def descriptor_requirement()
28
+ return nil
29
+ end
30
+
31
+ def load_base_package?()
32
+ return true
33
+ end
34
+
35
+ def register_base_package?()
36
+ return nil # don't care
37
+ end
38
+
39
+ def apply_config?()
40
+ return nil # don't care
41
+ end
42
+
43
+ def apply_base_config?()
44
+ return nil # don't care
45
+ end
46
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_as_json'
5
+ require 'fig/command/action/role/list_base_config'
6
+ require 'fig/command/action/role/list_from_data_structure'
7
+ require 'fig/command/action/role/list_variables_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListVariables; end
14
+
15
+ class Fig::Command::Action::ListVariables::JSON
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAsJSON
18
+ include Fig::Command::Action::Role::ListBaseConfig
19
+ include Fig::Command::Action::Role::ListFromDataStructure
20
+ include Fig::Command::Action::Role::ListVariablesFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-variables --list-json>
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_all_configs'
5
+ require 'fig/command/action/role/list_as_json'
6
+ require 'fig/command/action/role/list_from_data_structure'
7
+ require 'fig/command/action/role/list_variables_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListVariables; end
14
+
15
+ class Fig::Command::Action::ListVariables::JSONAllConfigs
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAllConfigs
18
+ include Fig::Command::Action::Role::ListAsJSON
19
+ include Fig::Command::Action::Role::ListFromDataStructure
20
+ include Fig::Command::Action::Role::ListVariablesFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-variables --list-json --list-all-configs>
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_as_yaml'
5
+ require 'fig/command/action/role/list_base_config'
6
+ require 'fig/command/action/role/list_from_data_structure'
7
+ require 'fig/command/action/role/list_variables_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListVariables; end
14
+
15
+ class Fig::Command::Action::ListVariables::YAML
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAsYAML
18
+ include Fig::Command::Action::Role::ListBaseConfig
19
+ include Fig::Command::Action::Role::ListFromDataStructure
20
+ include Fig::Command::Action::Role::ListVariablesFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-variables --list-yaml>
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+
3
+ require 'fig/command/action'
4
+ require 'fig/command/action/role/list_all_configs'
5
+ require 'fig/command/action/role/list_as_yaml'
6
+ require 'fig/command/action/role/list_from_data_structure'
7
+ require 'fig/command/action/role/list_variables_from_data_structure'
8
+ require 'fig/command/action/role/list_walking_dependency_tree'
9
+
10
+ module Fig; end
11
+ class Fig::Command; end
12
+ module Fig::Command::Action; end
13
+ class Fig::Command::Action::ListVariables; end
14
+
15
+ class Fig::Command::Action::ListVariables::YAMLAllConfigs
16
+ include Fig::Command::Action
17
+ include Fig::Command::Action::Role::ListAllConfigs
18
+ include Fig::Command::Action::Role::ListAsYAML
19
+ include Fig::Command::Action::Role::ListFromDataStructure
20
+ include Fig::Command::Action::Role::ListVariablesFromDataStructure
21
+ include Fig::Command::Action::Role::ListWalkingDependencyTree
22
+
23
+ def options()
24
+ return %w<--list-variables --list-yaml --list-all-configs>
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ # coding: utf-8
2
+
3
+ require 'json'
4
+
5
+ module Fig; end
6
+ class Fig::Command; end
7
+ module Fig::Command::Action; end
8
+ module Fig::Command::Action::Role; end
9
+
10
+ # Requires a #set_up_object_to_be_serialized method.
11
+ module Fig::Command::Action::Role::ListAsJSON
12
+ def execute()
13
+ set_up_object_to_be_serialized
14
+
15
+ puts JSON.pretty_generate @object_to_be_serialized
16
+
17
+ return Fig::Command::Action::EXIT_SUCCESS
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # coding: utf-8
2
+
3
+ require 'yaml'
4
+
5
+ module Fig; end
6
+ class Fig::Command; end
7
+ module Fig::Command::Action; end
8
+ module Fig::Command::Action::Role; end
9
+
10
+ # Requires a #set_up_object_to_be_serialized method.
11
+ module Fig::Command::Action::Role::ListAsYAML
12
+ def execute()
13
+ set_up_object_to_be_serialized
14
+
15
+ YAML.dump @object_to_be_serialized, $stdout
16
+
17
+ return Fig::Command::Action::EXIT_SUCCESS
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ # coding: utf-8
2
+
3
+ module Fig; end
4
+ class Fig::Command; end
5
+ module Fig::Command::Action; end
6
+ module Fig::Command::Action::Role; end
7
+
8
+ module Fig::Command::Action::Role::ListDependenciesFromDataStructure
9
+ private
10
+
11
+ def node_content(package, config_name)
12
+ return new_package_config_hash package, config_name
13
+ end
14
+ end
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ require 'set'
4
+
5
+ module Fig; end
6
+ class Fig::Command; end
7
+ module Fig::Command::Action; end
8
+ module Fig::Command::Action::Role; end
9
+
10
+ # Requires #node_content(package, config_name) and #walk_dependency_tree()
11
+ # methods.
12
+ module Fig::Command::Action::Role::ListFromDataStructure
13
+ private
14
+
15
+ def set_up_object_to_be_serialized
16
+ @package_configs = {}
17
+
18
+ base_package = @execution_context.base_package
19
+ base_configs = base_display_config_names
20
+ walk_dependency_tree(
21
+ base_package, base_configs, include_gather, &package_gather
22
+ )
23
+
24
+ if base_configs.size > 1
25
+ @object_to_be_serialized = @package_configs[base_package].keys.collect do
26
+ |config_name|
27
+
28
+ @package_configs[base_package][config_name]
29
+ end
30
+ else
31
+ @object_to_be_serialized = @package_configs[base_package][base_configs[0]]
32
+ end
33
+ end
34
+
35
+ def include_gather
36
+ visited = Set.new
37
+
38
+ return lambda do
39
+ |including_package, including_config, included_package, included_config|
40
+
41
+ including_name = including_package.to_s_with_config including_config
42
+ included_name = included_package.to_s_with_config included_config
43
+ edge = [including_name, included_name]
44
+
45
+ if ! visited.include? edge
46
+ visited << edge
47
+
48
+ including_hash = @package_configs[including_package][including_config]
49
+ including_hash['dependencies'] ||= []
50
+ including_hash['dependencies'] <<
51
+ @package_configs[included_package][included_config]
52
+ end
53
+ end
54
+ end
55
+
56
+ def package_gather
57
+ visited = Set.new
58
+
59
+ return lambda do
60
+ |package, config_name, depth|
61
+
62
+ name = package.to_s_with_config config_name
63
+
64
+ if ! visited.include? name
65
+ visited << name
66
+
67
+ @package_configs[package] ||= {}
68
+ @package_configs[package][config_name] =
69
+ node_content package, config_name
70
+ end
71
+ end
72
+ end
73
+
74
+ def new_package_config_hash(package, config_name)
75
+ hash = {}
76
+
77
+ if package.name
78
+ hash['name'] = package.name
79
+ end
80
+ if package.version
81
+ hash['version'] = package.version
82
+ end
83
+ if package.description
84
+ hash['description'] = package.description
85
+ end
86
+ hash['config'] = config_name
87
+
88
+ return hash
89
+ end
90
+ end
@@ -0,0 +1,60 @@
1
+ # coding: utf-8
2
+
3
+ require 'cgi'
4
+
5
+ module Fig; end
6
+ class Fig::Command; end
7
+ module Fig::Command::Action; end
8
+ module Fig::Command::Action::Role; end
9
+
10
+ module Fig::Command::Action::Role::ListVariablesFromDataStructure
11
+ def descriptor_requirement()
12
+ return nil
13
+ end
14
+
15
+ def load_base_package?()
16
+ return true
17
+ end
18
+
19
+ def register_base_package?()
20
+ return nil # don't care
21
+ end
22
+
23
+ def apply_config?()
24
+ return nil # don't care
25
+ end
26
+
27
+ private
28
+
29
+ def node_content(package, config_name)
30
+ hash = new_package_config_hash package, config_name
31
+ statements = variable_statements package, config_name
32
+ if not statements.empty?
33
+ hash['variables'] = statements
34
+ end
35
+
36
+ return hash
37
+ end
38
+
39
+ def variable_statements(package, config_name)
40
+ statements = []
41
+
42
+ package[config_name].walk_statements do
43
+ |statement|
44
+
45
+ if statement.is_environment_variable?
46
+ statements << hash_for_variable_statement(statement)
47
+ end
48
+ end
49
+
50
+ return statements
51
+ end
52
+
53
+ def hash_for_variable_statement(statement)
54
+ return {
55
+ 'type' => statement.statement_type,
56
+ 'name' => statement.name,
57
+ 'value' => statement.tokenized_value.to_escaped_string,
58
+ }
59
+ end
60
+ end
@@ -13,8 +13,12 @@ require 'fig/command/action/list_dependencies/all_configs'
13
13
  require 'fig/command/action/list_dependencies/default'
14
14
  require 'fig/command/action/list_dependencies/graphviz'
15
15
  require 'fig/command/action/list_dependencies/graphviz_all_configs'
16
+ require 'fig/command/action/list_dependencies/json'
17
+ require 'fig/command/action/list_dependencies/json_all_configs'
16
18
  require 'fig/command/action/list_dependencies/tree'
17
19
  require 'fig/command/action/list_dependencies/tree_all_configs'
20
+ require 'fig/command/action/list_dependencies/yaml'
21
+ require 'fig/command/action/list_dependencies/yaml_all_configs'
18
22
  require 'fig/command/action/list_local'
19
23
  require 'fig/command/action/list_remote'
20
24
  require 'fig/command/action/list_variables'
@@ -22,8 +26,12 @@ require 'fig/command/action/list_variables/all_configs'
22
26
  require 'fig/command/action/list_variables/default'
23
27
  require 'fig/command/action/list_variables/graphviz'
24
28
  require 'fig/command/action/list_variables/graphviz_all_configs'
29
+ require 'fig/command/action/list_variables/json'
30
+ require 'fig/command/action/list_variables/json_all_configs'
25
31
  require 'fig/command/action/list_variables/tree'
26
32
  require 'fig/command/action/list_variables/tree_all_configs'
33
+ require 'fig/command/action/list_variables/yaml'
34
+ require 'fig/command/action/list_variables/yaml_all_configs'
27
35
  require 'fig/command/action/options'
28
36
  require 'fig/command/action/publish'
29
37
  require 'fig/command/action/publish_local'
@@ -189,6 +197,14 @@ Running commands:
189
197
  return @list_tree
190
198
  end
191
199
 
200
+ def list_json?()
201
+ return @list_json
202
+ end
203
+
204
+ def list_yaml?()
205
+ return @list_yaml
206
+ end
207
+
192
208
  def graphviz?()
193
209
  return @graphviz
194
210
  end
@@ -633,6 +649,18 @@ Running commands:
633
649
  @list_tree = true
634
650
  end
635
651
 
652
+ @parser.on(
653
+ '--list-json', 'for listings, output JSON (http://json.org)'
654
+ ) do
655
+ @list_json = true
656
+ end
657
+
658
+ @parser.on(
659
+ '--list-yaml', 'for listings, output YAML (http://yaml.org)'
660
+ ) do
661
+ @list_yaml = true
662
+ end
663
+
636
664
  @parser.on(
637
665
  '--graphviz',
638
666
  'for listings, output DOT (http://graphviz.org/content/dot-language)'
@@ -840,21 +868,25 @@ Running commands:
840
868
 
841
869
  def validate()
842
870
  if suppress_includes
871
+ # Not conceptually incompatible, just not implemented (would need to
872
+ # handle in command/action/role/list_*)
843
873
  if list_tree?
844
- # Not conceptually incompatible, just not implemented (would need to
845
- # handle in command/action/role/list_*)
846
874
  raise Fig::Command::OptionError.new(
847
875
  'Cannot use --suppress-all-includes/--suppress-cross-package-includes with --list-tree.'
848
876
  )
877
+ elsif list_json?
878
+ raise Fig::Command::OptionError.new(
879
+ 'Cannot use --suppress-all-includes/--suppress-cross-package-includes with --list-json.'
880
+ )
881
+ elsif list_yaml?
882
+ raise Fig::Command::OptionError.new(
883
+ 'Cannot use --suppress-all-includes/--suppress-cross-package-includes with --list-yaml.'
884
+ )
849
885
  elsif graphviz?
850
- # Not conceptually incompatible, just not implemented (would need to
851
- # handle in command/action/role/list_*)
852
886
  raise Fig::Command::OptionError.new(
853
887
  'Cannot use --suppress-all-includes/--suppress-cross-package-includes with --graphviz.'
854
888
  )
855
889
  elsif list_all_configs?
856
- # Not conceptually incompatible, just not implemented (would need to
857
- # handle in command/action/role/list_*)
858
890
  raise Fig::Command::OptionError.new(
859
891
  'Cannot use --suppress-all-includes/--suppress-cross-package-includes with --list-all-configs.'
860
892
  )
@@ -873,15 +905,45 @@ Running commands:
873
905
  end
874
906
  elsif list_tree?
875
907
  validate_list_option '--list-tree'
908
+ elsif list_json?
909
+ validate_list_option '--list-json'
910
+ elsif list_yaml?
911
+ validate_list_option '--list-yaml'
876
912
  elsif graphviz?
877
913
  validate_list_option '--graphviz'
878
914
  elsif list_all_configs?
879
915
  validate_list_option '--list-all-configs'
880
916
  end
881
917
 
882
- if list_tree? && graphviz?
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 list_json?
924
+ raise Fig::Command::OptionError.new(
925
+ 'Cannot use --list-tree and --list-json at the same time.'
926
+ )
927
+ elsif list_yaml?
928
+ raise Fig::Command::OptionError.new(
929
+ 'Cannot use --list-tree and --list-json at the same time.'
930
+ )
931
+ end
932
+ end
933
+ if graphviz?
934
+ if list_json?
935
+ raise Fig::Command::OptionError.new(
936
+ 'Cannot use --graphviz and --list-json at the same time.'
937
+ )
938
+ elsif list_yaml?
939
+ raise Fig::Command::OptionError.new(
940
+ 'Cannot use --graphviz and --list-yaml at the same time.'
941
+ )
942
+ end
943
+ end
944
+ if list_json? and list_yaml?
883
945
  raise Fig::Command::OptionError.new(
884
- 'Cannot use --list-tree and --graphviz at the same time.'
946
+ 'Cannot use --list-json and --list-yaml at the same time.'
885
947
  )
886
948
  end
887
949
 
@@ -907,7 +969,10 @@ Running commands:
907
969
  end
908
970
 
909
971
  def validate_list_option(option)
910
- if ! @base_action.list_dependencies? && ! @base_action.list_variables?
972
+ if (
973
+ ! @base_action \
974
+ || ! @base_action.list_dependencies? && ! @base_action.list_variables?
975
+ )
911
976
  raise Fig::Command::OptionError.new(
912
977
  %Q<The #{option} option isn't useful without --list-dependencies/--list-variables.>
913
978
  )
@@ -924,6 +989,10 @@ Running commands:
924
989
  sub_action_name = :Default
925
990
  if list_tree?
926
991
  sub_action_name = list_all_configs? ? :TreeAllConfigs : :Tree
992
+ elsif list_json?
993
+ sub_action_name = list_all_configs? ? :JSONAllConfigs : :JSON
994
+ elsif list_yaml?
995
+ sub_action_name = list_all_configs? ? :YAMLAllConfigs : :YAML
927
996
  elsif graphviz?
928
997
  sub_action_name = list_all_configs? ? :GraphvizAllConfigs : :Graphviz
929
998
  elsif list_all_configs?
@@ -36,7 +36,7 @@ class Fig::Deparser::V0
36
36
  add_indent
37
37
 
38
38
  # Comment out so that older clients don't have issues.
39
- @text << "# grammar v0\n"
39
+ @text << "# grammar v0\n\n"
40
40
 
41
41
  return
42
42
  end
@@ -27,7 +27,7 @@ class Fig::Deparser::V1
27
27
  def grammar_version(statement)
28
28
  add_indent
29
29
 
30
- @text << "grammar v1\n"
30
+ @text << "grammar v1\n\n"
31
31
 
32
32
  return
33
33
  end
@@ -27,7 +27,7 @@ class Fig::Deparser::V2
27
27
  def grammar_version(statement)
28
28
  add_indent
29
29
 
30
- @text << "grammar v2\n"
30
+ @text << "grammar v2\n\n"
31
31
 
32
32
  return
33
33
  end
@@ -170,7 +170,8 @@ class Fig::RepositoryPackagePublisher
170
170
  return if not @options.publish_comment and not @options.publish_comment_path
171
171
 
172
172
  if @options.publish_comment
173
- comment = @options.publish_comment.strip.gsub(/[ \t]*\n/, "\n# ")
173
+ comment = @options.publish_comment
174
+ comment = comment.strip.gsub(/[ \t]*\n/, "\n# ").gsub(/^#[ ]+\n/, "#\n")
174
175
  @text_assembler.add_header %Q<# #{comment}>
175
176
  @text_assembler.add_header %q<#>
176
177
  end
@@ -180,7 +181,7 @@ class Fig::RepositoryPackagePublisher
180
181
  comment = IO.read(
181
182
  @options.publish_comment_path, :external_encoding => Encoding::UTF_8,
182
183
  )
183
- comment = comment.strip.gsub(/[ \t]*\n/, "\n# ")
184
+ comment = comment.strip.gsub(/[ \t]*\n/, "\n# ").gsub(/^#[ ]+\n/, "#\n")
184
185
  rescue Errno::ENOENT
185
186
  Fig::Logging.fatal(
186
187
  %Q<Comment file "#{@options.publish_comment_path}" does not exist.>
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.0
4
+ version: 1.24.1.beta.1
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-01-13 00:00:00.000000000 Z
11
+ date: 2015-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -255,8 +255,12 @@ files:
255
255
  - lib/fig/command/action/list_dependencies/default.rb
256
256
  - lib/fig/command/action/list_dependencies/graphviz.rb
257
257
  - lib/fig/command/action/list_dependencies/graphviz_all_configs.rb
258
+ - lib/fig/command/action/list_dependencies/json.rb
259
+ - lib/fig/command/action/list_dependencies/json_all_configs.rb
258
260
  - lib/fig/command/action/list_dependencies/tree.rb
259
261
  - lib/fig/command/action/list_dependencies/tree_all_configs.rb
262
+ - lib/fig/command/action/list_dependencies/yaml.rb
263
+ - lib/fig/command/action/list_dependencies/yaml_all_configs.rb
260
264
  - lib/fig/command/action/list_local.rb
261
265
  - lib/fig/command/action/list_remote.rb
262
266
  - lib/fig/command/action/list_variables.rb
@@ -264,8 +268,12 @@ files:
264
268
  - lib/fig/command/action/list_variables/default.rb
265
269
  - lib/fig/command/action/list_variables/graphviz.rb
266
270
  - lib/fig/command/action/list_variables/graphviz_all_configs.rb
271
+ - lib/fig/command/action/list_variables/json.rb
272
+ - lib/fig/command/action/list_variables/json_all_configs.rb
267
273
  - lib/fig/command/action/list_variables/tree.rb
268
274
  - lib/fig/command/action/list_variables/tree_all_configs.rb
275
+ - lib/fig/command/action/list_variables/yaml.rb
276
+ - lib/fig/command/action/list_variables/yaml_all_configs.rb
269
277
  - lib/fig/command/action/options.rb
270
278
  - lib/fig/command/action/publish.rb
271
279
  - lib/fig/command/action/publish_local.rb
@@ -273,11 +281,16 @@ files:
273
281
  - lib/fig/command/action/role/has_sub_action.rb
274
282
  - lib/fig/command/action/role/list_all_configs.rb
275
283
  - lib/fig/command/action/role/list_as_graphviz.rb
284
+ - lib/fig/command/action/role/list_as_json.rb
285
+ - lib/fig/command/action/role/list_as_yaml.rb
276
286
  - lib/fig/command/action/role/list_base_config.rb
277
287
  - lib/fig/command/action/role/list_dependencies_as_graphviz.rb
278
288
  - lib/fig/command/action/role/list_dependencies_flat.rb
289
+ - lib/fig/command/action/role/list_dependencies_from_data_structure.rb
279
290
  - lib/fig/command/action/role/list_dependencies_in_a_tree.rb
291
+ - lib/fig/command/action/role/list_from_data_structure.rb
280
292
  - lib/fig/command/action/role/list_variables_as_graphviz.rb
293
+ - lib/fig/command/action/role/list_variables_from_data_structure.rb
281
294
  - lib/fig/command/action/role/list_variables_in_a_tree.rb
282
295
  - lib/fig/command/action/role/list_walking_dependency_tree.rb
283
296
  - lib/fig/command/action/role/publish.rb
@@ -391,9 +404,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
391
404
  version: 1.9.2
392
405
  required_rubygems_version: !ruby/object:Gem::Requirement
393
406
  requirements:
394
- - - ">="
407
+ - - ">"
395
408
  - !ruby/object:Gem::Version
396
- version: '0'
409
+ version: 1.3.1
397
410
  requirements: []
398
411
  rubyforge_project:
399
412
  rubygems_version: 2.2.2