autoproj 1.11.0.rc15 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f532e864fc2e5926742f48b077550a790c3baacf
4
- data.tar.gz: 63a70a19b2f5aa23508031293ed199439a1c2dde
3
+ metadata.gz: dc64d6f9ced9d44cb201ab31f5dbf2a84bdef777
4
+ data.tar.gz: ea6d4f3c3d2db15a084c9d3348780dddd893d975
5
5
  SHA512:
6
- metadata.gz: 7a47dd280accc2939eea99009665d4ad575366e7e8b673a1072c661bfe2088433e19e2b58a83b7d9df875e1471d2dd8761356b58cc5cf57b211a552a8726e71c
7
- data.tar.gz: f28e24343f5ed84060f2c769ad48c36ceeef17334336645c8c8a0bb116d6ac600f252fd1f8d79deef6bee21891fad8cdd227d69be70ac60776d7bf26b169268f
6
+ metadata.gz: b3b99d765575bc4526854ec74f3571b41181d30267f2b223a3e7e6e3a7f1194680fd0a9d99d86ab7489e20f7030a8373b7984e0dd23178e722dd7a4f2b21b52a
7
+ data.tar.gz: 03740b0613ed3fcbd37b585c86d4c47decf8a8792d7f2898ccea2f79b8e0fcd765b83b2ad0d5669e9bf05339b07fa2da74697172d7b25e1f61fe964059b0940a
@@ -1055,13 +1055,34 @@ fi
1055
1055
  end
1056
1056
  end
1057
1057
 
1058
- def reinstall
1059
- Autoproj.message " reinstalling all RubyGems"
1058
+ def build_gem_cmdlines(gems)
1059
+ with_version, without_version = gems.partition { |name, v| v }
1060
+
1061
+ cmdlines = []
1062
+ if !without_version.empty?
1063
+ cmdlines << without_version.flatten
1064
+ end
1065
+ with_version.each do |name, v|
1066
+ cmdlines << [name, "-v", v]
1067
+ end
1068
+ cmdlines
1069
+ end
1070
+
1071
+ def pristine(gems)
1072
+ guess_gem_program
1060
1073
  base_cmdline = [Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('gem')]
1061
- Autobuild::Subprocess.run 'osdeps', 'reinstall', *base_cmdline,
1062
- 'clean'
1063
- Autobuild::Subprocess.run 'osdeps', 'reinstall', *base_cmdline,
1064
- 'pristine', '--all', '--extensions'
1074
+ cmdlines = [
1075
+ [*base_cmdline, 'clean'],
1076
+ ]
1077
+ cmdlines += build_gem_cmdlines(gems).map do |line|
1078
+ base_cmdline + ["pristine", "--extensions"] + line
1079
+ end
1080
+ if gems_interaction(gems, cmdlines)
1081
+ Autoproj.message " restoring RubyGems: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
1082
+ cmdlines.each do |c|
1083
+ Autobuild::Subprocess.run 'autoproj', 'osdeps', *c
1084
+ end
1085
+ end
1065
1086
  end
1066
1087
 
1067
1088
  def install(gems)
@@ -1075,16 +1096,10 @@ fi
1075
1096
  if GemManager.with_prerelease
1076
1097
  base_cmdline << "--prerelease"
1077
1098
  end
1078
- with_version, without_version = gems.partition { |name, v| v }
1079
1099
 
1080
- cmdlines = []
1081
- if !without_version.empty?
1082
- cmdlines << (base_cmdline + without_version.flatten)
1083
- end
1084
- with_version.each do |name, v|
1085
- cmdlines << base_cmdline + [name, "-v", v]
1100
+ cmdlines = build_gem_cmdlines(gems).map do |line|
1101
+ base_cmdline + line
1086
1102
  end
1087
-
1088
1103
  if gems_interaction(gems, cmdlines)
1089
1104
  Autoproj.message " installing/updating RubyGems dependencies: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
1090
1105
 
@@ -1373,6 +1388,10 @@ fi
1373
1388
  OSDependencies.load(file)
