terrapin 0.6.0.alpha

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 (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +6 -0
  4. data/GOALS +8 -0
  5. data/Gemfile +7 -0
  6. data/LICENSE +26 -0
  7. data/NEWS.md +85 -0
  8. data/README.md +215 -0
  9. data/Rakefile +13 -0
  10. data/lib/terrapin.rb +12 -0
  11. data/lib/terrapin/command_line.rb +197 -0
  12. data/lib/terrapin/command_line/multi_pipe.rb +50 -0
  13. data/lib/terrapin/command_line/output.rb +12 -0
  14. data/lib/terrapin/command_line/runners.rb +7 -0
  15. data/lib/terrapin/command_line/runners/backticks_runner.rb +30 -0
  16. data/lib/terrapin/command_line/runners/fake_runner.rb +30 -0
  17. data/lib/terrapin/command_line/runners/popen_runner.rb +29 -0
  18. data/lib/terrapin/command_line/runners/posix_runner.rb +49 -0
  19. data/lib/terrapin/command_line/runners/process_runner.rb +41 -0
  20. data/lib/terrapin/exceptions.rb +8 -0
  21. data/lib/terrapin/os_detector.rb +27 -0
  22. data/lib/terrapin/version.rb +4 -0
  23. data/spec/spec_helper.rb +31 -0
  24. data/spec/support/fake_logger.rb +18 -0
  25. data/spec/support/have_output.rb +11 -0
  26. data/spec/support/nonblocking_examples.rb +14 -0
  27. data/spec/support/stub_os.rb +25 -0
  28. data/spec/support/unsetting_exitstatus.rb +7 -0
  29. data/spec/support/with_exitstatus.rb +12 -0
  30. data/spec/terrapin/command_line/output_spec.rb +14 -0
  31. data/spec/terrapin/command_line/runners/backticks_runner_spec.rb +24 -0
  32. data/spec/terrapin/command_line/runners/fake_runner_spec.rb +22 -0
  33. data/spec/terrapin/command_line/runners/popen_runner_spec.rb +24 -0
  34. data/spec/terrapin/command_line/runners/posix_runner_spec.rb +40 -0
  35. data/spec/terrapin/command_line/runners/process_runner_spec.rb +40 -0
  36. data/spec/terrapin/command_line_spec.rb +195 -0
  37. data/spec/terrapin/errors_spec.rb +62 -0
  38. data/spec/terrapin/os_detector_spec.rb +23 -0
  39. data/spec/terrapin/runners_spec.rb +97 -0
  40. data/terrapin.gemspec +28 -0
  41. metadata +209 -0
data/terrapin.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
+ require 'terrapin/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "terrapin"
6
+ s.version = Terrapin::VERSION.dup
7
+ s.platform = Gem::Platform::RUBY
8
+ s.author = "Jon Yurek"
9
+ s.email = "jyurek@thoughtbot.com"
10
+ s.homepage = "https://github.com/thoughtbot/terrapin"
11
+ s.summary = "Run shell commands safely, even with user-supplied values"
12
+ s.description = "Run shell commands safely, even with user-supplied values"
13
+ s.license = "MIT"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
18
+ s.require_paths = ["lib"]
19
+
20
+ s.add_dependency('climate_control', '>= 0.0.3', '< 1.0')
21
+ s.add_development_dependency('rspec')
22
+ s.add_development_dependency('bourne')
23
+ s.add_development_dependency('mocha')
24
+ s.add_development_dependency('rake')
25
+ s.add_development_dependency('activesupport', ">= 3.0.0", "< 5.0")
26
+ s.add_development_dependency('pry')
27
+ end
28
+
metadata ADDED
@@ -0,0 +1,209 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: terrapin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0.alpha
5
+ platform: ruby
6
+ authors:
7
+ - Jon Yurek
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: climate_control
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.3
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.0.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bourne
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: mocha
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: activesupport
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 3.0.0
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '5.0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 3.0.0
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '5.0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: pry
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ description: Run shell commands safely, even with user-supplied values
124
+ email: jyurek@thoughtbot.com
125
+ executables: []
126
+ extensions: []
127
+ extra_rdoc_files: []
128
+ files:
129
+ - ".gitignore"
130
+ - ".travis.yml"
131
+ - GOALS
132
+ - Gemfile
133
+ - LICENSE
134
+ - NEWS.md
135
+ - README.md
136
+ - Rakefile
137
+ - lib/terrapin.rb
138
+ - lib/terrapin/command_line.rb
139
+ - lib/terrapin/command_line/multi_pipe.rb
140
+ - lib/terrapin/command_line/output.rb
141
+ - lib/terrapin/command_line/runners.rb
142
+ - lib/terrapin/command_line/runners/backticks_runner.rb
143
+ - lib/terrapin/command_line/runners/fake_runner.rb
144
+ - lib/terrapin/command_line/runners/popen_runner.rb
145
+ - lib/terrapin/command_line/runners/posix_runner.rb
146
+ - lib/terrapin/command_line/runners/process_runner.rb
147
+ - lib/terrapin/exceptions.rb
148
+ - lib/terrapin/os_detector.rb
149
+ - lib/terrapin/version.rb
150
+ - spec/spec_helper.rb
151
+ - spec/support/fake_logger.rb
152
+ - spec/support/have_output.rb
153
+ - spec/support/nonblocking_examples.rb
154
+ - spec/support/stub_os.rb
155
+ - spec/support/unsetting_exitstatus.rb
156
+ - spec/support/with_exitstatus.rb
157
+ - spec/terrapin/command_line/output_spec.rb
158
+ - spec/terrapin/command_line/runners/backticks_runner_spec.rb
159
+ - spec/terrapin/command_line/runners/fake_runner_spec.rb
160
+ - spec/terrapin/command_line/runners/popen_runner_spec.rb
161
+ - spec/terrapin/command_line/runners/posix_runner_spec.rb
162
+ - spec/terrapin/command_line/runners/process_runner_spec.rb
163
+ - spec/terrapin/command_line_spec.rb
164
+ - spec/terrapin/errors_spec.rb
165
+ - spec/terrapin/os_detector_spec.rb
166
+ - spec/terrapin/runners_spec.rb
167
+ - terrapin.gemspec
168
+ homepage: https://github.com/thoughtbot/terrapin
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">"
184
+ - !ruby/object:Gem::Version
185
+ version: 1.3.1
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 2.7.4
189
+ signing_key:
190
+ specification_version: 4
191
+ summary: Run shell commands safely, even with user-supplied values
192
+ test_files:
193
+ - spec/spec_helper.rb
194
+ - spec/support/fake_logger.rb
195
+ - spec/support/have_output.rb
196
+ - spec/support/nonblocking_examples.rb
197
+ - spec/support/stub_os.rb
198
+ - spec/support/unsetting_exitstatus.rb
199
+ - spec/support/with_exitstatus.rb
200
+ - spec/terrapin/command_line/output_spec.rb
201
+ - spec/terrapin/command_line/runners/backticks_runner_spec.rb
202
+ - spec/terrapin/command_line/runners/fake_runner_spec.rb
203
+ - spec/terrapin/command_line/runners/popen_runner_spec.rb
204
+ - spec/terrapin/command_line/runners/posix_runner_spec.rb
205
+ - spec/terrapin/command_line/runners/process_runner_spec.rb
206
+ - spec/terrapin/command_line_spec.rb
207
+ - spec/terrapin/errors_spec.rb
208
+ - spec/terrapin/os_detector_spec.rb
209
+ - spec/terrapin/runners_spec.rb