rails_finder 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.
- data/.gitignore +19 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +49 -0
- data/Rakefile +1 -0
- data/bin/find_rails +18 -0
- data/lib/rails_finder/app.rb +36 -0
- data/lib/rails_finder/environment_file.rb +24 -0
- data/lib/rails_finder/gemfile.rb +23 -0
- data/lib/rails_finder/version.rb +3 -0
- data/lib/rails_finder.rb +43 -0
- data/rails_finder.gemspec +21 -0
- data/spec/rails_finder/app_spec.rb +35 -0
- data/spec/rails_finder/environment_file_spec.rb +67 -0
- data/spec/rails_finder/gemfile_spec.rb +63 -0
- data/spec/rails_finder_spec.rb +58 -0
- data/spec/spec_helper.rb +20 -0
- metadata +84 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Chris Thorn
|
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,49 @@
|
|
1
|
+
# RailsFinder
|
2
|
+
|
3
|
+
Finds Rails applications in a given directory and reports their version numbers.
|
4
|
+
|
5
|
+
Currently, I maintain quite a lot of Rails applications, and the recent flux of
|
6
|
+
security vulnerabilities left me wanting something a little more than one-off
|
7
|
+
shell scripts. I also felt like hacking on some Ruby that wasn't Rails, as it's
|
8
|
+
been a while since I've been able to. It felt good.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
gem install rails_finder
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
To search in the current directory
|
17
|
+
|
18
|
+
$ find_rails
|
19
|
+
|
20
|
+
To specify a directory
|
21
|
+
|
22
|
+
$ find_rails path_to_search
|
23
|
+
|
24
|
+
Example
|
25
|
+
|
26
|
+
$ find_rails ~/code
|
27
|
+
the-oldtimer 2.3.16 /Users/chris/code/the-oldtimer
|
28
|
+
the-outlier 3.2 /Users/chris/code/the-outlier
|
29
|
+
the-good-one 3.2.11 /Users/chris/code/the-good-one
|
30
|
+
wat 4.0.0 /Users/chris/code/wat
|
31
|
+
templates n/a /Users/chris/code/rails/railties/lib/rails/generators/rails/app/templates
|
32
|
+
|
33
|
+
## Limitations
|
34
|
+
|
35
|
+
* Only the Gemfile and config/environments.rb files are inspected. If the
|
36
|
+
version specified there is not the installed version, then the report will be
|
37
|
+
inaccurate. For example: `~> 3.2` will be reported as "3.2" regardless of the
|
38
|
+
installed version.
|
39
|
+
|
40
|
+
* The recursive search will pick up config files of dummy applications that are
|
41
|
+
only used for testing.
|
42
|
+
|
43
|
+
## Contributing
|
44
|
+
|
45
|
+
1. Fork it
|
46
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
47
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
48
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
49
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/find_rails
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "rails_finder"
|
4
|
+
|
5
|
+
def print_help
|
6
|
+
puts <<END
|
7
|
+
Finds Rails applications in the given directory and reports their
|
8
|
+
version numbers. If no directory is given, uses the current.
|
9
|
+
END
|
10
|
+
puts "\n\tusage: find_rails [directory]"
|
11
|
+
end
|
12
|
+
|
13
|
+
if ARGV.any? { |a| a == "-h" || a == "--help" }
|
14
|
+
print_help
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
RailsFinder.run(ARGV.first || Dir.pwd)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "rails_finder/gemfile"
|
2
|
+
require "rails_finder/environment_file"
|
3
|
+
|
4
|
+
module RailsFinder
|
5
|
+
class App
|
6
|
+
attr_reader :root
|
7
|
+
|
8
|
+
def initialize(root)
|
9
|
+
@root = root
|
10
|
+
end
|
11
|
+
|
12
|
+
def basename
|
13
|
+
File.basename(root)
|
14
|
+
end
|
15
|
+
|
16
|
+
def rails_version
|
17
|
+
if gemfile.exists?
|
18
|
+
gemfile.rails_version
|
19
|
+
elsif envfile.exists?
|
20
|
+
envfile.rails_version
|
21
|
+
else
|
22
|
+
"n/a"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def gemfile
|
29
|
+
@gemfile ||= Gemfile.new(File.join(root, "Gemfile"))
|
30
|
+
end
|
31
|
+
|
32
|
+
def envfile
|
33
|
+
@envfile ||= EnvironmentFile.new(File.join(root, "config", "environment.rb"))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module RailsFinder
|
2
|
+
class EnvironmentFile
|
3
|
+
attr_reader :path
|
4
|
+
|
5
|
+
def initialize(path)
|
6
|
+
@path = path
|
7
|
+
end
|
8
|
+
|
9
|
+
def exists?
|
10
|
+
File.exists?(path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def rails_version
|
14
|
+
return @rails_version if @rails_version
|
15
|
+
|
16
|
+
version_line = File.readlines(path).find { |l| l =~ /RAILS_GEM_VERSION/ }
|
17
|
+
if version_line
|
18
|
+
@rails_version = version_line[/\d+\.\d+(\.\d+)?/].strip
|
19
|
+
else
|
20
|
+
@rails_version = "n/a"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RailsFinder
|
2
|
+
class Gemfile
|
3
|
+
attr_reader :path
|
4
|
+
|
5
|
+
def initialize(path)
|
6
|
+
@path = path
|
7
|
+
end
|
8
|
+
|
9
|
+
def exists?
|
10
|
+
File.exists?(path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def rails_version
|
14
|
+
return @rails_version if @rails_version
|
15
|
+
line = File.readlines(path).find { |l| l =~ /^gem.+rails/i }
|
16
|
+
if line
|
17
|
+
@rails_version = line[/\d+\.\d+(\.\d+)?/]
|
18
|
+
else
|
19
|
+
@rails_version = "n/a"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/rails_finder.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require "rails_finder/version"
|
2
|
+
require "rails_finder/app"
|
3
|
+
|
4
|
+
module RailsFinder
|
5
|
+
def self.run(dir, output = $stdout)
|
6
|
+
Runner.new(dir, output).print
|
7
|
+
end
|
8
|
+
|
9
|
+
class Runner
|
10
|
+
attr_reader :dir, :output
|
11
|
+
|
12
|
+
def initialize(dir, output = $stdout)
|
13
|
+
@dir = dir
|
14
|
+
@output = output
|
15
|
+
end
|
16
|
+
|
17
|
+
def print
|
18
|
+
if apps.any?
|
19
|
+
apps.sort_by(&:rails_version).each do |app|
|
20
|
+
output.puts "#{app.basename.ljust(root_width)} #{app.rails_version.ljust(version_width)} #{app.root}"
|
21
|
+
end
|
22
|
+
else
|
23
|
+
output.puts "none found"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def apps
|
28
|
+
@apps ||= Dir["#{dir}/**/config/environment.rb"].map do |file|
|
29
|
+
App.new(File.expand_path("../..", file))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def root_width
|
36
|
+
@root_label_width = (apps.map { |a| a.basename.length }.max || 0) + 2
|
37
|
+
end
|
38
|
+
|
39
|
+
def version_width
|
40
|
+
@version_width ||= (apps.map { |a| a.rails_version.length }.max || 0)+ 2
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'rails_finder/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "rails_finder"
|
8
|
+
gem.version = RailsFinder::VERSION
|
9
|
+
gem.authors = ["Chris Thorn"]
|
10
|
+
gem.email = ["thorncp@gmail.com"]
|
11
|
+
gem.description = %q{Overly simple utility to recursively find Rails apps and their versions}
|
12
|
+
gem.summary = %q{Overly simple utility to recursively find Rails apps and their versions}
|
13
|
+
gem.homepage = "https://github.com/thorncp/rails_finder"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_development_dependency "rspec", "~> 2.12.0"
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rails_finder/app"
|
3
|
+
|
4
|
+
module RailsFinder
|
5
|
+
describe App do
|
6
|
+
it "knows path basname" do
|
7
|
+
with_dir do |dir|
|
8
|
+
path = File.join(dir, "awesome_app")
|
9
|
+
Dir.mkdir(path)
|
10
|
+
App.new(path).basename.should == "awesome_app"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "reports Rails version from Gemfile" do
|
15
|
+
subject = App.new(stub)
|
16
|
+
subject.stub(gemfile: stub(exists?: true, rails_version: "3.2.11"))
|
17
|
+
subject.stub(envfile: stub(exists?: true, rails_version: "n/a"))
|
18
|
+
subject.rails_version.should == "3.2.11"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "reports Rails version from environment file" do
|
22
|
+
subject = App.new(stub)
|
23
|
+
subject.stub(gemfile: stub(exists?: false, rails_version: "n/a"))
|
24
|
+
subject.stub(envfile: stub(exists?: true, rails_version: "2.3.16"))
|
25
|
+
subject.rails_version.should == "2.3.16"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "reports n/a when no Rails version is found" do
|
29
|
+
subject = App.new(stub)
|
30
|
+
subject.stub(gemfile: stub(exists?: false))
|
31
|
+
subject.stub(envfile: stub(exists?: false))
|
32
|
+
subject.rails_version.should == "n/a"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rails_finder/environment_file"
|
3
|
+
require "tmpdir"
|
4
|
+
require "fileutils"
|
5
|
+
|
6
|
+
VALID_ENVFILE = <<END
|
7
|
+
RAILS_GEM_VERSION = '2.3.16' unless defined? RAILS_GEM_VERSION
|
8
|
+
|
9
|
+
require File.join(File.dirname(__FILE__), 'boot')
|
10
|
+
|
11
|
+
Rails::Initializer.run do |config|
|
12
|
+
config.time_zone = 'Pacific Time (US & Canada)'
|
13
|
+
config.cache_store = :mem_cache_store
|
14
|
+
end
|
15
|
+
END
|
16
|
+
|
17
|
+
|
18
|
+
module RailsFinder
|
19
|
+
describe EnvironmentFile do
|
20
|
+
it "knows if file exists" do
|
21
|
+
with_dir do |dir|
|
22
|
+
FileUtils.touch(envfile(dir))
|
23
|
+
EnvironmentFile.new(envfile(dir)).should exist
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "knows if file does not exist" do
|
28
|
+
with_dir do |dir|
|
29
|
+
EnvironmentFile.new(envfile(dir)).should_not exist
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it "reports Rails version" do
|
34
|
+
with_dir do |dir|
|
35
|
+
File.open(envfile(dir), "w") do |file|
|
36
|
+
file.puts(VALID_ENVFILE)
|
37
|
+
end
|
38
|
+
|
39
|
+
EnvironmentFile.new(envfile(dir)).rails_version.should == "2.3.16"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "reports none when no Rails version" do
|
44
|
+
with_dir do |dir|
|
45
|
+
File.open(envfile(dir), "w") do |file|
|
46
|
+
file.puts "require File.expand_path('../application', __FILE__)"
|
47
|
+
file.puts "Recipes::Application.initialize!"
|
48
|
+
end
|
49
|
+
|
50
|
+
EnvironmentFile.new(envfile(dir)).rails_version.should == "n/a"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
it "memoizes rails version" do
|
55
|
+
with_dir do |dir|
|
56
|
+
File.open(envfile(dir), "w") do |file|
|
57
|
+
file.puts(VALID_ENVFILE)
|
58
|
+
end
|
59
|
+
|
60
|
+
@subject = EnvironmentFile.new(envfile(dir))
|
61
|
+
@subject.rails_version.should == "2.3.16"
|
62
|
+
end
|
63
|
+
|
64
|
+
@subject.rails_version.should == "2.3.16"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rails_finder/gemfile"
|
3
|
+
require "tmpdir"
|
4
|
+
require "fileutils"
|
5
|
+
|
6
|
+
VALID_GEMFILE = <<END
|
7
|
+
source :rubygems
|
8
|
+
|
9
|
+
gem "rails", "3.2.11"
|
10
|
+
gem "jquery-rails"
|
11
|
+
END
|
12
|
+
|
13
|
+
module RailsFinder
|
14
|
+
describe Gemfile do
|
15
|
+
it "knows if file exists" do
|
16
|
+
with_dir do |dir|
|
17
|
+
FileUtils.touch(gemfile(dir))
|
18
|
+
|
19
|
+
Gemfile.new(gemfile(dir)).should exist
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "knows if file does not exist" do
|
24
|
+
with_dir do |dir|
|
25
|
+
Gemfile.new(gemfile(dir)).should_not exist
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "reports Rails version" do
|
30
|
+
with_dir do |dir|
|
31
|
+
File.open(gemfile(dir), "w") do |file|
|
32
|
+
file.puts(VALID_GEMFILE)
|
33
|
+
end
|
34
|
+
|
35
|
+
Gemfile.new(gemfile(dir)).rails_version.should == "3.2.11"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "reports none when no Rails version" do
|
40
|
+
with_dir do |dir|
|
41
|
+
File.open(gemfile(dir), "w") do |file|
|
42
|
+
file.puts "source :rubygems"
|
43
|
+
file.puts "gem 'rspec', '2.12.0'"
|
44
|
+
end
|
45
|
+
|
46
|
+
Gemfile.new(gemfile(dir)).rails_version.should == "n/a"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it "memoizes rails version" do
|
51
|
+
with_dir do |dir|
|
52
|
+
File.open(gemfile(dir), "w") do |file|
|
53
|
+
file.puts(VALID_GEMFILE)
|
54
|
+
end
|
55
|
+
|
56
|
+
@subject = Gemfile.new(gemfile(dir))
|
57
|
+
@subject.rails_version.should == "3.2.11"
|
58
|
+
end
|
59
|
+
|
60
|
+
@subject.rails_version.should == "3.2.11"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rails_finder"
|
3
|
+
require "tmpdir"
|
4
|
+
require "fileutils"
|
5
|
+
|
6
|
+
VALID_GEMFILE = <<END
|
7
|
+
source :rubygems
|
8
|
+
|
9
|
+
gem 'rails', '3.2.11'
|
10
|
+
gem 'jquery-rails'
|
11
|
+
gem 'sqlite3'
|
12
|
+
|
13
|
+
group :development, :test do
|
14
|
+
gem 'rspec', '~> 2.12'
|
15
|
+
end
|
16
|
+
END
|
17
|
+
|
18
|
+
VALID_2_3_ENVIRONMENT_FILE = <<END
|
19
|
+
RAILS_GEM_VERSION = '2.3.16' unless defined? RAILS_GEM_VERSION
|
20
|
+
|
21
|
+
require File.join(File.dirname(__FILE__), 'boot')
|
22
|
+
|
23
|
+
Rails::Initializer.run do |config|
|
24
|
+
config.time_zone = 'Pacific Time (US & Canada)'
|
25
|
+
config.cache_store = :mem_cache_store
|
26
|
+
end
|
27
|
+
END
|
28
|
+
|
29
|
+
describe RailsFinder do
|
30
|
+
it "finds and reports on valid Gemfile" do
|
31
|
+
Dir.mktmpdir "rails_finder-valid_app" do |dir|
|
32
|
+
FileUtils.mkdir_p(File.join(dir, "config"))
|
33
|
+
FileUtils.touch(File.join(dir, "config", "environment.rb"))
|
34
|
+
File.open(File.join(dir, "Gemfile"), "w") do |file|
|
35
|
+
file.puts(VALID_GEMFILE)
|
36
|
+
end
|
37
|
+
|
38
|
+
out = StringIO.new
|
39
|
+
RailsFinder.run(dir, out)
|
40
|
+
out.string.should include "3.2.11"
|
41
|
+
out.string.should include "rails_finder-valid_app"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "finds and reports on valid 2.3 environment file" do
|
46
|
+
Dir.mktmpdir "valid_2.3_app" do |dir|
|
47
|
+
FileUtils.mkdir_p(File.join(dir, "config"))
|
48
|
+
File.open(File.join(dir, "config", "environment.rb"), "w") do |file|
|
49
|
+
file.puts(VALID_2_3_ENVIRONMENT_FILE)
|
50
|
+
end
|
51
|
+
|
52
|
+
out = StringIO.new
|
53
|
+
RailsFinder.run(dir, out)
|
54
|
+
out.string.should include "2.3.16"
|
55
|
+
out.string.should include "valid_2.3_app"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require "rails_finder"
|
2
|
+
require "fileutils"
|
3
|
+
require "tmpdir"
|
4
|
+
|
5
|
+
RSpec.configure do |config|
|
6
|
+
def with_dir
|
7
|
+
Dir.mktmpdir("rails_version-spec") do |dir|
|
8
|
+
FileUtils.mkdir_p(File.join(dir, "config"))
|
9
|
+
yield dir
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def gemfile(dir)
|
14
|
+
File.join(dir, "Gemfile")
|
15
|
+
end
|
16
|
+
|
17
|
+
def envfile(dir)
|
18
|
+
File.join(dir, "config", "environment.rb")
|
19
|
+
end
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails_finder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Chris Thorn
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-01-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.12.0
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.12.0
|
30
|
+
description: Overly simple utility to recursively find Rails apps and their versions
|
31
|
+
email:
|
32
|
+
- thorncp@gmail.com
|
33
|
+
executables:
|
34
|
+
- find_rails
|
35
|
+
extensions: []
|
36
|
+
extra_rdoc_files: []
|
37
|
+
files:
|
38
|
+
- .gitignore
|
39
|
+
- Gemfile
|
40
|
+
- LICENSE.txt
|
41
|
+
- README.md
|
42
|
+
- Rakefile
|
43
|
+
- bin/find_rails
|
44
|
+
- lib/rails_finder.rb
|
45
|
+
- lib/rails_finder/app.rb
|
46
|
+
- lib/rails_finder/environment_file.rb
|
47
|
+
- lib/rails_finder/gemfile.rb
|
48
|
+
- lib/rails_finder/version.rb
|
49
|
+
- rails_finder.gemspec
|
50
|
+
- spec/rails_finder/app_spec.rb
|
51
|
+
- spec/rails_finder/environment_file_spec.rb
|
52
|
+
- spec/rails_finder/gemfile_spec.rb
|
53
|
+
- spec/rails_finder_spec.rb
|
54
|
+
- spec/spec_helper.rb
|
55
|
+
homepage: https://github.com/thorncp/rails_finder
|
56
|
+
licenses: []
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
requirements: []
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 1.8.25
|
76
|
+
signing_key:
|
77
|
+
specification_version: 3
|
78
|
+
summary: Overly simple utility to recursively find Rails apps and their versions
|
79
|
+
test_files:
|
80
|
+
- spec/rails_finder/app_spec.rb
|
81
|
+
- spec/rails_finder/environment_file_spec.rb
|
82
|
+
- spec/rails_finder/gemfile_spec.rb
|
83
|
+
- spec/rails_finder_spec.rb
|
84
|
+
- spec/spec_helper.rb
|