Class: EY::Serverside::LockfileParser::Parse10
- Inherits:
-
Parse09
show all
- Defined in:
- lib/engineyard-serverside/lockfile_parser.rb
Constant Summary
collapse
- DEFAULT =
"1.0.10"
Instance Method Summary
collapse
Methods inherited from Parse09
#safe_yaml_load
Methods inherited from BaseParser
#initialize
Instance Method Details
#fetch_version(bundler_version, version_qualifier) ⇒ Object
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/engineyard-serverside/lockfile_parser.rb', line 75
def fetch_version(bundler_version, version_qualifier)
return bundler_version || DEFAULT unless version_qualifier
case version_qualifier
when '='
bundler_version
when '>='
Gem::Version.new(bundler_version) > Gem::Version.new(DEFAULT) ? bundler_version : DEFAULT
when '~>'
bundler_gem_version = Gem::Version.new(bundler_version)
recommendation = bundler_gem_version.spermy_recommendation.gsub(/~>\s*(.+)$/, '\1.')
recommends_default = DEFAULT.index(recommendation) == 0
default_newer_than_requested = Gem::Version.new(DEFAULT) > bundler_gem_version
(recommends_default && default_newer_than_requested) ? DEFAULT : bundler_version
end
end
|
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/engineyard-serverside/lockfile_parser.rb', line 48
def parse
unless @contents.index(/^DEPENDENCIES/)
return super
end
dep_section = ""
in_dependencies_section = false
@contents.each_line do |line|
if line =~ /^DEPENDENCIES/
in_dependencies_section = true
elsif line =~ /^\S/
in_dependencies_section = false
elsif in_dependencies_section
dep_section << line
end
end
unless dep_section.length > 0
raise "Couldn't parse #{@contents}; exiting"
exit(1)
end
result = scan_bundler(dep_section)
bundler_version = result ? result.last : nil
version_qualifier = result ? result.first : nil
[:bundler10, fetch_version(bundler_version, version_qualifier)]
end
|
#scan_bundler(dep_section) ⇒ Object
92
93
94
|
# File 'lib/engineyard-serverside/lockfile_parser.rb', line 92
def scan_bundler(dep_section)
dep_section.scan(/^\s*bundler\s*\((>?=|~>)\s*([^,\)]+)/).first
end
|