Gemfiler 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+
@@ -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.
@@ -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
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -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,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,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
@@ -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