aruba 1.0.4 → 1.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.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -1
  3. data/CONTRIBUTING.md +11 -23
  4. data/README.md +1 -2
  5. data/exe/aruba +2 -2
  6. data/lib/aruba.rb +1 -1
  7. data/lib/aruba/api.rb +11 -11
  8. data/lib/aruba/api/bundler.rb +1 -1
  9. data/lib/aruba/api/commands.rb +7 -7
  10. data/lib/aruba/api/core.rb +20 -20
  11. data/lib/aruba/api/environment.rb +2 -2
  12. data/lib/aruba/api/filesystem.rb +41 -14
  13. data/lib/aruba/api/text.rb +4 -4
  14. data/lib/aruba/aruba_path.rb +2 -2
  15. data/lib/aruba/basic_configuration.rb +11 -11
  16. data/lib/aruba/cli.rb +7 -7
  17. data/lib/aruba/command.rb +4 -4
  18. data/lib/aruba/config/jruby.rb +9 -9
  19. data/lib/aruba/config_wrapper.rb +2 -2
  20. data/lib/aruba/configuration.rb +14 -14
  21. data/lib/aruba/console.rb +11 -11
  22. data/lib/aruba/console/help.rb +5 -5
  23. data/lib/aruba/contracts/absolute_path.rb +1 -1
  24. data/lib/aruba/contracts/enum.rb +1 -1
  25. data/lib/aruba/contracts/is_power_of_two.rb +1 -1
  26. data/lib/aruba/contracts/relative_path.rb +1 -1
  27. data/lib/aruba/cucumber.rb +7 -7
  28. data/lib/aruba/cucumber/command.rb +31 -31
  29. data/lib/aruba/cucumber/environment.rb +7 -7
  30. data/lib/aruba/cucumber/file.rb +7 -3
  31. data/lib/aruba/cucumber/hooks.rb +29 -29
  32. data/lib/aruba/cucumber/testing_frameworks.rb +18 -18
  33. data/lib/aruba/event_bus.rb +4 -4
  34. data/lib/aruba/event_bus/name_resolver.rb +4 -4
  35. data/lib/aruba/file_size.rb +1 -1
  36. data/lib/aruba/generators/script_file.rb +2 -2
  37. data/lib/aruba/in_config_wrapper.rb +1 -1
  38. data/lib/aruba/initializer.rb +10 -10
  39. data/lib/aruba/matchers/base/base_matcher.rb +1 -1
  40. data/lib/aruba/matchers/base/message_indenter.rb +1 -1
  41. data/lib/aruba/matchers/base/object_formatter.rb +2 -2
  42. data/lib/aruba/matchers/collection.rb +1 -1
  43. data/lib/aruba/matchers/collection/all.rb +1 -1
  44. data/lib/aruba/matchers/collection/include_an_object.rb +2 -2
  45. data/lib/aruba/matchers/command.rb +1 -1
  46. data/lib/aruba/matchers/command/be_successfully_executed.rb +4 -4
  47. data/lib/aruba/matchers/command/have_finished_in_time.rb +1 -1
  48. data/lib/aruba/matchers/command/have_output.rb +1 -1
  49. data/lib/aruba/matchers/directory.rb +1 -1
  50. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +2 -2
  51. data/lib/aruba/matchers/directory/have_sub_directory.rb +3 -3
  52. data/lib/aruba/matchers/environment.rb +1 -1
  53. data/lib/aruba/matchers/file.rb +1 -1
  54. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +1 -1
  55. data/lib/aruba/matchers/file/be_an_existing_executable.rb +2 -2
  56. data/lib/aruba/matchers/file/be_an_existing_file.rb +2 -2
  57. data/lib/aruba/matchers/file/have_file_content.rb +1 -1
  58. data/lib/aruba/matchers/file/have_file_size.rb +1 -1
  59. data/lib/aruba/matchers/file/have_same_file_content.rb +2 -2
  60. data/lib/aruba/matchers/path.rb +1 -1
  61. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +1 -1
  62. data/lib/aruba/matchers/path/be_an_absolute_path.rb +1 -1
  63. data/lib/aruba/matchers/path/be_an_existing_path.rb +1 -1
  64. data/lib/aruba/matchers/path/have_permissions.rb +2 -2
  65. data/lib/aruba/matchers/string.rb +1 -1
  66. data/lib/aruba/matchers/string/include_output_string.rb +1 -1
  67. data/lib/aruba/matchers/string/match_output_string.rb +1 -1
  68. data/lib/aruba/matchers/string/output_string_eq.rb +1 -1
  69. data/lib/aruba/platform.rb +2 -2
  70. data/lib/aruba/platforms/announcer.rb +14 -14
  71. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +1 -1
  72. data/lib/aruba/platforms/aruba_logger.rb +1 -1
  73. data/lib/aruba/platforms/command_monitor.rb +5 -5
  74. data/lib/aruba/platforms/determine_disk_usage.rb +1 -1
  75. data/lib/aruba/platforms/filesystem_status.rb +1 -1
  76. data/lib/aruba/platforms/simple_table.rb +1 -1
  77. data/lib/aruba/platforms/unix_command_string.rb +2 -2
  78. data/lib/aruba/platforms/unix_platform.rb +22 -22
  79. data/lib/aruba/platforms/unix_which.rb +1 -1
  80. data/lib/aruba/platforms/windows_command_string.rb +2 -2
  81. data/lib/aruba/platforms/windows_environment_variables.rb +1 -1
  82. data/lib/aruba/platforms/windows_platform.rb +6 -6
  83. data/lib/aruba/platforms/windows_which.rb +5 -5
  84. data/lib/aruba/processes/basic_process.rb +2 -2
  85. data/lib/aruba/processes/debug_process.rb +5 -5
  86. data/lib/aruba/processes/in_process.rb +7 -7
  87. data/lib/aruba/processes/spawn_process.rb +17 -22
  88. data/lib/aruba/rspec.rb +6 -6
  89. data/lib/aruba/runtime.rb +6 -6
  90. data/lib/aruba/setup.rb +3 -3
  91. data/lib/aruba/version.rb +1 -1
  92. metadata +21 -22
  93. data/lib/aruba/tasks/docker_helpers.rb +0 -156
