Files
atom/extensions/gemfile/gemfile.coffee
2011-11-13 02:20:27 -08:00

40 lines
1007 B
CoffeeScript

$ = require 'jquery'
_ = require 'underscore'
fs = require 'fs'
Extension = require 'extension'
ModalSelector = require 'modal-selector'
module.exports =
class Gemfile extends Extension
constructor: ->
atom.keybinder.load require.resolve "gemfile/key-bindings.coffee"
atom.on 'project:open', @startup
startup: (@project) =>
urls = @project.urls()
gemfile = _.detect urls, ({url}) -> /Gemfile/i.test url
{url} = gemfile if gemfile
if url
@project.settings.extraURLs[@project.url] = [
name: "RubyGems"
url: "http://rubygems.org/"
type: 'dir'
]
gems = @gems url
@project.settings.extraURLs["http://rubygems.org/"] = gems
@pane = new ModalSelector -> gems
toggle: ->
@pane?.toggle()
gems: (url) ->
file = fs.read url
gems = []
for line in file.split "\n"
if gem = line.match(/^\s*gem ['"](.+?)['"]/)?[1]
gems.push type: 'file', name: gem, url: "https://rubygems.org/gems/#{gem}"
gems