1374
1389
  end
1375
1390
 
1391
+ def load_default
1392
+ merge(self.class.load_default)
1393
+ end
1394
+
1376
1395
  PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
1377
1396
  PackageManagers::GemManager,
1378
1397
  PackageManagers::EmergeManager,
@@ -1465,6 +1484,14 @@ fi
1465
1484
  @filter_uptodate_packages = true
1466
1485
  end
1467
1486
 
1487
+ # Returns the name of all known OS packages
1488
+ #
1489
+ # It includes even the packages for which there are no definitions on
1490
+ # this OS
1491
+ def all_package_names
1492
+ all_definitions.keys
1493
+ end
1494
+
1468
1495
  # Returns the full path to the osdeps file from which the package
1469
1496
  # definition for +package_name+ has been taken
1470
1497
  def source_of(package_name)
@@ -2298,6 +2325,24 @@ So, what do you want ? (all, none or a comma-separated list of: os gem pip)
2298
2325
  enabled_handlers
2299
2326
  end
2300
2327
 
2328
+ # Requests that packages that are handled within the autoproj project
2329
+ # (i.e. gems) are restored to pristine condition
2330
+ #
2331
+ # This is usually called as a rebuild step to make sure that all these
2332
+ # packages are updated to whatever required the rebuild
2333
+ def pristine(packages, options = Hash.new)
2334
+ setup_package_handlers(options)
2335
+ packages = resolve_os_dependencies(packages)
2336
+
2337
+ _, other_packages =
2338
+ packages.partition { |handler, list| handler == os_package_handler }
2339
+ other_packages.each do |handler, list|
2340
+ if handler.respond_to?(:pristine)
2341
+ handler.pristine(list)
2342
+ end
2343
+ end
2344
+ end
2345
+
2301
2346
  # Requests the installation of the given set of packages
2302
2347
  def install(packages, options = Hash.new)
2303
2348
  # Remove the set of packages that have already been installed
@@ -133,11 +133,11 @@ module Autoproj
133
133
 
134
134
  # Initialize the Autoproj.osdeps object by loading the default. The
135
135
  # rest is loaded later
136
- Autoproj.osdeps = Autoproj::OSDependencies.load_default
137
- Autoproj.osdeps.silent = !osdeps?
138
- Autoproj.osdeps.filter_uptodate_packages = osdeps_filter_uptodate?
136
+ manifest.osdeps.load_default
137
+ manifest.osdeps.silent = !osdeps?
138
+ manifest.osdeps.filter_uptodate_packages = osdeps_filter_uptodate?
139
139
  if osdeps_forced_mode
140
- Autoproj.osdeps.osdeps_mode = osdeps_forced_mode
140
+ manifest.osdeps.osdeps_mode = osdeps_forced_mode
141
141
  end
142
142
 
143
143
  # Define the option NOW, as update_os_dependencies? needs to know in
@@ -146,7 +146,7 @@ module Autoproj
146
146
  # It might lead to having multiple operating system detections, but
147
147
  # that's the best I can do for now.
148
148
  Autoproj::OSDependencies.define_osdeps_mode_option
149
- Autoproj.osdeps.osdeps_mode
149
+ manifest.osdeps.osdeps_mode
150
150
 
151
151
  # Do that AFTER we have properly setup Autoproj.osdeps as to avoid
152
152
  # unnecessarily redetecting the operating system
@@ -108,12 +108,16 @@ module Autoproj
108
108
  # The VCS object for the main configuration itself
109
109
  attr_reader :vcs
110
110
 
111
+ # The definition of all OS packages available on this installation
112
+ attr_reader :osdeps
113
+
111
114
  def initialize
112
115
  @file = nil
113
116
  @data = Hash.new
114
117
  @packages = Hash.new
115
118
  @package_manifests = Hash.new
116
119
  @package_sets = []
120
+ @osdeps = OSDependencies.new
117
121
 
118
122
  @automatic_exclusions = Hash.new
119
123
  @constants_definitions = Hash.new
