rails-infrastructure 0.1.0
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.
- 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
|