mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
basic gemfile extension
This commit is contained in:
34
extensions/gemfile/gemfile.coffee
Normal file
34
extensions/gemfile/gemfile.coffee
Normal file
@@ -0,0 +1,34 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
|
||||
fs = require 'fs'
|
||||
Extension = require 'extension'
|
||||
KeyBinder = require 'key-binder'
|
||||
Event = require 'event'
|
||||
Watcher = require 'watcher'
|
||||
|
||||
module.exports =
|
||||
class Gemfile extends Extension
|
||||
constructor: ->
|
||||
Event.on 'extensions:loaded', @addRubyGemsDir
|
||||
|
||||
addRubyGemsDir: =>
|
||||
paths = window.extensions.Tree.paths
|
||||
gemfile = _.detect paths, ({path}) -> /Gemfile/i.test path
|
||||
|
||||
if gemfile
|
||||
paths.push
|
||||
label: "RubyGems"
|
||||
path: "http://rubygems.org/"
|
||||
paths: @gemsFromGemFile gemfile.path
|
||||
window.extensions.Tree.reload()
|
||||
|
||||
gemsFromGemFile: (path) ->
|
||||
file = fs.read path
|
||||
gems = []
|
||||
|
||||
for line in file.split "\n"
|
||||
if gem = line.match(/^\s*gem ['"](.+?)['"]/)?[1]
|
||||
gems.push label: gem, path: "https://rubygems.org/gems/#{gem}"
|
||||
|
||||
gems
|
||||
1
extensions/gemfile/index.coffee
Normal file
1
extensions/gemfile/index.coffee
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require 'gemfile/gemfile'
|
||||
Reference in New Issue
Block a user