@@ -558,7 +562,7 @@ module Autoproj
558
562
  options = Kernel.validate_options options, :filter => true
559
563
 
560
564
  explicit_selection = explicitly_selected_package?(name)
561
- osdeps_availability = Autoproj.osdeps.availability_of(name)
565
+ osdeps_availability = osdeps.availability_of(name)
562
566
  available_as_source = Autobuild::Package[name]
563
567
 
564
568
  osdeps_overrides = Autoproj.manifest.osdeps_overrides[name]
@@ -609,9 +613,9 @@ module Autoproj
609
613
  return []
610
614
  end
611
615
  begin
612
- Autoproj.osdeps.resolve_os_dependencies([name].to_set)
616
+ osdeps.resolve_os_dependencies([name].to_set)
613
617
  rescue Autoproj::ConfigError => e
614
- if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !Autoproj.osdeps.os_package_handler.enabled?
618
+ if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !osdeps.os_package_handler.enabled?
615
619
  if !@ignored_os_dependencies.include?(name)
616
620
  Autoproj.warn "some package depends on the #{name} osdep: #{e.message}"
617
621
  Autoproj.warn "this osdeps dependency is simply ignored as you asked autoproj to not install osdeps packages"
@@ -647,7 +651,7 @@ module Autoproj
647
651
  end
648
652
  pkg_set.each_package.
649
653
  map(&:name).
650
- find_all { |pkg_name| !Autoproj.osdeps || !Autoproj.osdeps.has?(pkg_name) }
654
+ find_all { |pkg_name| !osdeps || !osdeps.has?(pkg_name) }
651
655
  end
652
656
  end
653
657
 
@@ -747,7 +751,7 @@ module Autoproj
747
751
  result |= metapackage(pkg_set.name).packages.map(&:name).to_set
748
752
  end
749
753
  result.to_a.
750
- find_all { |pkg_name| !Autoproj.osdeps || !Autoproj.osdeps.has?(pkg_name) }
754
+ find_all { |pkg_name| !osdeps.has?(pkg_name) }
751
755
  end
752
756
 
753
757
  # Returns true if +name+ is a valid package and is included in the build
@@ -758,7 +762,7 @@ module Autoproj
758
762
  # If it is false, the method will simply return false on non-defined
759
763
  # packages
760
764
  def package_enabled?(name, validate = true)
761
- if !Autobuild::Package[name] && !Autoproj.osdeps.has?(name)
765
+ if !Autobuild::Package[name] && !osdeps.has?(name)
762
766
  if validate
763
767
  raise ArgumentError, "package #{name} does not exist"
764
768
  end
@@ -928,10 +932,8 @@ module Autoproj
928
932
  return required_os_packages, package_os_deps
929
933
  end
930
934
 
931
- # Installs the OS dependencies that are required by the given packages
932
- def install_os_dependencies(packages)
933
- required_os_packages, package_os_deps = list_os_dependencies(packages)
934
- required_os_packages.delete_if do |pkg|
935
+ def filter_os_dependencies(required_os_packages, package_os_deps)
936
+ required_os_packages.find_all do |pkg|
935
937
  if excluded?(pkg)
936
938
  raise ConfigError.new, "the osdeps package #{pkg} is excluded from the build in #{file}. It is required by #{package_os_deps[pkg].join(", ")}"
937
939
  end
@@ -939,10 +941,30 @@ module Autoproj
939
941
  if Autoproj.verbose
940
942
  Autoproj.message "ignoring osdeps package #{pkg}"
941
943
  end
942
- true
944
+ false
945
+ else true
943
946
  end
944
947
  end