@@ -1,156 +0,0 @@
1
- require 'psych'
2
-
3
- module Aruba
4
- class DockerRunInstance
5
- protected
6
-
7
- attr_reader :file, :instance
8
-
9
- public
10
-
11
- def initialize(file, instance)
12
- @file = file
13
- @instance = instance
14
- end
15
-
16
- def method_missing(m, *_args)
17
- return @file.public_send m, instance if @file.respond_to?(m)
18
-
19
- super
20
- end
21
-
22
- def respond_to_missing?(m)
23
- @file.respond_to? m
24
- end
25
- end
26
-
27
- class DockerBuildCommandLineBuilder
28
- protected
29
-
30
- attr_reader :run_instance, :opts
31
-
32
- public
33
-
34
- def initialize(run_instance, opts = {})
35
- @run_instance = run_instance
36
- @opts = opts
37
- end
38
-
39
- def to_cli
40
- cache = opts[:cache]
41
- application_version = opts[:version]
42
- docker_file = run_instance.docker_file
43
- docker_image = run_instance.image
44
-
45
- cmdline = []
46
- cmdline << 'docker'
47
- cmdline << 'build'
48
- cmdline << '--no-cache=true' if cache == 'false'
49
-
50
- %w(http_proxy https_proxy HTTP_PROXY HTTPS_PROXY).each do |var|
51
- next unless ENV.key? var
52
-
53
- proxy_uri = URI(ENV[var])
54
- proxy_uri.host = '172.17.0.1'
55
- cmdline << "--build-arg #{var}=#{proxy_uri}"
56
- end
57
-
58
- cmdline << "-t #{docker_image}:#{application_version}"
59
- cmdline << "-f #{docker_file}"
60
- cmdline << File.dirname(docker_file)
61
-
62
- cmdline.join(' ')
63
- end
64
- end
65
-
66
- class DockerRunCommandLineBuilder
67
- protected
68
-
69
- attr_reader :run_instance, :opts
70
-
71
- public
72
-
73
- def initialize(run_instance, opts = {})
74
- @run_instance = run_instance
75
- @opts = opts
76
- end
77
-
78
- def to_cli
79
- volumes = run_instance.volumes
80
- image = run_instance.image
81
- command = opts[:command]
82
-
83
- cmdline = []
84
- cmdline << 'docker'
85
- cmdline << 'run'
86
- cmdline << '-it'
87
- cmdline << '--rm'
88
- cmdline << "--name #{run_instance.container_name}"
89
-
90
- volumes.each do |v|
91
- cmdline << "-v #{expand_volume_paths(v)}"
92
- end
93
-
94
- cmdline << image
95
- cmdline << command if command
96
-
97
- cmdline.join(' ')
98
- end
99
-
100
- private
101
-
102
- def expand_volume_paths(volume_paths)
103
- volume_paths.split(':').map { |path| File.expand_path(path) }.join(':')
104
- end
105
- end
106
-
107
- class DockerComposeFile
108
- protected
109
-
110
- attr_reader :data
111
-
112
- public
113
-
114
- def initialize(path)
115
- @data = Psych.load_file(path)['services']
116
- end
117
-
118
- def volumes(instance)
119
- fetch(instance)['volumes']
120
- end
121
-
122
- def build_context(instance)
123
- fetch(instance).fetch('build', {})['context']
124
- end
125
-
126
- def build_arguments(instance)
127
- fetch(instance).fetch('build', {})['args']
128
- end
129
-
130
- def docker_file(instance)
131
- fetch(instance).fetch('build', {})['dockerfile']
132
- end
133
-
134
- def image(instance)
135
- fetch(instance)['image']
136
- end
137
-
138
- def container_name(instance)
139
- fetch(instance)['container_name']
140
- end
141
-
142
- def command(instance)
143
- fetch(instance)['command']
144
- end
145
-
146
- def working_directory(instance)
147
- fetch(instance)['working_dir']
148
- end
149
-
150
- private
151
-
152
- def fetch(instance)
153
- Hash(data).fetch(instance.to_s)
154
- end
155
- end
156
- end