machines 0.5.4 → 0.5.6
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/.yardopts +7 -1
- data/CHANGELOG.md +16 -4
- data/INSTALL.md +3 -0
- data/LICENSE +1 -2
- data/README.md +47 -28
- data/Rakefile +0 -8
- data/TODO.md +66 -59
- data/bin/machines +1 -2
- data/lib/machines.rb +16 -1
- data/lib/machines/app_settings.rb +1 -1
- data/lib/machines/cloud_machine.rb +1 -1
- data/lib/machines/command.rb +0 -2
- data/lib/machines/commandline.rb +23 -29
- data/lib/machines/commands/checks.rb +67 -0
- data/lib/machines/commands/configuration.rb +50 -0
- data/lib/machines/commands/database.rb +18 -0
- data/lib/machines/commands/file_operations.rb +105 -0
- data/lib/machines/commands/installation.rb +184 -0
- data/lib/machines/commands/questions.rb +16 -0
- data/lib/machines/commands/services.rb +26 -0
- data/lib/machines/core.rb +55 -25
- data/lib/machines/logger.rb +0 -2
- data/lib/machines/named_buffer.rb +7 -6
- data/lib/machines/version.rb +1 -1
- data/lib/packages/awstats.rb +2 -2
- data/lib/packages/docky.rb +0 -1
- data/lib/packages/dwm.rb +5 -0
- data/lib/packages/nginx_logrotate.rb +2 -2
- data/lib/packages/timezone.rb +2 -4
- data/lib/template/Machinesfile +2 -1
- data/lib/template/config.yml +3 -0
- data/spec/lib/machines/app_settings_spec.rb +13 -12
- data/spec/lib/machines/cloud_machine_spec.rb +9 -8
- data/spec/lib/machines/commandline_spec.rb +69 -90
- data/spec/lib/machines/{checks_spec.rb → commands/checks_spec.rb} +1 -1
- data/spec/lib/machines/{configuration_spec.rb → commands/configuration_spec.rb} +2 -3
- data/spec/lib/machines/{database_spec.rb → commands/database_spec.rb} +4 -10
- data/spec/lib/machines/{file_operations_spec.rb → commands/file_operations_spec.rb} +3 -7
- data/spec/lib/machines/{installation_spec.rb → commands/installation_spec.rb} +10 -4
- data/spec/lib/machines/{questions_spec.rb → commands/questions_spec.rb} +1 -3
- data/spec/lib/machines/{services_spec.rb → commands/services_spec.rb} +1 -4
- data/spec/lib/machines/core_spec.rb +81 -65
- data/spec/lib/packages/abiword_spec.rb +1 -5
- data/spec/lib/packages/amazon_mp3_spec.rb +0 -4
- data/spec/lib/packages/awstats_spec.rb +3 -4
- data/spec/lib/packages/base_spec.rb +0 -1
- data/spec/lib/packages/chrome_spec.rb +0 -4
- data/spec/lib/packages/cruisecontrol_spec.rb +1 -2
- data/spec/lib/packages/dependencies_spec.rb +1 -2
- data/spec/lib/packages/docky_spec.rb +0 -4
- data/spec/lib/packages/dotfiles_spec.rb +5 -4
- data/spec/lib/packages/dwm_spec.rb +23 -0
- data/spec/lib/packages/file_roller_spec.rb +1 -5
- data/spec/lib/packages/firefox_spec.rb +0 -4
- data/spec/lib/packages/gedit_spec.rb +1 -5
- data/spec/lib/packages/git_spec.rb +0 -4
- data/spec/lib/packages/gmate_spec.rb +1 -5
- data/spec/lib/packages/gnome_spec.rb +0 -4
- data/spec/lib/packages/gnumeric_spec.rb +1 -5
- data/spec/lib/packages/hosts_spec.rb +0 -1
- data/spec/lib/packages/load_machines_spec.rb +16 -15
- data/spec/lib/packages/monit_spec.rb +0 -1
- data/spec/lib/packages/mysql_spec.rb +1 -3
- data/spec/lib/packages/nginx_logrotate_spec.rb +17 -18
- data/spec/lib/packages/nginx_spec.rb +0 -1
- data/spec/lib/packages/openbox_spec.rb +0 -4
- data/spec/lib/packages/passenger_nginx_spec.rb +0 -1
- data/spec/lib/packages/passenger_spec.rb +0 -1
- data/spec/lib/packages/postfix_spec.rb +1 -5
- data/spec/lib/packages/questions_spec.rb +3 -4
- data/spec/lib/packages/rbenv_spec.rb +1 -4
- data/spec/lib/packages/rvm_spec.rb +1 -4
- data/spec/lib/packages/save_machines_spec.rb +0 -1
- data/spec/lib/packages/slim_spec.rb +1 -2
- data/spec/lib/packages/sqlserver_spec.rb +0 -4
- data/spec/lib/packages/timezone_spec.rb +2 -3
- data/spec/lib/packages/unison_spec.rb +1 -2
- data/spec/lib/packages/virtualbox_guest_spec.rb +0 -4
- data/spec/lib/packages/virtualbox_spec.rb +1 -2
- data/spec/lib/packages/webapps_spec.rb +1 -3
- data/spec/spec_helper.rb +59 -61
- data/spec/support/minitest.rb +4 -62
- metadata +27 -28
- data/lib/machines/base.rb +0 -13
- data/lib/machines/checks.rb +0 -63
- data/lib/machines/configuration.rb +0 -49
- data/lib/machines/database.rb +0 -17
- data/lib/machines/file_operations.rb +0 -104
- data/lib/machines/installation.rb +0 -171
- data/lib/machines/machinesfile.rb +0 -25
- data/lib/machines/questions.rb +0 -15
- data/lib/machines/services.rb +0 -24
- data/spec/lib/machines/machinesfile_spec.rb +0 -34
@@ -2,7 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/nginx' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('nginx')
|
6
5
|
$conf.from_hash(webserver: {name: 'nginx', version: '1.2.3',
|
7
6
|
path: 'nginx_path', conf_path: 'conf', modules: '--with-http_ssl_module'})
|
8
7
|
$conf.from_hash(:passenger => {:nginx => '/passenger/path/ext/nginx'})
|
@@ -2,7 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/passenger_nginx' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('passenger_nginx')
|
6
5
|
$conf.from_hash(:webserver => {:path => 'nginx_dest', :version => '1.0.2'})
|
7
6
|
$conf.password = 'pass'
|
8
7
|
$conf.from_hash(:passenger => {:root => '/home/user/gems/passenger-1.2.3'})
|
@@ -2,7 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/passenger' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('passenger')
|
6
5
|
$conf.user_home = '/home/user'
|
7
6
|
$conf.from_hash(:passenger => {:version => '3.0.7'})
|
8
7
|
$conf.from_hash(:ruby => {:gems_path => 'ruby/gems', :executable => 'bin/ruby'})
|
@@ -1,12 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'packages/postfix' do
|
4
|
-
before(:each) do
|
5
|
-
load_package('postfix')
|
6
|
-
$conf.from_hash(:mail => {:domain => 'domain'})
|
7
|
-
end
|
8
|
-
|
9
4
|
it 'adds the following commands' do
|
5
|
+
$conf.from_hash(:mail => {:domain => 'domain'})
|
10
6
|
eval_package
|
11
7
|
$conf.commands.map(&:info).must_equal [
|
12
8
|
"TASK postfix - Install postfix mail",
|
@@ -2,24 +2,23 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/questions' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('questions')
|
6
5
|
$conf.machine = AppConf.new
|
7
6
|
end
|
8
7
|
|
9
8
|
it 'asks for a password' do
|
10
|
-
expects(:enter_password).with('users', false)
|
9
|
+
Core.any_instance.expects(:enter_password).with('users', false)
|
11
10
|
eval_package
|
12
11
|
end
|
13
12
|
|
14
13
|
it 'does not ask for a password when machine is EC2' do
|
15
14
|
$conf.machine.ec2 = {}
|
16
|
-
expects(:enter_password).never
|
15
|
+
Core.any_instance.expects(:enter_password).never
|
17
16
|
eval_package
|
18
17
|
end
|
19
18
|
|
20
19
|
it 'sets password when logging' do
|
21
20
|
$conf.log_only = true
|
22
|
-
expects(:enter_password).never
|
21
|
+
Core.any_instance.expects(:enter_password).never
|
23
22
|
eval_package
|
24
23
|
$conf.passwords.must_equal ['pa55word']
|
25
24
|
$conf.password.must_equal 'pa55word'
|
@@ -2,24 +2,21 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/rbenv' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('rbenv')
|
6
5
|
$conf.ruby = AppConf.new
|
7
6
|
$conf.ruby.version = '1.9.2'
|
8
7
|
$conf.ruby.build = 'p290'
|
8
|
+
eval_package
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'sets gems_path' do
|
12
|
-
eval_package
|
13
12
|
$conf.ruby.gems_path.must_equal '.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems'
|
14
13
|
end
|
15
14
|
|
16
15
|
it 'sets executable' do
|
17
|
-
eval_package
|
18
16
|
$conf.ruby.executable.must_equal '.rbenv/versions/1.9.2-p290/bin/ruby'
|
19
17
|
end
|
20
18
|
|
21
19
|
it 'adds the following commands' do
|
22
|
-
eval_package
|
23
20
|
$conf.commands.map(&:info).join("\n").must_equal [
|
24
21
|
'TASK rbenv - Install ruby-build, rbenv, ruby 1.9.2-p290 and Bundler',
|
25
22
|
"SUDO apt-get -q -y install git-core",
|
@@ -2,23 +2,20 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/rvm' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('rvm')
|
6
5
|
$conf.from_hash(ruby: {version: '1.9.2', build: 'p290'})
|
7
6
|
$conf.from_hash(rvm: {version: '1.0'})
|
7
|
+
eval_package
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'sets gems_path' do
|
11
|
-
eval_package
|
12
11
|
$conf.ruby.gems_path.must_equal '.rvm/gems/1.9.2-p290/@global/gems'
|
13
12
|
end
|
14
13
|
|
15
14
|
it 'sets executable' do
|
16
|
-
eval_package
|
17
15
|
$conf.ruby.executable.must_equal '.rvm/wrappers/1.9.2-p290@global/ruby'
|
18
16
|
end
|
19
17
|
|
20
18
|
it 'adds the following commands' do
|
21
|
-
eval_package
|
22
19
|
$conf.commands.map(&:info).join("\n").must_equal [
|
23
20
|
"TASK rvm - Install RVM",
|
24
21
|
"SUDO apt-get -q -y install git-core",
|
@@ -3,12 +3,11 @@ require 'spec_helper'
|
|
3
3
|
describe 'packages/slim' do
|
4
4
|
before(:each) do
|
5
5
|
$conf.login_theme = 'custom'
|
6
|
-
load_package('slim')
|
7
6
|
FileUtils.mkdir_p 'slim/themes'
|
7
|
+
eval_package
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'adds the following commands' do
|
11
|
-
eval_package
|
12
11
|
$conf.commands.map(&:info).must_equal [
|
13
12
|
"TASK slim - Install SLiM desktop manager",
|
14
13
|
"SUDO apt-get -q -y install slim",
|
@@ -2,7 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/timezone' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('timezone')
|
6
5
|
$conf.timezone = 'GB'
|
7
6
|
end
|
8
7
|
|
@@ -10,7 +9,7 @@ describe 'packages/timezone' do
|
|
10
9
|
eval_package
|
11
10
|
$conf.commands.map(&:info).must_equal [
|
12
11
|
"TASK timezone - Set timezone from config.yml",
|
13
|
-
"SUDO ln -sf /
|
12
|
+
"SUDO ln -sf /usr/share/zoneinfo/GB /etc/localtime"
|
14
13
|
]
|
15
14
|
end
|
16
15
|
|
@@ -19,7 +18,7 @@ describe 'packages/timezone' do
|
|
19
18
|
eval_package
|
20
19
|
$conf.commands.map(&:info).must_equal [
|
21
20
|
"TASK timezone - Set timezone from config.yml",
|
22
|
-
"SUDO ln -sf /
|
21
|
+
"SUDO ln -sf /usr/share/zoneinfo/GB /etc/localtime",
|
23
22
|
"SUDO sed -i \"s/UTC=no/UTC=yes/\" /etc/default/rcS"
|
24
23
|
]
|
25
24
|
end
|
@@ -2,13 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/unison' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('unison')
|
6
5
|
$conf.machine = AppConf.new
|
7
6
|
$conf.machine.user = 'username'
|
7
|
+
eval_package
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'adds the following commands' do
|
11
|
-
eval_package
|
12
11
|
$conf.commands.map(&:info).must_equal [
|
13
12
|
"TASK unison - Install and configure Unison (users/username/.unison/default.prf)",
|
14
13
|
"SUDO apt-get -q -y install unison",
|
@@ -2,12 +2,11 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/virtualbox' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('virtualbox')
|
6
5
|
$conf.user = 'phil'
|
6
|
+
eval_package
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'adds the following commands' do
|
10
|
-
eval_package
|
11
10
|
$conf.commands.map(&:info).join("\n").must_equal [
|
12
11
|
"TASK virtualbox - Install VirtualBox",
|
13
12
|
"SUDO apt-get -q -y install dkms",
|
@@ -2,11 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'packages/webapps' do
|
4
4
|
before(:each) do
|
5
|
-
load_package('webapps')
|
6
|
-
|
7
5
|
$conf.from_hash(:user => {:name => 'username', :home => 'home_dir'}, :ruby => {:version => 'ruby_version'})
|
8
6
|
$conf.webapps = {'application' =>
|
9
|
-
AppBuilder.new(
|
7
|
+
AppSettings::AppBuilder.new(
|
10
8
|
'scm' => 'github.com/project',
|
11
9
|
'branch' => 'master',
|
12
10
|
'name' => 'application',
|
data/spec/spec_helper.rb
CHANGED
@@ -1,55 +1,52 @@
|
|
1
1
|
$LOAD_PATH << 'lib'
|
2
2
|
|
3
3
|
require 'bundler/setup'
|
4
|
-
require 'minitest/
|
5
|
-
require 'mocha'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'mocha/setup'
|
6
6
|
require 'stringio'
|
7
7
|
require 'fakefs/safe'
|
8
8
|
|
9
9
|
Dir['spec/support/*.rb'].each {|file| require File.join('./spec', 'support', File.basename(file)) }
|
10
10
|
require 'machines'
|
11
|
-
application_dir = $conf.application_dir
|
12
|
-
|
13
|
-
include Machines
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
$application_dir = $conf.application_dir
|
12
|
+
|
13
|
+
include Machines
|
14
|
+
modules = %w(Checks Configuration Database FileOperations Installation Questions Services)
|
15
|
+
modules.each { |m| include eval("Machines::Commands::#{m}") }
|
16
|
+
|
17
|
+
module MiniTestSetup
|
18
|
+
def before_setup
|
19
|
+
super
|
20
|
+
$conf.clear
|
21
|
+
$conf.passwords = []
|
22
|
+
$conf.commands = []
|
23
|
+
$conf.tasks = {}
|
24
|
+
$conf.application_dir = $application_dir
|
25
|
+
|
26
|
+
$input = StringIO.new
|
27
|
+
$output = StringIO.new
|
28
|
+
$terminal = HighLine.new($input, $output)
|
29
|
+
|
30
|
+
$debug = FakeOut.new
|
31
|
+
$file = FakeOut.new
|
32
|
+
$console = FakeOut.new
|
33
|
+
Machines::Command.debug = Machines::Logger.new $debug
|
34
|
+
Machines::Command.file = Machines::Logger.new $file
|
35
|
+
Machines::Command.console = Machines::Logger.new $console, :truncate => true
|
36
|
+
|
37
|
+
FakeFS.activate!
|
38
|
+
FileUtils.mkdir_p 'tmp'
|
23
39
|
end
|
24
|
-
end
|
25
|
-
|
26
|
-
MiniTest::Spec.add_setup_hook do
|
27
|
-
include Machines::Checks
|
28
40
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
$input = StringIO.new
|
36
|
-
$output = StringIO.new
|
37
|
-
$terminal = HighLine.new($input, $output)
|
38
|
-
|
39
|
-
$debug = FakeOut.new
|
40
|
-
$file = FakeOut.new
|
41
|
-
$console = FakeOut.new
|
42
|
-
Machines::Command.debug = Machines::Logger.new $debug
|
43
|
-
Machines::Command.file = Machines::Logger.new $file
|
44
|
-
Machines::Command.console = Machines::Logger.new $console, :truncate => true
|
45
|
-
|
46
|
-
FakeFS.activate!
|
47
|
-
FileUtils.mkdir_p 'tmp'
|
41
|
+
def after_teardown
|
42
|
+
FakeFS.deactivate!
|
43
|
+
FakeFS::FileSystem.clear
|
44
|
+
super
|
45
|
+
end
|
48
46
|
end
|
49
47
|
|
50
|
-
MiniTest::
|
51
|
-
|
52
|
-
FakeFS::FileSystem.clear
|
48
|
+
class MiniTest::Test
|
49
|
+
include MiniTestSetup
|
53
50
|
end
|
54
51
|
|
55
52
|
module MiniTest
|
@@ -61,32 +58,36 @@ module MiniTest
|
|
61
58
|
end
|
62
59
|
end
|
63
60
|
|
64
|
-
class
|
65
|
-
|
66
|
-
|
67
|
-
|
61
|
+
class Machines::Core
|
62
|
+
def eval_package content, name
|
63
|
+
eval content, nil, "eval: #{name}"
|
64
|
+
end
|
68
65
|
end
|
69
66
|
|
70
|
-
MiniTest::Spec
|
67
|
+
class MiniTest::Spec::Package < MiniTest::Spec
|
68
|
+
def core
|
69
|
+
@core ||= Core.new
|
70
|
+
end
|
71
71
|
|
72
|
-
def
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
end
|
72
|
+
def load_package
|
73
|
+
FakeFS.deactivate!
|
74
|
+
@package_name = File.basename(self.class.name).split('::').first
|
75
|
+
@package = File.read File.join($conf.application_dir, 'packages', "#{@package_name}.rb")
|
76
|
+
FakeFS.activate!
|
77
|
+
end
|
78
78
|
|
79
|
-
def
|
80
|
-
|
81
|
-
@package_path = File.join($conf.application_dir, File.join('packages', "#{name}.rb"))
|
82
|
-
@package = File.read(@package_path)
|
79
|
+
def eval_package
|
80
|
+
core.eval_package(@package, @package_name)
|
83
81
|
end
|
84
|
-
end
|
85
82
|
|
86
|
-
def
|
87
|
-
|
83
|
+
def before_setup
|
84
|
+
super
|
85
|
+
load_package
|
86
|
+
end
|
88
87
|
end
|
89
88
|
|
89
|
+
MiniTest::Spec.register_spec_type(/packages\//, MiniTest::Spec::Package)
|
90
|
+
|
90
91
|
def save_yaml contents, path
|
91
92
|
File.open(path, 'w') do |f|
|
92
93
|
YAML.dump(contents, f)
|
@@ -98,6 +99,3 @@ def colored string, color
|
|
98
99
|
string.sub!(/(\n|\r)$/, '')
|
99
100
|
$terminal.color(string, color.to_sym) + ending.to_s
|
100
101
|
end
|
101
|
-
|
102
|
-
require 'minitest/autorun'
|
103
|
-
|
data/spec/support/minitest.rb
CHANGED
@@ -1,69 +1,11 @@
|
|
1
|
-
# Standard minitest diff calls the OS's diff command. FakeFS breaks diff because
|
2
|
-
# diff is looking for the files on disk but the files are written by Tempfile
|
3
|
-
# while FakeFS is still active. The following modules provide a pure ruby diff
|
4
|
-
# and override MiniTest::Assertions::diff to utilitize it.
|
5
|
-
|
6
|
-
module Diff
|
7
|
-
attr_accessor :diffs, :sequences
|
8
|
-
|
9
|
-
def self.diffs(old, new)
|
10
|
-
new, old, @diffs = new.lines.to_a, old.lines.to_a, []
|
11
|
-
build_sequences(old, new)
|
12
|
-
find_diffs(old, new, old.size, new.size)
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def self.find_diffs(old, new, row, col)
|
18
|
-
if row > 0 && col > 0 && old[row-1] == new[col-1]
|
19
|
-
find_diffs(old, new, row-1, col-1)
|
20
|
-
@diffs << { :line => row, :change => :same, :string => old[row-1].strip }
|
21
|
-
elsif col > 0 && (row == 0 || @sequences[row][col-1] >= @sequences[row-1][col])
|
22
|
-
find_diffs(old, new, row, col-1)
|
23
|
-
@diffs << { :line => col, :change => :add, :string => new[col-1].strip }
|
24
|
-
elsif row > 0 && (col == 0 || @sequences[row][col-1] < @sequences[row-1][col])
|
25
|
-
find_diffs(old, new, row-1, col)
|
26
|
-
@diffs << { :line => row, :change => :delete, :string => old[row-1].strip }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.build_sequences(old, new)
|
31
|
-
rows, cols = old.size+1, new.size+1
|
32
|
-
@sequences = rows.times.map{|x|[0]*(x+1)}
|
33
|
-
rows.times.each do |row|
|
34
|
-
cols.times.each do |col|
|
35
|
-
@sequences[row][col] = if old[row-1] == new[col-1]
|
36
|
-
@sequences[row-1][col-1] + 1
|
37
|
-
else
|
38
|
-
[@sequences[row][col-1].to_i, @sequences[row-1][col].to_i].max
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
1
|
module MiniTest
|
46
2
|
module Assertions
|
47
|
-
|
3
|
+
alias :actual_diff :diff
|
48
4
|
|
49
5
|
def diff exp, act
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
need_to_diff =
|
55
|
-
(expect.include?("\n") ||
|
56
|
-
butwas.include?("\n") ||
|
57
|
-
expect.size > 30 ||
|
58
|
-
butwas.size > 30 ||
|
59
|
-
expect == butwas)
|
60
|
-
|
61
|
-
return "Expected: #{mu_pp exp}\n Actual: #{mu_pp act}" unless need_to_diff
|
62
|
-
|
63
|
-
Diff.diffs(expect, butwas).map do |diff|
|
64
|
-
SYMBOLS[diff[:change]] + diff[:string]
|
65
|
-
end.join("\n")
|
6
|
+
FakeFS.without do
|
7
|
+
actual_diff exp, act
|
8
|
+
end
|
66
9
|
end
|
67
10
|
end
|
68
11
|
end
|
69
|
-
|