945
- Autoproj.osdeps.install(required_os_packages)
948
+ end
949
+
950
+ # Restores the OS dependencies required by the given packages to
951
+ # pristine conditions
952
+ #
953
+ # This is usually called as a rebuild step to make sure that all these
954
+ # packages are updated to whatever required the rebuild
955
+ def pristine_os_dependencies(packages)
956
+ required_os_packages, package_os_deps = list_os_dependencies(packages)
957
+ required_os_packages =
958
+ filter_os_dependencies(required_os_packages, package_os_deps)
959
+ osdeps.pristine(required_os_packages)
960
+ end
961
+
962
+ # Installs the OS dependencies that are required by the given packages
963
+ def install_os_dependencies(packages)
964
+ required_os_packages, package_os_deps = list_os_dependencies(packages)
965
+ required_os_packages =
966
+ filter_os_dependencies(required_os_packages, package_os_deps)
967
+ osdeps.install(required_os_packages)
946
968
  end
947
969
 
948
970
  # The set of overrides added with #add_osdeps_overrides
@@ -993,10 +1015,10 @@ module Autoproj
993
1015
  #
994
1016
  # This method converts the first two directories into the third one
995
1017
  def expand_package_selection(selection, options = Hash.new)
996
- options = Kernel.validate_options options, :filter => true
997
- base_dir = Autoproj.root_dir
1018
+ options = Kernel.validate_options options, filter: true
998
1019
 
999
1020
  result = PackageSelection.new
1021
+
1000
1022
  # All the packages that are available on this installation
1001
1023
  all_layout_packages = self.all_selected_packages
1002
1024
 
@@ -1025,25 +1047,36 @@ module Autoproj
1025
1047
 
1026
1048
  # Finally, check for package source directories
1027
1049
  all_packages = self.all_package_names
1050
+ all_osdeps_packages = osdeps.all_package_names
1051
+
1028
1052
  selection.each do |sel|
1029
1053
  match_pkg_name = Regexp.new(Regexp.quote(sel))
1030
- all_packages.each do |pkg_name|
1054
+ matching_packages = all_packages.map do |pkg_name|
1031
1055
  pkg = Autobuild::Package[pkg_name]
1032
- if pkg_name =~ match_pkg_name || "#{sel}/" =~ Regexp.new("^#{Regexp.quote(pkg.srcdir)}/") || pkg.srcdir =~ Regexp.new("^#{Regexp.quote(sel)}")
1033
- # Check-out packages that are not in the manifest only
1034
- # if they are explicitely selected. However, we do store
1035
- # them as "possible resolutions" for the user selection,
1036
- # and add them if -- at the end of the method -- nothing
1037
- # has been found for this particular selection
1038
- if !all_layout_packages.include?(pkg.name)
1039
- if pkg_name != sel && pkg.srcdir != sel
1040
- pending_selections[sel] = pkg_name
1041
- next
1042
- end
1043
- end
1044
-
1045
- result.select(sel, pkg_name)
1056
+ if pkg_name =~ match_pkg_name ||
1057
+ "#{sel}/" =~ Regexp.new("^#{Regexp.quote(pkg.srcdir)}/") ||
1058
+ pkg.srcdir =~ Regexp.new("^#{Regexp.quote(sel)}")
1059
+ [pkg_name, (pkg_name == sel || pkg.srcdir == sel)]
1046
1060
  end
1061
+ end.compact
1062
+ matching_osdeps_packages = all_osdeps_packages.find_all do |pkg_name|
1063
+ if pkg_name =~ match_pkg_name
1064
+ [pkg_name, pkg_name == sel]
1065
+ end
1066
+ end.compact
1067
+
1068
+ (matching_packages + matching_osdeps_packages).to_set.each do |pkg_name, exact_match|
1069
+ # Check-out packages that are not in the manifest only
1070
+ # if they are explicitely selected. However, we do store
1071
+ # them as "possible resolutions" for the user selection,
1072
+ # and add them if -- at the end of the method -- nothing
1073
+ # has been found for this particular selection
1074
+ if !all_layout_packages.include?(pkg_name) && !exact_match
1075
+ pending_selections[sel] = pkg_name
1076
+ next
1077
+ end
1078
+
1079
+ result.select(sel, pkg_name)
1047
1080
  end
1048
1081
  end
1049
1082
 
@@ -1137,7 +1170,13 @@ module Autoproj
1137
1170
  #
1138
1171
  # @return [OSDependencies]
1139
1172
  # @see load_osdeps_from_package_sets
