proxy_pac_rb 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +0 -1
  3. data/.rubocop.yml +4 -0
  4. data/Gemfile +30 -19
  5. data/Gemfile.lock +220 -0
  6. data/README.md +3 -0
  7. data/Rakefile +49 -13
  8. data/bin/pprb +1 -116
  9. data/config/license_finder.yml +12 -0
  10. data/config/rubocop/exclude.yml +8 -0
  11. data/config/rubocop/include.yml +27 -0
  12. data/cucumber.yml +2 -0
  13. data/doc/dependencies/dependencies.db +0 -0
  14. data/features/resolve_proxy.feature +17 -0
  15. data/features/support/aruba.rb +13 -0
  16. data/features/support/env.rb +10 -1
  17. data/features/support/fixtures.rb +15 -0
  18. data/features/support/reporting.rb +2 -0
  19. data/lib/proxy_pac_rb/cli.rb +75 -0
  20. data/lib/proxy_pac_rb/cli_validator.rb +34 -0
  21. data/lib/proxy_pac_rb/encoding.rb +1 -1
  22. data/lib/proxy_pac_rb/environment.rb +10 -8
  23. data/lib/proxy_pac_rb/exceptions.rb +4 -4
  24. data/lib/proxy_pac_rb/file.rb +3 -3
  25. data/lib/proxy_pac_rb/parser.rb +11 -2
  26. data/lib/proxy_pac_rb/proxy_pac_js.rb +5 -5
  27. data/lib/proxy_pac_rb/runtime.rb +6 -5
  28. data/lib/proxy_pac_rb/runtimes/rubyracer.rb +42 -35
  29. data/lib/proxy_pac_rb/runtimes/rubyrhino.rb +27 -22
  30. data/lib/proxy_pac_rb/runtimes.rb +13 -15
  31. data/lib/proxy_pac_rb/version.rb +3 -2
  32. data/lib/proxy_pac_rb.rb +7 -3
  33. data/proxy_pac_rb.gemspec +1 -1
  34. data/script/ci +0 -4
  35. data/script/test_web +2 -1
  36. data/spec/environment_spec.rb +23 -23
  37. data/spec/file_spec.rb +5 -5
  38. data/spec/parser_spec.rb +16 -13
  39. data/spec/support/aruba.rb +50 -0
  40. data/spec/support/rspec.rb +18 -4
  41. data/spec/support/{string.rb → strip.rb} +0 -0
  42. data/tmp/script.rb +0 -2
  43. metadata +37 -29
  44. data/spec/support/environment.rb +0 -17
  45. data/spec/support/filesystem.rb +0 -20
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZmUwYmYzZTQ5ZDI1YTE5MWVlNTQ0ZThhMGRhYjUwNmM2OWVlZWE1ZA==
5
- data.tar.gz: !binary |-
6
- OTgwOWNmNGM5YTY2NDU0MzQ2MTJhMzY2ZGFiMzM2ZTgwM2QxNTRmYw==
2
+ SHA1:
3
+ metadata.gz: 1ff197d6ab742c5e43e2a6ca3b5d9ed6e482ef3d
4
+ data.tar.gz: e25cecd2819edc2431a0011516cbf96a81204b50
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmEwZTU3MjE1ZmFjOWQ4MWU4YjlhZjVmMjYwYjdjMDY2YTcyYjY0YTMyMTY1
10
- YWNiZGVkNDc2ZWMzYWYwYzg4MWMxOGFlYzZhNmQyMTMzODEzZjc0ZDkyYzY0
11
- ZTljNjJkZDZlZWE1NTIyODk5OWZiYzBmZDdjOGNmM2FmZmQzMmY=
12
- data.tar.gz: !binary |-
13
- OGJhOTczZGI3MDI0ZmU0NDYwZTU1NzQ2MWJkNzM4ZTdkZTRkMGNiYTc2OGU4
14
- N2JmOGNiZmJlNGRlMWFmNjU1YzhjMTc4ZGMzYzA2YjFiZjJmYjVkNzRlMWVk
15
- OGE2MDZhMDgzMTk0ZmY0YmQwMmYxMmVjYjJhNDhiY2E0ZjdmOWU=
6
+ metadata.gz: a4eec5297aef87e2bd79f5d9028210d42beb05171babd1fb0b970131397761d06963bdb323c88f15ac4a12fcedd12a876e585a3e57d70de7ca49d93bbd06df7a
7
+ data.tar.gz: ef7aec25f1e9bdf60636b05b93a49c61fd5c8483ea7e2cc027c216189b20e6f3465b3d29b5eaeb13d94f95b87f0febdbb09b2ae212c81633237b2fabfe4f3cd3
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  *.gem
2
2
  .bundle
