lib/geminabox/server.rb in geminabox-0.12.0 vs lib/geminabox/server.rb in geminabox-0.12.1

- old
+ new

@@ -235,20 +235,26 @@ def combined_gem_list GemListMerge.from(local_gem_list, remote_gem_list) end helpers do - def spec_for(gem_name, version) - spec_file = File.join(settings.data, "quick", "Marshal.#{Gem.marshal_version}", "#{gem_name}-#{version}.gemspec.rz") + def spec_for(gem_name, version, platform = default_platform) + filename = [gem_name, version] + filename.push(platform) if platform != default_platform + spec_file = File.join(settings.data, "quick", "Marshal.#{Gem.marshal_version}", "#{filename.join("-")}.gemspec.rz") Marshal.load(Gem.inflate(File.read(spec_file))) if File.exists? spec_file end + def default_platform + 'ruby' + end + # Return a list of versions of gem 'gem_name' with the dependencies of each version. def gem_dependencies(gem_name) dependency_cache.marshal_cache(gem_name) do load_gems. select { |gem| gem_name == gem.name }. - map { |gem| [gem, spec_for(gem.name, gem.number)] }. + map { |gem| [gem, spec_for(gem.name, gem.number, gem.platform)] }. reject { |(_, spec)| spec.nil? }. map do |(gem, spec)| { :name => gem.name, :number => gem.number.version,