1140
- attr_accessor :osdeps
1173
+ def osdeps
1174
+ manifest.osdeps
1175
+ end
1176
+
1177
+ def osdeps=(osdeps)
1178
+ raise ArgumentError, "cannot set the osdeps object explicitely anymore. Use osdeps.clear and osdeps.merge"
1179
+ end
1141
1180
 
1142
1181
  # The configuration file
1143
1182
  # @return [Configuration]
@@ -38,6 +38,7 @@ module Autoproj
38
38
  end
39
39
 
40
40
  packages = manifest.all_layout_packages
41
+ manifest.pristine_os_dependencies(packages)
41
42
  rebuild_packages(packages, packages)
42
43
  end
43
44
 
@@ -592,13 +592,34 @@ fi
592
592
  end
593
593
  end
594
594
 
595
- def reinstall
596
- Autoproj.message " reinstalling all RubyGems"
595
+ def build_gem_cmdlines(gems)
596
+ with_version, without_version = gems.partition { |name, v| v }
597
+
598
+ cmdlines = []
599
+ if !without_version.empty?
600
+ cmdlines << without_version.flatten
601
+ end
602
+ with_version.each do |name, v|
603
+ cmdlines << [name, "-v", v]
604
+ end
605
+ cmdlines
606
+ end
607
+
608
+ def pristine(gems)
609
+ guess_gem_program
597
610
  base_cmdline = [Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('gem')]
598
- Autobuild::Subprocess.run 'osdeps', 'reinstall', *base_cmdline,
599
- 'clean'
600
- Autobuild::Subprocess.run 'osdeps', 'reinstall', *base_cmdline,
601
- 'pristine', '--all', '--extensions'
611
+ cmdlines = [
612
+ [*base_cmdline, 'clean'],
613
+ ]
614
+ cmdlines += build_gem_cmdlines(gems).map do |line|
615
+ base_cmdline + ["pristine", "--extensions"] + line
616
+ end
617
+ if gems_interaction(gems, cmdlines)
618
+ Autoproj.message " restoring RubyGems: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
619
+ cmdlines.each do |c|
620
+ Autobuild::Subprocess.run 'autoproj', 'osdeps', *c
621
+ end
622
+ end
602
623
  end
603
624
 
604
625
  def install(gems)
@@ -612,16 +633,10 @@ fi
612
633
  if GemManager.with_prerelease
613
634
  base_cmdline << "--prerelease"
614
635
  end
615
- with_version, without_version = gems.partition { |name, v| v }
616
636
 
617
- cmdlines = []
618
- if !without_version.empty?
619
- cmdlines << (base_cmdline + without_version.flatten)
620
- end
621
- with_version.each do |name, v|
622
- cmdlines << base_cmdline + [name, "-v", v]
637
+ cmdlines = build_gem_cmdlines(gems).map do |line|
638
+ base_cmdline + line
623
639
  end
624
-
625
640
  if gems_interaction(gems, cmdlines)
626
641
  Autoproj.message " installing/updating RubyGems dependencies: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
627
642
 
@@ -910,6 +925,10 @@ fi
910
925
  OSDependencies.load(file)
911
926
  end
912
927
 
928
+ def load_default
929
+ merge(self.class.load_default)
930
+ end
931
+
913
932
  PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
914
933
  PackageManagers::GemManager,
915
934
  PackageManagers::EmergeManager,
@@ -1002,6 +1021,14 @@ fi
1002
1021
  @filter_uptodate_packages = true
1003
1022
  end
1004
1023
 
1024
+ # Returns the name of all known OS packages
1025
+ #
1026
+ # It includes even the packages for which there are no definitions on
1027
+ # this OS
1028
+ def all_package_names
1029
+ all_definitions.keys
1030
+ end
1031
+
1005
1032
  # Returns the full path to the osdeps file from which the package
1006
1033
  # definition for +package_name+ has been taken
1007
1034
  def source_of(package_name)
@@ -1835,6 +1862,24 @@ So, what do you want ? (all, none or a comma-separated list of: os gem pip)
1835
1862
  enabled_handlers
