rails-infrastructure 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.rdoc +80 -0
- data/Rakefile +7 -0
- data/examples/infrastructure/databases.yml +29 -0
- data/examples/infrastructure/environment.yml +2 -0
- data/examples/infrastructure/server.yml +9 -0
- data/examples/infrastructure/servers/unicorn.rb +69 -0
- data/examples/infrastructure/servers/unicorn.yml.erb +13 -0
- data/examples/infrastructure/version.yml +2 -0
- data/examples/infrastructure.yml +11 -0
- data/lib/infrastructure/configurable.rb +51 -0
- data/lib/infrastructure/configuration.rb +93 -0
- data/lib/infrastructure/constants.rb +5 -0
- data/lib/infrastructure/databases.rb +117 -0
- data/lib/infrastructure/environment.rb +16 -0
- data/lib/infrastructure/path.rb +7 -0
- data/lib/infrastructure/railtie.rb +68 -0
- data/lib/infrastructure/server.rb +7 -0
- data/lib/infrastructure/version.rb +23 -0
- data/lib/infrastructure.rb +25 -0
- data/lib/rails-infrastructure.rb +2 -0
- data/lib/tasks/databases.rake +148 -0
- data/lib/tasks/environment.rake +19 -0
- data/lib/tasks/server.rake +73 -0
- data/lib/tasks/version.rake +23 -0
- data/rails-infrastructure.gemspec +28 -0
- data/test/infrastructure/configurable_test.rb +94 -0
- data/test/infrastructure/configuration_test.yml.erb +5 -0
- data/test/infrastructure/database_test.rb +108 -0
- data/test/infrastructure/environment_test.rb +23 -0
- data/test/infrastructure/paths_test.rb +9 -0
- data/test/infrastructure/server_test.rb +9 -0
- data/test/infrastructure/version_test.rb +23 -0
- data/test/infrastructure_test.rb +26 -0
- data/test/test_helper.rb +2 -0
- metadata +163 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
namespace :server do
|
2
|
+
|
3
|
+
def execute(command)
|
4
|
+
puts "Executing: #{command}"
|
5
|
+
`#{command}`
|
6
|
+
end
|
7
|
+
|
8
|
+
Inf.server.servers.each do |server|
|
9
|
+
namespace server do
|
10
|
+
|
11
|
+
desc "Start #{server} server"
|
12
|
+
task :start do
|
13
|
+
puts "Starting: #{server.to_s.green}"
|
14
|
+
start_command = Inf.server.fetch(server).fetch :start
|
15
|
+
if start_command.nil?
|
16
|
+
raise "no start command configured for #{server}"
|
17
|
+
else
|
18
|
+
execute start_command
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "Stop #{server} server"
|
23
|
+
task :stop do
|
24
|
+
puts "Stopping: #{server.to_s.green}"
|
25
|
+
stop_command = Inf.server.fetch(server).fetch :stop
|
26
|
+
if stop_command.nil?
|
27
|
+
raise "no stop command configured for #{server}"
|
28
|
+
elsif stop_command == 'kill'
|
29
|
+
Rake::Task["server:#{server}:kill"].reinvoke
|
30
|
+
else
|
31
|
+
execute stop_command
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Restart #{server} server"
|
36
|
+
task :restart do
|
37
|
+
Rake::Task["server:#{server}:stop"].reinvoke
|
38
|
+
Rake::Task["server:#{server}:start"].reinvoke
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "Kill #{server} server"
|
42
|
+
task :kill do
|
43
|
+
pid_file = Inf.server.fetch(server).pid_file
|
44
|
+
if File.exists? pid_file
|
45
|
+
pid = File.read(pid_file).strip.to_i
|
46
|
+
raise "could not parse #{server} pid from #{pid_file}" if pid == 0
|
47
|
+
signal = Inf.server.fetch(server).fetch(:kill_signal) || 'QUIT'
|
48
|
+
begin
|
49
|
+
puts "Signal: #{signal}, PID: #{pid}"
|
50
|
+
Process.kill signal, pid
|
51
|
+
rescue Errno::ENOENT, Errno::ESRCH
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
desc "Tail #{server} server log file"
|
57
|
+
task :tail do
|
58
|
+
log_file = Inf.server.fetch(server).log_file
|
59
|
+
puts "Watching: #{log_file.green}"
|
60
|
+
begin
|
61
|
+
IO.popen "tail -n 0 -f #{log_file}" do |file|
|
62
|
+
while line = file.gets.to_s.strip do
|
63
|
+
puts line unless line.empty?
|
64
|
+
end
|
65
|
+
end
|
66
|
+
rescue Interrupt
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
namespace :version do
|
2
|
+
|
3
|
+
desc 'display current version'
|
4
|
+
task :current do
|
5
|
+
puts 'Version: ' + Inf.version.to_s.green
|
6
|
+
end
|
7
|
+
|
8
|
+
def save
|
9
|
+
Inf.version.save_config Inf.path.rails.config_infrastructure_dir + '/version.yml'
|
10
|
+
Rake::Task['version:current'].invoke
|
11
|
+
end
|
12
|
+
|
13
|
+
namespace :bump do
|
14
|
+
%w( tiny minor major ).each do |version|
|
15
|
+
desc "Bump #{version} version"
|
16
|
+
task version.to_sym do
|
17
|
+
Inf.version.send "bump_#{version}"
|
18
|
+
save
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'infrastructure/constants'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "rails-infrastructure"
|
8
|
+
spec.version = Infrastructure::VERSION
|
9
|
+
spec.platform = Gem::Platform::RUBY
|
10
|
+
spec.authors = ["Griffith Chaffee"]
|
11
|
+
spec.email = ["griffithchaffee@gmail.com"]
|
12
|
+
spec.summary = %q{Rails infrastructure extensions}
|
13
|
+
spec.description = %q{Rails infrastructure extensions such as multiple databases and server configuration}
|
14
|
+
spec.homepage = "https://github.com/griffithchaffee/rails-infrastructure.git"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($/)
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_runtime_dependency 'colored'
|
23
|
+
spec.add_runtime_dependency 'rails'
|
24
|
+
|
25
|
+
spec.add_development_dependency "minitest", ">= 4.7"
|
26
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
27
|
+
spec.add_development_dependency "rake"
|
28
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Infrastructure::ConfigerableTest < MiniTest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@class = Class.new do
|
7
|
+
include Infrastructure::Configurable
|
8
|
+
attr_reader :before_configure_callback
|
9
|
+
attr_reader :after_configure_callback
|
10
|
+
attr_reader :before_assignment_callback
|
11
|
+
attr_reader :after_assignment_callback
|
12
|
+
def initialize
|
13
|
+
callback :before_configure, -> { @before_configure_callback = true }
|
14
|
+
callback :after_configure, -> { @after_configure_callback = true }
|
15
|
+
callback :before_assignment, -> (key, value) { @before_assignment_callback = true }
|
16
|
+
callback :after_assignment, -> (key, value) { @after_assignment_callback = true }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
@instance = @class.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_configure
|
23
|
+
@instance.configure do
|
24
|
+
config.key1 = 'value1'
|
25
|
+
assign :key2, 'value2'
|
26
|
+
config.key3 = {
|
27
|
+
key4: 'value4',
|
28
|
+
key5: { key6: 'value6' }
|
29
|
+
}
|
30
|
+
end
|
31
|
+
assert_instance_of Infrastructure::Configuration, @instance.configuration
|
32
|
+
assert_equal 'value1', @instance.key1, 'config.key ='
|
33
|
+
assert_equal 'value2', @instance.configuration.key2, 'assign key, value'
|
34
|
+
@instance.configuration.key2 = 'value2.1'
|
35
|
+
assert_equal 'value2.1', @instance.configuration.key2, 'configuration.key ='
|
36
|
+
@instance.configuration.assign :key2, 'value2.2'
|
37
|
+
assert_equal 'value2.2', @instance.configuration.key2, 'configuration.assign key, value'
|
38
|
+
assert_equal 'value6', @instance.key3.key5.key6, 'configuration.assign nested hash'
|
39
|
+
assert_equal @instance.configuration.fetch(:key3), @instance.configuration.key3, 'configuration.assign key, value == configuration.fetch(key)'
|
40
|
+
assert_raises NoMethodError do
|
41
|
+
@instance.blah = 'test'
|
42
|
+
end
|
43
|
+
assert_raises NoMethodError do
|
44
|
+
@instance.blah
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_callbacks
|
49
|
+
refute @instance.before_configure_callback, 'before_configure callback'
|
50
|
+
refute @instance.after_configure_callback, 'after_configure callback'
|
51
|
+
refute @instance.before_assignment_callback, 'before_assignment callback'
|
52
|
+
refute @instance.after_assignment_callback, 'after_assignment callback'
|
53
|
+
@instance.configure {}
|
54
|
+
assert @instance.before_configure_callback, 'before_configure callback'
|
55
|
+
assert @instance.after_configure_callback, 'after_configure callback'
|
56
|
+
refute @instance.before_assignment_callback, 'before_assignment callback'
|
57
|
+
refute @instance.after_assignment_callback, 'after_assignment callback'
|
58
|
+
@instance.configuration.assign :key, :value
|
59
|
+
assert @instance.before_assignment_callback, 'before_assignment callback'
|
60
|
+
assert @instance.after_assignment_callback, 'after_assignment callback'
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_load_config
|
64
|
+
@instance.configuration.load_config File.expand_path('../configuration_test.yml.erb', __FILE__) do
|
65
|
+
@success = true
|
66
|
+
end
|
67
|
+
assert_equal 'value1', @instance.key1, 'config file should ready simple key/value pairs'
|
68
|
+
assert_equal 'value3', @instance.key2.key3, 'hashes should be convered to configuration instances'
|
69
|
+
assert_equal 'value5', @instance.configuration.key2.key4.key5, 'hashes should be convered to configuration instances'
|
70
|
+
assert @success, 'load_config block should be run if file loaded'
|
71
|
+
assert_raises Errno::ENOENT do
|
72
|
+
@instance.configuration.load_config File.expand_path('../DNE', __FILE__) do
|
73
|
+
@failure = true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
@instance.configuration.load_config_if_exists File.expand_path('../DNE', __FILE__) do
|
77
|
+
@failure = true
|
78
|
+
end
|
79
|
+
assert @failure.nil?, 'load_config block should not be run if config not found'
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_save_config
|
83
|
+
@instance.configuration.load_config File.expand_path('../configuration_test.yml.erb', __FILE__)
|
84
|
+
@instance.configuration.save_config File.expand_path('../configuration_save_test.yml.erb', __FILE__)
|
85
|
+
@other = Class.new do
|
86
|
+
include Infrastructure::Configurable
|
87
|
+
end.new
|
88
|
+
@other.configuration.load_config File.expand_path('../configuration_save_test.yml.erb', __FILE__)
|
89
|
+
assert @other.configuration.to_h == @instance.configuration.to_h, 'configuration should save and reload the same'
|
90
|
+
File.delete File.expand_path('../configuration_save_test.yml.erb', __FILE__)
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Infrastructure::DatabasesTest < MiniTest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
|
7
|
+
@orm = Class.new do
|
8
|
+
class << self
|
9
|
+
def establish_connection(config); config end
|
10
|
+
def connection
|
11
|
+
Class.new do
|
12
|
+
def tables; ['test'] end
|
13
|
+
def drop_database(database); database end
|
14
|
+
def create_database(database); database end
|
15
|
+
end.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
@instance = Infrastructure::Databases.new @orm, 'env1'
|
20
|
+
@instance.configure do
|
21
|
+
config.system = { database: 'system_database' }
|
22
|
+
config.defaults = { global_default: 'global_default' }
|
23
|
+
config.env1 = {
|
24
|
+
defaults: { environment_default: 'environment_default', id: 'id1' },
|
25
|
+
id1: {},
|
26
|
+
id2: { database: 'override', environment_default: 'override', global_default: 'override' }
|
27
|
+
}
|
28
|
+
config.env2 = {
|
29
|
+
defaults: { environment_default: 'environment_default', global_default: 'environment_override' },
|
30
|
+
id1: {},
|
31
|
+
id2: { database: 'override', environment_default: 'override', global_default: 'override' }
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_accessors
|
37
|
+
assert_equal :env1, @instance.environment, 'environment accessor'
|
38
|
+
assert @instance.orm == @orm, 'orm accessor'
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_merge_defaults
|
42
|
+
assert_equal 'global_default', @instance.env1.id1.global_default
|
43
|
+
assert_equal 'environment_override', @instance.env2.id1.global_default
|
44
|
+
assert_equal 'override', @instance.env1.id2.global_default
|
45
|
+
assert_equal 'override', @instance.env2.id2.global_default
|
46
|
+
assert_equal 'environment_default', @instance.env1.id1.environment_default
|
47
|
+
assert_equal 'override', @instance.env1.id2.environment_default
|
48
|
+
assert_equal 'environment_default', @instance.env1.id1.environment_default
|
49
|
+
assert_equal 'override', @instance.env1.id2.environment_default
|
50
|
+
assert_equal 'id1', @instance.env1.id1.id
|
51
|
+
assert_equal 'id2', @instance.env1.id2.id
|
52
|
+
assert_equal 'id1', @instance.env2.id1.id
|
53
|
+
assert_equal 'id2', @instance.env2.id2.id
|
54
|
+
assert_equal 'env1_id1', @instance.env1.id1.database
|
55
|
+
assert_equal 'override', @instance.env1.id2.database
|
56
|
+
assert_equal 'env2_id1', @instance.env2.id1.database
|
57
|
+
assert_equal 'override', @instance.env2.id2.database
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_connection
|
61
|
+
refute @instance.connection.is_a?(Class)
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_tables
|
65
|
+
assert ['test'] == @instance.tables
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_environment_configs
|
69
|
+
assert_equal @instance.env1, @instance.environment_configs
|
70
|
+
assert_equal @instance.env2, @instance.environment_configs(:env2)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_environment_config
|
74
|
+
assert_equal @instance.env1.id1.to_h, @instance.environment_config(:id1)
|
75
|
+
assert_equal @instance.env1.id2.to_h, @instance.environment_config(:id2)
|
76
|
+
assert Hash[a: :b] == @instance.environment_config(a: :b)
|
77
|
+
assert_raises ArgumentError do
|
78
|
+
@instance.environment_config(:unknown)
|
79
|
+
end
|
80
|
+
assert_raises ArgumentError do
|
81
|
+
@instance.environment_defaults[:id] = 'id3'
|
82
|
+
@instance.environment_config(:id3)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_drop
|
87
|
+
assert_equal @instance.env1.id1.database, @instance.drop(:id1)
|
88
|
+
assert_equal 'test', @instance.drop(database: 'test')
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_create
|
92
|
+
assert_equal @instance.env1.id1.database, @instance.create(:id1)
|
93
|
+
assert_equal 'test', @instance.create(database: 'test')
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_connect
|
97
|
+
assert_equal @instance.env1.id1.to_h, @instance.connect(:id1)
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_connect!
|
101
|
+
assert_equal @instance.env1.id1.to_h, @instance.connect(:id1)
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_databases
|
105
|
+
assert ['env1_id1', 'override'] == @instance.databases
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Infrastructure::EnvironmentTest < MiniTest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@instance = Infrastructure::Environment.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_environment
|
10
|
+
assert_equal '', @instance.to_s, 'default environment = development'
|
11
|
+
%w( development test production).each do |environment|
|
12
|
+
@instance.assign :environment, environment
|
13
|
+
%w( development test production).each do |environment|
|
14
|
+
if environment == @instance.to_s
|
15
|
+
assert @instance.send("#{environment}?"), "#{environment}? should be true"
|
16
|
+
else
|
17
|
+
refute @instance.send("#{environment}?"), "#{environment}? should be false"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Infrastructure::VersionTest < MiniTest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@instance = Infrastructure::Version.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_version
|
10
|
+
assert @instance.fetch(:version).nil?, 'default version = nil'
|
11
|
+
@instance.assign :version, '0.0.1'
|
12
|
+
assert_equal '0.0.1', @instance.version, 'default version = 0.0.1'
|
13
|
+
@instance.assign :version, '0.0.2'
|
14
|
+
assert_equal '0.0.2', @instance.version, 'version is updated'
|
15
|
+
@instance.bump_tiny
|
16
|
+
assert_equal '0.0.3', @instance.version, 'bump_tiny'
|
17
|
+
@instance.bump_minor
|
18
|
+
assert_equal '0.1.3', @instance.version, 'bump_minor'
|
19
|
+
@instance.bump_major
|
20
|
+
assert_equal '1.1.3', @instance.version, 'bump_major'
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class InfrastructureTest < MiniTest::Test
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@class = Class.new do
|
7
|
+
attr_reader :params
|
8
|
+
def initialize(*params); @params = params end
|
9
|
+
def test; 'test' end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_build
|
14
|
+
i = Infrastructure.new
|
15
|
+
i.build :key1, @class
|
16
|
+
assert_instance_of @class, i.key1
|
17
|
+
assert_equal 'test', i.key1.test, 'instance methods can be called'
|
18
|
+
assert i.key1.params.empty?, 'params are passed'
|
19
|
+
i.build :key2, @class, 'value1', 'value2'
|
20
|
+
assert_instance_of @class, i.key2
|
21
|
+
assert_equal 'test', i.key2.test, 'instance methods can be called'
|
22
|
+
assert_equal 'value1', i.key2.params.first, 'params are passed'
|
23
|
+
assert_equal 'value2', i.key2.params.last, 'params are passed'
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails-infrastructure
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Griffith Chaffee
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colored
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Rails infrastructure extensions such as multiple databases and server
|
84
|
+
configuration
|
85
|
+
email:
|
86
|
+
- griffithchaffee@gmail.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- .gitignore
|
92
|
+
- .ruby-gemset
|
93
|
+
- .ruby-version
|
94
|
+
- Gemfile
|
95
|
+
- LICENSE.txt
|
96
|
+
- README.rdoc
|
97
|
+
- Rakefile
|
98
|
+
- examples/infrastructure.yml
|
99
|
+
- examples/infrastructure/databases.yml
|
100
|
+
- examples/infrastructure/environment.yml
|
101
|
+
- examples/infrastructure/server.yml
|
102
|
+
- examples/infrastructure/servers/unicorn.rb
|
103
|
+
- examples/infrastructure/servers/unicorn.yml.erb
|
104
|
+
- examples/infrastructure/version.yml
|
105
|
+
- lib/infrastructure.rb
|
106
|
+
- lib/infrastructure/configurable.rb
|
107
|
+
- lib/infrastructure/configuration.rb
|
108
|
+
- lib/infrastructure/constants.rb
|
109
|
+
- lib/infrastructure/databases.rb
|
110
|
+
- lib/infrastructure/environment.rb
|
111
|
+
- lib/infrastructure/path.rb
|
112
|
+
- lib/infrastructure/railtie.rb
|
113
|
+
- lib/infrastructure/server.rb
|
114
|
+
- lib/infrastructure/version.rb
|
115
|
+
- lib/rails-infrastructure.rb
|
116
|
+
- lib/tasks/databases.rake
|
117
|
+
- lib/tasks/environment.rake
|
118
|
+
- lib/tasks/server.rake
|
119
|
+
- lib/tasks/version.rake
|
120
|
+
- rails-infrastructure.gemspec
|
121
|
+
- test/infrastructure/configurable_test.rb
|
122
|
+
- test/infrastructure/configuration_test.yml.erb
|
123
|
+
- test/infrastructure/database_test.rb
|
124
|
+
- test/infrastructure/environment_test.rb
|
125
|
+
- test/infrastructure/paths_test.rb
|
126
|
+
- test/infrastructure/server_test.rb
|
127
|
+
- test/infrastructure/version_test.rb
|
128
|
+
- test/infrastructure_test.rb
|
129
|
+
- test/test_helper.rb
|
130
|
+
homepage: https://github.com/griffithchaffee/rails-infrastructure.git
|
131
|
+
licenses:
|
132
|
+
- MIT
|
133
|
+
metadata: {}
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.0.4
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: Rails infrastructure extensions
|
154
|
+
test_files:
|
155
|
+
- test/infrastructure/configurable_test.rb
|
156
|
+
- test/infrastructure/configuration_test.yml.erb
|
157
|
+
- test/infrastructure/database_test.rb
|
158
|
+
- test/infrastructure/environment_test.rb
|
159
|
+
- test/infrastructure/paths_test.rb
|
160
|
+
- test/infrastructure/server_test.rb
|
161
|
+
- test/infrastructure/version_test.rb
|
162
|
+
- test/infrastructure_test.rb
|
163
|
+
- test/test_helper.rb
|