3
- Gemfile.lock
4
3
  pkg/*
5
4
  coverage
6
5
  tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,4 @@
1
+ inherit_from:
2
+ - config/rubocop/include.yml
3
+ - config/rubocop/exclude.yml
4
+ - .rubocop_todo.yml
data/Gemfile CHANGED
@@ -13,35 +13,46 @@ group :test do
13
13
  gem 'aruba', require: false
14
14
  end
15
15
 
16
- group :development do
17
- gem 'debugger'
18
- gem 'debugger-completion'
16
+ group :development, :test do
17
+ if !ENV.key?('CI') && !ENV.key?('TRAVIS')
18
+ gem 'pry'
19
+ gem 'pry-doc', require: false
20
+
21
+ if RUBY_VERSION > '2.0.0'
22
+ gem 'byebug'
23
+ gem 'pry-byebug', require: false
24
+ else
25
+ gem 'debugger'
26
+ gem 'pry-debugger'
27
+ end
28
+ end
29
+
30
+ gem 'activesupport', '~> 4.0.0', require: false
31
+ gem 'awesome_print', require: 'ap'
32
+ gem 'bundler', '~> 1.3', require: false
33
+ gem 'command_exec', require: false
34
+ gem 'erubis'
35
+ gem 'fedux_org-stdlib', '~>0.7.25', require: false
36
+ gem 'filegen'
37
+ gem 'foreman', require: false
19
38
  gem 'github-markup'
20
- gem 'pry'
21
- gem 'pry-debugger', require: false
22
- gem 'pry-doc', require: false
39
+ gem 'inch', require: false
40
+ gem 'launchy', require: false
41
+ gem 'license_finder'
42
+ gem 'rack'
43
+ gem 'rake', require: false
23
44
  gem 'redcarpet', require: false
45
+ gem 'sinatra', require: 'sinatra/base'
24
46
  gem 'tmrb', require: false
47
+ gem 'travis-lint', require: false
48
+ gem 'versionomy', require: false
25
49
  gem 'yard', require: false
26
- gem 'inch', require: false
27
50
  end
28
51
 
29
52
  group :profile do
30
53
  gem 'ruby-prof'
31
54
  end
32
55
 
33
- gem 'rake', group: [:development, :test], require: false
34
- gem 'fedux_org-stdlib', group: [:development, :test], require: false
35
- gem 'bundler', '~> 1.3', group: [:development, :test], require: false
36
- gem 'erubis', group: [:development, :test]
37
- gem 'versionomy', group: [:development, :test], require: false
38
- gem 'filegen', group: [:development, :test]
39
- gem 'sinatra', group: [:development, :test], require: 'sinatra/base'
40
- gem 'rack', group: [:development, :test]
41
- gem 'activesupport', '~> 4.0.0', group: [:development, :test], require: false
42
-
43
- gem 'awesome_print', group: [:development, :test], require: 'ap'
44
-
45
56
  group :runtimes do
46
57
  group :therubyracer do
47
58
  gem 'therubyracer', require: 'v8'
data/Gemfile.lock ADDED
@@ -0,0 +1,220 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ proxy_pac_rb (0.3.5)
5
+ activesupport
6
+ addressable
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (4.0.9)
12
+ i18n (~> 0.6, >= 0.6.9)
13
+ minitest (~> 4.2)
14
+ multi_json (~> 1.3)
15
+ thread_safe (~> 0.1)
16
+ tzinfo (~> 0.3.37)
17
+ addressable (2.3.6)
18
+ aruba (0.6.1)
19
+ childprocess (>= 0.3.6)
20
+ cucumber (>= 1.1.1)
21
+ rspec-expectations (>= 2.7.0)
22
+ ast (2.0.0)
23
+ astrolabe (1.3.0)
24
+ parser (>= 2.2.0.pre.3, < 3.0)
25
+ awesome_print (1.2.0)
26
+ blockenspiel (0.4.5)
27
+ builder (3.2.2)
28
+ byebug (3.4.0)
29
+ columnize (~> 0.8)
30
+ debugger-linecache (~> 1.2)
31
+ slop (~> 3.6)
32
+ childprocess (0.5.3)
33
+ ffi (~> 1.0, >= 1.0.11)
34
+ coderay (1.1.0)
35
+ columnize (0.8.9)
36
+ command_exec (0.2.0)
37
+ activesupport
38
+ smart_colored
39
+ xml-simple
40
+ coveralls (0.7.1)
41
+ multi_json (~> 1.3)
42
+ rest-client
43
+ simplecov (>= 0.7)
44
+ term-ansicolor
45
+ thor
46
+ cucumber (1.3.16)
47
+ builder (>= 2.1.2)
48
+ diff-lcs (>= 1.1.3)
49
+ gherkin (~> 2.12)
50
+ multi_json (>= 1.7.5, < 2.0)
51
+ multi_test (>= 0.1.1)
52
+ debugger-linecache (1.2.0)
53
+ diff-lcs (1.2.5)
54
+ docile (1.1.5)
55
+ dotenv (0.11.1)
56
+ dotenv-deployment (~> 0.0.2)
57
+ dotenv-deployment (0.0.2)
58
+ erubis (2.7.0)
59
+ fedux_org-stdlib (0.7.25)
60
+ activesupport
61
+ ffi (1.9.3)
62
+ filegen (0.4.3)
63
+ activesupport
64
+ foreman (0.75.0)
65
+ dotenv (~> 0.11.1)
66
+ thor (~> 0.19.1)
67
+ fuubar (2.0.0)
68
+ rspec (~> 3.0)
69
+ ruby-progressbar (~> 1.4)
70
+ gherkin (2.12.2)
71
+ multi_json (~> 1.3)
72
+ github-markup (1.2.1)
73
+ posix-spawn (~> 0.3.8)
74
+ httparty (0.13.1)
75
+ json (~> 1.8)
76
+ multi_xml (>= 0.5.2)
77
+ i18n (0.6.11)
78
+ inch (0.4.10)
79
+ pry
80
+ sparkr (>= 0.2.0)
81
+ term-ansicolor
82
+ yard (~> 0.8.7)
83
+ json (1.8.1)
84
+ launchy (2.4.2)
85
+ addressable (~> 2.3)
86
+ libv8 (3.16.14.5)
87
+ license_finder (1.1.1)
88
+ bundler
89
+ httparty
90
+ sequel
91
+ sqlite3
92
+ thor
93
+ xml-simple
94
+ method_source (0.8.2)
95
+ mime-types (2.3)
96
+ minitest (4.7.5)
97
+ multi_json (1.10.1)
98
+ multi_test (0.1.1)
99
+ multi_xml (0.5.5)
100
+ netrc (0.7.7)
101
+ parser (2.2.0.pre.4)
102
+ ast (>= 1.1, < 3.0)
103
+ slop (~> 3.4, >= 3.4.5)
104
+ posix-spawn (0.3.9)
105
+ powerpack (0.0.9)
106
+ pry (0.10.1)
107
+ coderay (~> 1.1.0)
108
+ method_source (~> 0.8.1)
109
+ slop (~> 3.4)
110
+ pry-byebug (2.0.0)
111
+ byebug (~> 3.4)
112
+ pry (~> 0.10)
113
+ pry-doc (0.6.0)
114
+ pry (~> 0.9)
115
+ yard (~> 0.8)
116
+ rack (1.5.2)
117
+ rack-protection (1.5.3)
118
+ rack
119
+ rainbow (2.0.0)
120
+ rake (10.3.2)
121
+ redcarpet (3.1.2)
122
+ ref (1.0.5)
123
+ rest-client (1.7.2)
124
+ mime-types (>= 1.16, < 3.0)
125
+ netrc (~> 0.7)
126
+ rspec (3.1.0)
127
+ rspec-core (~> 3.1.0)
128
+ rspec-expectations (~> 3.1.0)
129
+ rspec-mocks (~> 3.1.0)
130
+ rspec-core (3.1.2)
131
+ rspec-support (~> 3.1.0)
132
+ rspec-expectations (3.1.0)
133
+ diff-lcs (>= 1.2.0, < 2.0)
134
+ rspec-support (~> 3.1.0)
135
+ rspec-mocks (3.1.0)
136
+ rspec-support (~> 3.1.0)
137
+ rspec-support (3.1.0)
138
+ rubocop (0.26.0)
139
+ astrolabe (~> 1.3)
140
+ parser (>= 2.2.0.pre.4, < 3.0)
141
+ powerpack (~> 0.0.6)
142
+ rainbow (>= 1.99.1, < 3.0)
143
+ ruby-progressbar (~> 1.4)
144
+ ruby-prof (0.15.1)
145
+ ruby-progressbar (1.5.1)
146
+ sequel (4.14.0)
147
+ simplecov (0.9.0)
148
+ docile (~> 1.1.0)
149
+ multi_json
150
+ simplecov-html (~> 0.8.0)
151
+ simplecov-html (0.8.0)
152
+ sinatra (1.4.5)
153
+ rack (~> 1.4)
154
+ rack-protection (~> 1.4)
155
+ tilt (~> 1.3, >= 1.3.4)
156
+ slop (3.6.0)
157
+ smart_colored (1.1.1)
158
+ sparkr (0.4.1)
159
+ sqlite3 (1.3.9)
160
+ term-ansicolor (1.3.0)
161
+ tins (~> 1.0)
162
+ therubyracer (0.12.1)
163
+ libv8 (~> 3.16.14.0)
164
+ ref
165
+ therubyrhino (2.0.4)
166
+ therubyrhino_jar (>= 1.7.3)
167
+ therubyrhino_jar (1.7.4)
168
+ thor (0.19.1)
169
+ thread_safe (0.3.4)
170
+ tilt (1.4.1)
171
+ tins (1.3.2)
172
+ tmrb (1.2.7)
173
+ thor
174
+ travis-lint (2.0.0)
175
+ json
176
+ tzinfo (0.3.41)
177
+ versionomy (0.4.4)
178
+ blockenspiel (>= 0.4.5)
179
+ xml-simple (1.1.4)
180
+ yard (0.8.7.4)
181
+
182
+ PLATFORMS
183
+ ruby
184
+
185
+ DEPENDENCIES
186
+ activesupport (~> 4.0.0)
187
+ aruba
188
+ awesome_print
189
+ bundler (~> 1.3)
190
+ byebug
191
+ command_exec
192
+ coveralls
193
+ cucumber
194
+ erubis
195
+ fedux_org-stdlib (~> 0.7.25)
196
+ filegen
197
+ foreman
198
+ fuubar
199
+ github-markup
200
+ inch
201
+ launchy
202
+ license_finder
203
+ proxy_pac_rb!
204
+ pry
205
+ pry-byebug
206
+ pry-doc
207
+ rack
208
+ rake
209
+ redcarpet
210
+ rspec
211
+ rubocop
212
+ ruby-prof
213
+ simplecov
214
+ sinatra
215
+ therubyracer
216
+ therubyrhino
217
+ tmrb
218
+ travis-lint
219
+ versionomy
220
+ yard
data/README.md CHANGED
@@ -167,3 +167,6 @@ rake test:rspec
167
167
  rake test:rubyracer
168
168
  rake test:rubyrhino
169
169
  ```
170
+
171
+ If you want to open an issue. Please send a PR with a test describing the bug.
172
+
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- #require 'bundler'
4
- #Bundler.require :default, :test, :development
3
+ # require 'bundler'
4
+ # Bundler.require :default, :test, :development
5
5
 
6
6
  require 'filegen'
7
- require 'fedux_org/stdlib/rake'
7
+ require 'fedux_org_stdlib/rake_tasks'
8
8
  require 'active_support/core_ext/string/inflections'
9
9
  require 'open3'
10
10
 
@@ -13,7 +13,9 @@ def software
13
13
  end
14
14
 
15
15
  def gemspec
16
+ # rubocop:disable Lint/Eval
16
17
  eval File.read(Dir.glob(File.join(File.expand_path('../', __FILE__), '*.gemspec')).first)
18
+ # rubocop:enable Lint/Eval
17
19
  end
18
20
 
19
21
  def version
@@ -49,7 +51,7 @@ def gem_directory
49
51
  ::File.join(root_directory, 'vendor', 'cache')
50
52
  end
51
53
 
52
- task :default => 'gem:build'
54
+ task default: 'gem:build'
53
55
 
54
56
  file gem_file => 'gem:build'
55
57
 
@@ -62,38 +64,38 @@ file archlinux_build_directory do
62
64
  end
63
65
 
64
66
  def extract_sha
65
- %x[makepkg -g 2>/dev/null].split(/\n/).find { |l| l =~ /sha256/ }
67
+ `makepkg -g 2>/dev/null`.split(/\n/).find { |l| l =~ /sha256/ }
66
68
  end
67
69
 
68
70
  namespace :package do
69
71
  desc 'build arch linux package'
70
- task :archlinux => [gem_file, archlinux_build_directory] do
72
+ task archlinux: [gem_file, archlinux_build_directory] do
71
73
  FileUtils.mv ::File.join(pkg_directory, "#{software}-#{version}.gem"), archlinux_build_directory
72
74
 
73
75
  generator = Filegen::Rubygen.new
74
76
  template = File.read(File.expand_path('../share/archlinux/PKGBUILD.sh.erb', __FILE__))
75
77
  build_file = File.expand_path('../share/archlinux/PKGBUILD', __FILE__)
76
78
 
77
- data = {
78
- sha: nil,
79
- version: version,
79
+ data = {
80
+ sha: nil,
81
+ version: version
80
82
  }
81
83
 
82
84
  Dir.chdir(archlinux_build_directory) do
83
85
  File.open(build_file, 'w') do |f|
84
- f.write generator.run(template, data )
86
+ f.write generator.run(template, data)
85
87
  end
86
88
 
87
89
  data = {
88
90
  sha: extract_sha,
89
- version: version,
91
+ version: version
90
92
  }
91
93
 
92
94
  File.open(build_file, 'w') do |f|
93
95
  f.write generator.run(template, data)
94
96
  end
95
97
 
96
- sh "makepkg -f"
98
+ sh 'makepkg -f'
97
99
  end
98
100
  end
99
101
  end
@@ -101,7 +103,41 @@ end
101
103
  require 'coveralls/rake/task'
102
104
  Coveralls::RakeTask.new
103
105
 
106
+ desc 'Run test suite'
107
+ task :test do
108
+ Rake::Task['test:before'].execute
109
+
110
+ begin
111
+ %w(test:rubocop test:rspec test:cucumber test:after).each { |t| Rake::Task[t].execute }
112
+ ensure
113
+ Rake::Task['test:after'].execute
114
+ end
115
+ end
116
+
104
117
  namespace :test do
105
118
  desc 'Test with coveralls'
106
- task :coveralls => ['test:rspec', 'test:cucumber', 'coveralls:push']
119
+ task coveralls: %w(test coveralls:push)
120
+
121
+ require 'rubocop/rake_task'
122
+ RuboCop::RakeTask.new
123
+
124
+ desc 'Run rspec'
125
+ task :rspec do
126
+ sh 'bundle exec rspec'
127
+ end
128
+
129
+ desc 'Run cucumber'
130
+ task :cucumber do
131
+ sh 'bundle exec cucumber -p all'
132
+ end
133
+
134
+ desc 'Setup test environment'
135
+ task :before do
136
+ @web_server = Process.spawn 'script/test_web'
137
+ end
138
+
139
+ desc 'Teardown test environment'
140
+ task :after do
141
+ sh "kill #{@web_server}"
142
+ end
107
143
  end