1836
1863
  end
1837
1864
 
1865
+ # Requests that packages that are handled within the autoproj project
1866
+ # (i.e. gems) are restored to pristine condition
1867
+ #
1868
+ # This is usually called as a rebuild step to make sure that all these
1869
+ # packages are updated to whatever required the rebuild
1870
+ def pristine(packages, options = Hash.new)
1871
+ setup_package_handlers(options)
1872
+ packages = resolve_os_dependencies(packages)
1873
+
1874
+ _, other_packages =
1875
+ packages.partition { |handler, list| handler == os_package_handler }
1876
+ other_packages.each do |handler, list|
1877
+ if handler.respond_to?(:pristine)
1878
+ handler.pristine(list)
1879
+ end
1880
+ end
1881
+ end
1882
+
1838
1883
  # Requests the installation of the given set of packages
1839
1884
  def install(packages, options = Hash.new)
1840
1885
  # Remove the set of packages that have already been installed
@@ -23,13 +23,6 @@ module Autoproj
23
23
  # set of user-provided strings that caused that package to be
24
24
  # selected
25
25
  attr_reader :selection
26
- # The set of osdeps matches, i.e. a mapping from a user-provided string to
27
- # the set of packages it selected
28
- attr_reader :osdeps_matches
29
- # The set of selected osdeps packages, as a hash of the package name
30
- # to the set of user-provided strings that caused that package to be
31
- # selected
32
- attr_reader :osdeps_selection
33
26
  # A flag that tells #filter_excluded_and_ignored_packages whether
34
27
  # the a given package selection is weak or not.
35
28
  #
@@ -48,8 +41,6 @@ module Autoproj
48
41
  def initialize
49
42
  @selection = Hash.new { |h, k| h[k] = Set.new }
50
43
  @matches = Hash.new { |h, k| h[k] = Set.new }
51
- @osdeps_matches = Hash.new { |h, k| h[k] = Set.new }
52
- @osdeps_selection = Hash.new { |h, k| h[k] = Set.new }
53
44
  @weak_dependencies = Hash.new
54
45
  @ignores = Hash.new { |h, k| h[k] = Set.new }
55
46
  @exclusions = Hash.new { |h, k| h[k] = Set.new }
@@ -60,13 +51,8 @@ module Autoproj
60
51
  selection.keys
61
52
  end
62
53
 
63
- # The set of packages that have been selected
64
- def osdeps_packages
65
- osdeps_selection.keys
66
- end
67
-
68
54
  def include?(pkg_name)
69
- selection.has_key?(pkg_name) || osdeps_selection.has_key?(pkg_name)
55
+ selection.has_key?(pkg_name)
70
56
  end
71
57
 
72
58
  def empty?
@@ -331,7 +331,12 @@ module Autoproj
331
331
  def parse_source_definition
332
332
  @name = source_definition['name']
333
333
  @provides = (source_definition['provides'] || Set.new).to_set
334
- @imports_vcs = (source_definition['imports'] || Array.new).map do |set_def|
334
+ @imports_vcs = Array(source_definition['imports'] || Array.new).map do |set_def|
335
+ if !set_def.kind_of?(Hash)
336
+ raise ConfigError.new(source_file),
337
+ "in #{source_file}: wrong format for 'imports' section. Expected an array of maps (e.g. - github: my/url)."
338
+ end
339
+
335
340
  Autoproj.in_file(source_file) do
336
341
  PackageSet.resolve_definition(manifest, set_def)
337
342
  end
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "1.11.0.rc15"
2
+ VERSION = "1.12.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0.rc15
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rock Core Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2014-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: autobuild
@@ -216,9 +216,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
216
  version: 1.9.2
217
217
  required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  requirements:
219
- - - ">"
219
+ - - ">="
220
220
  - !ruby/object:Gem::Version
221
- version: 1.3.1
221
+ version: '0'
222
222
  requirements: []
223
223
  rubyforge_project:
224
224
  rubygems_version: 2.2.2