From 34ce4229c475e73f557e979443be4856b901a4e5 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Sun, 6 Nov 2011 22:20:18 -0800 Subject: [PATCH] basic gemfile extension --- extensions/gemfile/gemfile.coffee | 34 +++++++++++++++++++++++++++++++ extensions/gemfile/index.coffee | 1 + 2 files changed, 35 insertions(+) create mode 100644 extensions/gemfile/gemfile.coffee create mode 100644 extensions/gemfile/index.coffee diff --git a/extensions/gemfile/gemfile.coffee b/extensions/gemfile/gemfile.coffee new file mode 100644 index 000000000..bca26d1ff --- /dev/null +++ b/extensions/gemfile/gemfile.coffee @@ -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 \ No newline at end of file diff --git a/extensions/gemfile/index.coffee b/extensions/gemfile/index.coffee new file mode 100644 index 000000000..4c3fd6a04 --- /dev/null +++ b/extensions/gemfile/index.coffee @@ -0,0 +1 @@ +module.exports = require 'gemfile/gemfile' \ No newline at end of file