gemfiler 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in Gemfiler.gemspec
4
+ gemspec
5
+
data/Gemfiler.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require File.expand_path('../lib/gemfiler/version', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.authors = ["Robert Ross"]
7
+ gem.email = ["robert@creativequeries.com"]
8
+ gem.description = %q{Gemfiler makes your Gemfile pretty.}
9
+ gem.summary = %q{Gemfiler knows how to make Gemfiles organized and reader friendly.}
10
+ gem.homepage = ""
11
+
12
+ gem.files = `git ls-files`.split($\)
13
+ gem.executables = `git ls-files -- exe/*`.split("\n").map{ |f| File.basename(f) }
14
+ gem.test_files = gem.files.grep(%r{^spec/})
15
+ gem.name = "gemfiler"
16
+ gem.require_paths = ["lib"]
17
+ gem.version = Gemfiler::VERSION
18
+
19
+ gem.add_runtime_dependency('thor', '~> 0.16')
20
+
21
+ gem.add_development_dependency('rspec', '~> 2.11')
22
+ gem.add_development_dependency('awesome_print')
23
+ end
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 TODO: Write your name
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Gemfiler
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'Gemfiler'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install Gemfiler
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/bin/gemfiler ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ $:.push File.expand_path("../../lib", __FILE__)
3
+
4
+ require 'gemfiler'
5
+ require 'thor'
6
+
7
+ Gemfiler::CLI.start
@@ -0,0 +1,85 @@
1
+ module Gemfiler
2
+ class BundlerShim
3
+ attr_accessor :gems, :ruby_version, :sources, :has_gemspec
4
+ attr_reader :cabinet
5
+
6
+ def initialize
7
+ @gems = []
8
+ @sources = []
9
+ @ruby_version = nil
10
+ @has_gemspec = false
11
+ end
12
+
13
+ def gather(source)
14
+ source = source.gsub /source[\s]+\:([\w_]+)/, 'source(:\\1)'
15
+ instance_eval(source)
16
+ end
17
+
18
+ def gemspec?
19
+ @has_gemspec
20
+ end
21
+
22
+ def gem(name, *args)
23
+ return unless name.length > 0
24
+ gem = {name: name}
25
+
26
+ case args.first
27
+ when String
28
+ gem[:version] = args.first
29
+ when Hash
30
+ gem.merge! args.first
31
+ end
32
+
33
+ gem[:groups] = @groups.map(&:to_s) if @groups
34
+ gem[:platforms] = @platforms.map(&:to_s) if @platforms
35
+
36
+ if @git
37
+ gem[:git] = @git
38
+ gem.merge! @git_options
39
+ end
40
+
41
+ if gem[:group]
42
+ gem[:groups] ||= []
43
+ gem[:groups] << gem.delete(:group)
44
+ end
45
+
46
+ @gems << gem
47
+
48
+ gem
49
+ end
50
+
51
+ def gemspec
52
+ @has_gemspec = true
53
+ end
54
+
55
+ def ruby(version, engine={})
56
+ @ruby_version = {version: version}.merge(engine)
57
+ end
58
+
59
+ def source(source)
60
+ @sources << source
61
+ end
62
+
63
+ def group(*names, &block)
64
+ @groups = names.uniq
65
+ self.instance_eval(&block)
66
+ @groups = nil
67
+ end
68
+
69
+ def platforms(*names, &block)
70
+ @platforms = names.uniq
71
+ self.instance_eval(&block)
72
+ @platforms = nil
73
+ end
74
+
75
+ def git(url, options={}, &block)
76
+ @git = url
77
+ @git_options = options
78
+
79
+ self.instance_eval(&block)
80
+
81
+ @git = nil
82
+ @git_options = nil
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,19 @@
1
+ module Gemfiler
2
+ class Cabinet
3
+ attr_reader :gemfile, :source_contents, :shim
4
+
5
+ def initialize(gemfile)
6
+ @gemfile = gemfile
7
+ @shim = BundlerShim.new
8
+ end
9
+
10
+ def gems
11
+ self.shim.gems
12
+ end
13
+
14
+ def collect!
15
+ @source_contents ||= File.read(gemfile)
16
+ self.shim.gather(@source_contents)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'awesome_print'
2
+
3
+ module Gemfiler
4
+ class CLI < Thor
5
+ desc 'file', 'Organizes your Gemfile.'
6
+
7
+ def file(gemfile='./Gemfile')
8
+ gemfile = File.expand_path("../../../#{gemfile}", __FILE__)
9
+
10
+ cabinet = Gemfiler::Cabinet.new(gemfile)
11
+ cabinet.collect!
12
+
13
+ filer = Gemfiler::Filer.new(cabinet)
14
+ filer.group
15
+ filer.alphabetize
16
+ output = Gemfiler::Output.new(filer)
17
+
18
+ output.write(gemfile)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,42 @@
1
+ module Gemfiler
2
+ class Filer
3
+ attr_accessor :cabinet, :groups, :uncategorized
4
+
5
+ def initialize(cabinet)
6
+ @cabinet = cabinet
7
+ @groups = {}
8
+ @uncategorized = []
9
+ end
10
+
11
+ def group
12
+ cabinet.gems.each do |gem|
13
+ if gem[:groups]
14
+ gem_groups = gem.delete(:groups).sort
15
+ groups[gem_groups] ||= []
16
+ groups[gem_groups] << gem
17
+ else
18
+ uncategorized << gem
19
+ end
20
+ end
21
+ end
22
+
23
+ def alphabetize
24
+ self.uncategorized = alphabetize_from_array(self.uncategorized)
25
+ self.groups = self.groups.inject({}) do |hash, (groups, gems)|
26
+ hash[groups] = alphabetize_from_array(gems)
27
+ hash
28
+ end
29
+ end
30
+
31
+ # Delegate shim
32
+ def shim
33
+ cabinet.shim
34
+ end
35
+
36
+ private
37
+
38
+ def alphabetize_from_array(gems)
39
+ gems.sort_by {|g| g[:name] }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,97 @@
1
+ require 'erb'
2
+
3
+ module Gemfiler
4
+ class Output
5
+ attr_reader :filer
6
+
7
+ def initialize(filer)
8
+ @filer = filer
9
+ end
10
+
11
+ def write(gemfile)
12
+ File.open(gemfile, 'w') do |file|
13
+ file.write(content)
14
+ end
15
+ end
16
+
17
+ def content
18
+ erb = ERB.new(File.read(File.expand_path('../templates/gemfile.erb', __FILE__)), nil, '<>')
19
+ erb.result(binding)
20
+ end
21
+
22
+ def sources
23
+ filer.shim.sources.inject([]) do |sources, source|
24
+ sources << "source #{type_value(source)}"
25
+ sources
26
+ end
27
+ end
28
+
29
+ def gemspec
30
+ filer.shim.gemspec? ? 'gemspec' : ''
31
+ end
32
+
33
+ def ruby
34
+ parts = []
35
+ if version_info = filer.shim.ruby_version
36
+ parts << "ruby '#{version_info[:version]}'"
37
+ parts << ":engine => '#{version_info[:engine]}'" if version_info[:engine]
38
+ parts << ":engine_version => '#{version_info[:engine_version]}'" if version_info[:engine_version]
39
+ end
40
+
41
+ parts.join(', ')
42
+ end
43
+
44
+ def uncategorized_gems
45
+ filer.uncategorized.inject([]) do |gems, gem|
46
+ gems << self.gem_line(gem)
47
+ gems
48
+ end
49
+ end
50
+
51
+ def longest_gem_name(group=nil)
52
+ gems = group ? groups[group] : filer.uncategorized
53
+ gems.inject(0) {|max, gem| gem[:name].length > max ? gem[:name].length : max }
54
+ end
55
+
56
+ def groups
57
+ filer.groups
58
+ end
59
+
60
+ def spacer
61
+ ' '
62
+ end
63
+
64
+ def type_value(value)
65
+ case value
66
+ when Symbol
67
+ ":#{value.to_s}"
68
+ when String
69
+ "'#{value}'"
70
+ when Fixnum, TrueClass, FalseClass
71
+ value.to_s
72
+ end
73
+ end
74
+
75
+ # It's a short parameter name because my syntax highlighter doesn't like the word "gem"
76
+ def gem_line(g, groups=nil)
77
+ gem_name = g[:name]
78
+ line = ["gem '#{gem_name}'"]
79
+
80
+ space_between = longest_gem_name(groups) - gem_name.length
81
+
82
+ if g[:version]
83
+ line << (' ' * space_between) + "'#{g[:version]}'"
84
+ elsif (g.length - 1) > 0
85
+ line << (' ' * space_between) + g.inject([]) do |options, (key, value)|
86
+ if key != :name
87
+ options << ":#{key} => #{type_value(value)}"
88
+ end
89
+
90
+ options
91
+ end.join(', ')
92
+ end
93
+
94
+ line.join(', ')
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,3 @@
1
+ module Gemfiler
2
+ VERSION = "0.0.1"
3
+ end
data/lib/Gemfiler.rb ADDED
@@ -0,0 +1,9 @@
1
+ require_relative "gemfiler/version"
2
+
3
+ module Gemfiler
4
+ autoload :Cabinet, 'gemfiler/cabinet'
5
+ autoload :BundlerShim, 'gemfiler/bundler_shim'
6
+ autoload :Filer, 'gemfiler/filer'
7
+ autoload :Output, 'gemfiler/output'
8
+ autoload :CLI, 'gemfiler/cli'
9
+ end
@@ -0,0 +1,15 @@
1
+ <%= sources.join("\n") %>
2
+ <%= gemspec %>
3
+ <%= ruby %>
4
+ <% uncategorized_gems.each do |gem| %>
5
+ <%= gem %>
6
+ <% end %>
7
+
8
+ <% groups.each do |group, gems| %>
9
+ group <%= group.map{|g| type_value(g.to_sym) }.join(', ') %> do
10
+ <% gems.each do |gem| %>
11
+ <%= gem_line(gem, group) %>
12
+ <% end %>
13
+ end
14
+
15
+ <% end %>
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gemfiler::BundlerShim do
4
+ let(:gemfile) { File.read('./spec/support/gemfiles/SampleGemfile') }
5
+ subject { Gemfiler::BundlerShim.new }
6
+
7
+ before(:each) { subject.gather(gemfile) }
8
+
9
+ it 'enables gemspec' do
10
+ subject.gemspec?.should be_true
11
+ end
12
+
13
+ it 'can define a ruby version' do
14
+ subject.ruby_version[:version].should eq('1.9.2')
15
+ end
16
+
17
+ it 'can define a ruby version w/ engine' do
18
+ subject.ruby_version[:engine].should eq('jruby')
19
+ end
20
+
21
+ it 'can define a ruby version w/ engine version' do
22
+ subject.ruby_version[:engine_version].should eq('1.0')
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gemfiler::Cabinet do
4
+ subject { Gemfiler::Cabinet.new('./spec/support/gemfiles/SampleGemfile') }
5
+
6
+ context '.collect' do
7
+ before(:each) { subject.collect! }
8
+
9
+ it 'retrieves all gems and stores them.' do
10
+ subject.gems.should include({name: 'gemfiler'})
11
+ end
12
+
13
+ it 'retrieves gems with versions' do
14
+ subject.gems.should include({name: 'rspec', version: '2.11'})
15
+ end
16
+
17
+ it 'applies groups in block syntax' do
18
+ subject.gems.should include({name: 'somegem', groups: ['test']})
19
+ end
20
+
21
+ it 'applies platforms in block syntax' do
22
+ subject.gems.should include({name: 'plat', platforms: ['ruby']})
23
+ end
24
+
25
+ it 'applies git sourced gems in block syntax' do
26
+ subject.gems.should include({name: 'rails', git: 'git://github.com/rails/rails.git'})
27
+ end
28
+
29
+ it 'applies git sourced gems in block syntax with git options' do
30
+ subject.gems.should include({name: 'rails2', git: 'git://github.com/rails/rails.git', ref: '2f7cb5e9'})
31
+ end
32
+
33
+ it 'always puts a gem group into the plural key' do
34
+ subject.gems.should include({name: 'somegemthesecond', groups: ['test2']})
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gemfiler::Filer do
4
+ let(:cabinet) { Gemfiler::Cabinet.new('./spec/support/gemfiles/SampleGemfileForGroups') }
5
+ subject { Gemfiler::Filer.new(cabinet) }
6
+
7
+ context 'gem groups' do
8
+ before(:each) do
9
+ cabinet.collect!
10
+ subject.group
11
+ end
12
+
13
+ it 'are gathered correctly' do
14
+ subject.groups[['randomgroup']].size.should eq(3)
15
+ end
16
+
17
+ it 'expose uncategorized gems' do
18
+ subject.uncategorized.size.should eq(3)
19
+ end
20
+ end
21
+
22
+ context 'alphabitizer' do
23
+ before(:each) do
24
+ cabinet.collect!
25
+ subject.group
26
+ end
27
+
28
+ it 'alphabetizes uncategorized gems correctly' do
29
+ subject.alphabetize
30
+ subject.uncategorized.first[:name].should eq('aaa')
31
+ end
32
+
33
+ it 'alphabetizes grouped gems correctly' do
34
+ subject.alphabetize
35
+ subject.groups[['randomgroup']].first[:name].should eq('bbb')
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gemfiler::Output do
4
+ let(:cabinet) { Gemfiler::Cabinet.new('./spec/support/gemfiles/SampleGemfileForOutput') }
5
+ let(:filer) { Gemfiler::Filer.new(cabinet) }
6
+
7
+ subject { Gemfiler::Output.new(filer) }
8
+
9
+ context 'gemfile output methods' do
10
+ before(:each) do
11
+ cabinet.collect!
12
+ filer.group
13
+ filer.alphabetize
14
+ end
15
+
16
+ it '.source returns sources' do
17
+ subject.sources.should include "source 'http://rubygems.org'"
18
+ end
19
+
20
+ it '.source returns sources as symbols' do
21
+ subject.sources.should include 'source :rubygems'
22
+ end
23
+
24
+ it '.gemspec returns a gemspec line' do
25
+ subject.gemspec.should match /gemspec/
26
+ end
27
+
28
+ it '.ruby returns the correct ruby definition' do
29
+ subject.ruby.should match /ruby '1.9.3'/
30
+ end
31
+
32
+ context '.uncategorized_gems' do
33
+ it 'returns alphabitized gems' do
34
+ organized_gems = ['aaa', 'bbb', 'ccc']
35
+ subject.uncategorized_gems.each do |gem|
36
+ gem.should match "gem '#{organized_gems.shift}'"
37
+ end
38
+ end
39
+
40
+ it 'returns alphabitized gems with version' do
41
+ subject.uncategorized_gems[0].should match /gem 'aaa', '1'/
42
+ end
43
+
44
+ it 'returns alphabitized gems with options' do
45
+ subject.uncategorized_gems[1].should match /gem 'bbb', :path => 'mygempath'/
46
+ end
47
+
48
+ it 'returns alphabitized gems with multiple options' do
49
+ subject.uncategorized_gems[2].should match /gem 'ccc', :path => 'awesomepath', :require => 'asd'/
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,14 @@
1
+ require 'gemfiler'
2
+ require 'ap'
3
+
4
+ RSpec.configure do |config|
5
+ config.treat_symbols_as_metadata_keys_with_true_values = true
6
+ config.run_all_when_everything_filtered = true
7
+ config.filter_run :focus
8
+
9
+ # Run specs in random order to surface order dependencies. If you find an
10
+ # order dependency and want to debug it, you can fix the order by providing
11
+ # the seed, which is printed after each run.
12
+ # --seed 1234
13
+ # config.order = 'random'
14
+ end
@@ -0,0 +1,129 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Essential gems
4
+ gem 'rails', '3.1.6'
5
+ gem 'rack', '1.3.6'
6
+ gem 'thin'
7
+ gem 'unicorn'
8
+ gem 'foreman'
9
+
10
+ # Resque and plugins
11
+ gem 'resque', :require => 'resque/server', :git => 'https://github.com/defunkt/resque.git'
12
+ gem 'resque-scheduler', :require => 'resque_scheduler'
13
+ gem 'redis-namespace'
14
+ gem 'god'
15
+
16
+ # Payment processing and shopping cart gems
17
+ gem "activemerchant", "~> 1.21.0"
18
+
19
+ gem 'jude', :git => 'git@github.com:1703india/jude.git'
20
+
21
+ gem 'mookie', :git => 'git@github.com:1703india/mookie.git'
22
+
23
+ gem 'authorize-net', '~> 1.5.2'
24
+
25
+ gem 'fog'
26
+ gem 'devise'
27
+ gem 'defaultable', :git => 'git@github.com:bobbytables/defaultable.git', :ref => 'fade89061fb5'
28
+ gem 'kaminari'
29
+
30
+ gem 'timecop'
31
+ gem 'geocoder'
32
+
33
+ # Authentication and permissions gems
34
+ gem 'cobra', :git => 'git@github.com:1703india/cobra.git'
35
+ gem 'cancan', '1.6.7'
36
+
37
+ # Model extension and validation gems
38
+ gem 'state_machine'
39
+ gem 'validates_timeliness', '~> 3.0.2'
40
+ gem 'gmaps4rails'
41
+ gem 'chronic'
42
+ gem 'paper_trail'
43
+ gem 'no_peeping_toms', :git => 'git://github.com/patmaddox/no-peeping-toms.git'
44
+ gem "tire", :git => 'git@github.com:bobbytables/tire.git', :ref => '543f4b410f6c7b4ce62b4b866fb45a2339642b16'
45
+ gem 'draper', '~> 0.9'
46
+
47
+ # View helper gems
48
+ gem 'formtastic', '~> 2'
49
+ gem 'formtastic_datepicker_inputs', :git => 'https://github.com/adyard/formtastic_datepicker_inputs.git'
50
+ gem 'redcarpet'
51
+
52
+ # File attachment gems
53
+ gem 'carrierwave', :git => 'https://github.com/jnicklas/carrierwave.git'
54
+ gem 'mini_magick'
55
+
56
+ # Email helper gems
57
+ gem 'liquid'
58
+
59
+ # Postgres DB adapter gem and multi-schema helper
60
+ gem 'pg'
61
+ gem 'apartment'
62
+
63
+ # API related gems
64
+ gem 'httparty'
65
+ gem 'grape', :git => 'https://github.com/intridea/grape.git'
66
+
67
+ # External services
68
+ gem 'assistly'
69
+
70
+ # Asset pipeline gems
71
+ gem 'jquery-rails'
72
+
73
+ # No explanation needed.
74
+ gem 'newrelic_rpm'
75
+
76
+ # Deployment stuff
77
+ gem 'capistrano'
78
+ gem 'capistrano_colors'
79
+ gem 'highline', '1.6.5'
80
+ gem 'airbrake'
81
+
82
+ # ESP
83
+ gem 'acts_as_icontact', :git => 'https://github.com/dcondomitti/acts_as_icontact.git'
84
+
85
+ # Debugging Tools
86
+ group :development, :test do
87
+ gem 'pry'
88
+ gem 'awesome_print'
89
+ gem 'spin'
90
+ gem 'guard-spin'
91
+ end
92
+
93
+ # We need to explicitly define a JavaScript runtime for non-OS X platforms
94
+ group :production do
95
+ gem 'therubyracer'
96
+ end
97
+
98
+ # Gems used only for assets and not required
99
+ # in production environments by default.
100
+ group :assets do
101
+ gem 'sass-rails', " ~> 3.1.0"
102
+ gem 'coffee-rails', "~> 3.1.0"
103
+ gem 'uglifier'
104
+ end
105
+
106
+ group :development do
107
+ gem 'rails-dev-tweaks', '~> 0.5.1'
108
+ gem 'active_reload'
109
+ gem 'ruby-prof'
110
+ gem 'factory_girl_rails', '1.7.0'
111
+ gem 'syntax'
112
+ gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git'
113
+ # SQLite has been moved to development only due to dependencies in CentOS/RHEL
114
+ gem 'sqlite3'
115
+ end
116
+
117
+ group :test do
118
+ gem 'rspec-rails'
119
+ gem 'database_cleaner'
120
+ gem 'factory_girl_rails', '1.7.0'
121
+ gem 'spork', '0.9.0.rc9'
122
+ gem 'simplecov', :require => false
123
+ gem 'guard-rspec'
124
+ gem 'guard-spork'
125
+ gem 'rb-fsevent'
126
+ gem 'capybara'
127
+ gem 'growl'
128
+ end
129
+
@@ -0,0 +1,28 @@
1
+ gemspec
2
+ ruby '1.9.2', engine: 'jruby', engine_version: '1.0'
3
+
4
+ gem 'gemfiler'
5
+ gem 'rspec', '2.11'
6
+ gem 'somegemthesecond', group: 'test2'
7
+
8
+ group :test do
9
+ gem 'somegem'
10
+ end
11
+
12
+
13
+ platforms :ruby do
14
+ gem 'plat'
15
+ end
16
+
17
+ git 'git://github.com/rails/rails.git' do
18
+ gem 'rails'
19
+ end
20
+
21
+ git 'git://github.com/rails/rails.git', ref: '2f7cb5e9' do
22
+ gem 'rails2'
23
+ end
24
+
25
+ group :randomgroup do
26
+ gem 'testgem1'
27
+ gem 'testgem2'
28
+ end
@@ -0,0 +1,13 @@
1
+ source 'http://rubygems.org'
2
+ ruby '1.9.3'
3
+ gemspec
4
+
5
+ group :randomgroup do
6
+ gem 'testgem1'
7
+ gem 'testgem2'
8
+ gem 'bbb'
9
+ end
10
+
11
+ gem 'aaa'
12
+ gem 'uncategorized1'
13
+ gem 'uncategorized2'
@@ -0,0 +1,15 @@
1
+ source 'http://rubygems.org'
2
+ source :rubygems
3
+ ruby '1.9.3', engine: 'jruby'
4
+
5
+ gemspec
6
+
7
+ gem 'ccc', :path => 'awesomepath', :require => 'asd'
8
+ gem 'aaa', '1'
9
+ gem 'bbb', :path => 'mygempath'
10
+
11
+ group :development, :test do
12
+ gem 'bbb_somedevgem', git: 'somegit'
13
+ gem 'ccc_somedevgem'
14
+ gem 'aaa_somedevgem'
15
+ end
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gemfiler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Robert Ross
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.16'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.16'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '2.11'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.11'
46
+ - !ruby/object:Gem::Dependency
47
+ name: awesome_print
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Gemfiler makes your Gemfile pretty.
63
+ email:
64
+ - robert@creativequeries.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .rspec
71
+ - Gemfile
72
+ - Gemfiler.gemspec
73
+ - LICENSE
74
+ - README.md
75
+ - Rakefile
76
+ - bin/gemfiler
77
+ - lib/Gemfiler.rb
78
+ - lib/Gemfiler/bundler_shim.rb
79
+ - lib/Gemfiler/cabinet.rb
80
+ - lib/Gemfiler/cli.rb
81
+ - lib/Gemfiler/filer.rb
82
+ - lib/Gemfiler/output.rb
83
+ - lib/Gemfiler/version.rb
84
+ - lib/gemfiler/templates/gemfile.erb
85
+ - spec/bundler_shim_spec.rb
86
+ - spec/cabinet_spec.rb
87
+ - spec/filer_spec.rb
88
+ - spec/output_spec.rb
89
+ - spec/spec_helper.rb
90
+ - spec/support/gemfiles/HugeMess
91
+ - spec/support/gemfiles/SampleGemfile
92
+ - spec/support/gemfiles/SampleGemfileForGroups
93
+ - spec/support/gemfiles/SampleGemfileForOutput
94
+ homepage: ''
95
+ licenses: []
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 1.8.23
115
+ signing_key:
116
+ specification_version: 3
117
+ summary: Gemfiler knows how to make Gemfiles organized and reader friendly.
118
+ test_files:
119
+ - spec/bundler_shim_spec.rb
120
+ - spec/cabinet_spec.rb
121
+ - spec/filer_spec.rb
122
+ - spec/output_spec.rb
123
+ - spec/spec_helper.rb
124
+ - spec/support/gemfiles/HugeMess
125
+ - spec/support/gemfiles/SampleGemfile
126
+ - spec/support/gemfiles/SampleGemfileForGroups
127
+ - spec/support/gemfiles/SampleGemfileForOutput