class EY::Serverside::DependencyManager::Bundler::Lockfile
Constants
- BUNDLED
- DEPENDENCIES
- METADATA
Attributes
bundler_version[R]
Public Class Methods
new(lockfile_contents, default = EY::Serverside::DependencyManager::Bundler.default_version)
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 172 def initialize(lockfile_contents, default = EY::Serverside::DependencyManager::Bundler.default_version) @contents = lockfile_contents @default = default @default_gem_version = Gem::Version.new(@default) parse end
Public Instance Methods
any_database_adapter?()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 192 def any_database_adapter? any_ruby_adapter = %w[mysql2 mysql do_mysql pg do_postgres].any? do |type| @contents.index(/^\s+#{type}\s\([^\)]+\)$/) end any_jruby_adapter = %w[mysql postgresql postgres].any? do |type| @contents.index(/^\s+jdbc-#{type}\s\([^\)]+\)$/) || @contents.index(/^\s+activerecord-jdbc#{type}-adapter\s\([^\)]+\)$/) end any_ruby_adapter || any_jruby_adapter end
dependencies_section()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 238 def dependencies_section @dependencies_section ||= slice_section(DEPENDENCIES) end
fetch_version(operator, version)
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 252 def fetch_version(operator, version) return version || @default unless operator && version req = Gem::Requirement.new(["#{operator} #{version}"]) req.satisfied_by?(@default_gem_version) ? @default : version end
has_ey_config?()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 179 def has_ey_config? !!@contents.index(/^\s+ey_config\s\([^\)]+\)$/) end
parse()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 208 def parse @bundler_version = parse_from_metadata || parse_from_bundled_with || parse_from_dependencies raise("Malformed or pre bundler-1.0.0 Gemfile.lock: #{@contents[0,50]}...") unless @bundler_version end
parse_from_bundled_with()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 230 def parse_from_bundled_with section = slice_section(BUNDLED) return if section.empty? result = section.scan(/^#{BUNDLED}\s*(.*)$/).first result ? result.first : @default end
parse_from_dependencies()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 242 def parse_from_dependencies section = dependencies_section return if section.empty? result = scan_gem('bundler', section) bundler_version = result ? result.last : nil version_qualifier = result ? result.first : nil @bundler_version = fetch_version(version_qualifier, bundler_version) end
parse_from_metadata()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 222 def parse_from_metadata section = slice_section(METADATA) return if section.empty? result = section.scan(/^\s*version:\s*(.*)$/).first result ? result.first : @default end
rails_version()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 183 def rails_version section = dependencies_section if section.empty? return nil end result = scan_gem('rails', section) result ? result.last : nil end
scan_gem(gem, dep_section)
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 258 def scan_gem(gem, dep_section) dep_section.scan(/^\s*#{Regexp.escape(gem)}\s*\((>?=|~>)\s*([^,\)]+)/).first end
slice_section(header)
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 213 def slice_section(header) if start = @contents.index(/^#{header}/) finish = @contents.index(/(^\S|\Z)/, start + header.length) @contents.slice(start..finish) else "" end end
uses_sqlite3?()
click to toggle source
# File lib/engineyard-serverside/dependency_manager/bundler.rb, line 204 def uses_sqlite3? !any_database_adapter? && @contents.index(/^\s+sqlite3\s\([^\)]+\)$/) end