proxy_pac_rb 2.1.0 → 3.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05b5cdcd694e4663967cb4fd8b34fac878f6841f
4
- data.tar.gz: ae67fc59265d7fa58975e7e9bb2b291038b160c9
3
+ metadata.gz: 037d43fa0910685b4a38a431bc1bd25a3fa3c299
4
+ data.tar.gz: 47cf7ce08c6770974784e50eef702424e13f70ad
5
5
  SHA512:
6
- metadata.gz: 6d3f4e6ecd0e27b76a5ada7e2173e8a3fe6aa374fd2abeec950ae1e6c4d0a53a4c051ec15c6b683360ff1fcccf0d8efc11ed8322eaa67367a07bd99965887811
7
- data.tar.gz: 6d5b1e05274da804023f7abaa5487a22ffcb7dfed473d9b3bfa5b45dfebbd804eed9efc0d43843c379a4c4ef90c510a7bd9088729dc199c8757aa2ca81f970b0
6
+ metadata.gz: a46b7925d4034bbeefcdda66e868042fb15ef9e5c9c2f2c1fc988eb2464d0e273c82368cb93959bd01736931da08303ea9adc041d13081fba6c261f8fb709c2c
7
+ data.tar.gz: 8cf646fc6d0c88abb7db9433edb3c173ed8e1e7e6741c0920c51d904965ded102ecd9d54802c45df27e76f4c89517417fae40687fbe865a31c5d1104f5e27ea9
@@ -1,9 +1,14 @@
1
+ inherit_from: .rubocop_todo.yml
1
2
  AllCops:
2
3
  Exclude:
3
4
  - 'tmp/**/*'
5
+ - Gemfile
4
6
  DisplayCopNames: true
5
7
  TargetRubyVersion: 2.3
6
8
 
9
+ Style/GuardClause:
10
+ Enabled: false
11
+
7
12
  Metrics/AbcSize:
8
13
  Max: 38
9
14
 
@@ -0,0 +1,91 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2017-06-04 19:50:00 +0000 using RuboCop version 0.49.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 82
10
+ # Cop supports --auto-correct.
11
+ Layout/EmptyLineAfterMagicComment:
12
+ Enabled: false
13
+
14
+ # Offense count: 87
15
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
16
+ # SupportedStyles: native, lf, crlf
17
+ Layout/EndOfLine:
18
+ Enabled: false
19
+
20
+ # Offense count: 27
21
+ # Cop supports --auto-correct.
22
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
23
+ # SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
24
+ Layout/IndentHeredoc:
25
+ Exclude:
26
+ - 'lib/proxy_pac_rb/cli/init_proxy_pac.rb'
27
+ - 'lib/proxy_pac_rb/proxy_pac_js.rb'
28
+ - 'proxy_pac_rb.gemspec'
29
+ - 'spec/parser_spec.rb'
30
+ - 'spec/rack/proxy_pac_compressor_spec.rb'
31
+ - 'spec/rack/proxy_pac_linter_spec.rb'
32
+ - 'spec/rspec/compare_proxy_pac_files_spec.rb'
33
+ - 'spec/rspec/parse_proxy_pac_spec.rb'
34
+ - 'spec/rspec/readability_spec.rb'
35
+ - 'spec/rspec/validitiy_spec.rb'
36
+
37
+ # Offense count: 17
38
+ # Configuration parameters: CountComments, ExcludedMethods.
39
+ Metrics/BlockLength:
40
+ Max: 178
41
+
42
+ # Offense count: 1
43
+ # Cop supports --auto-correct.
44
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
45
+ # SupportedStyles: compact, expanded
46
+ Style/EmptyMethod:
47
+ Exclude:
48
+ - 'lib/proxy_pac_rb/runtime.rb'
49
+
50
+ # Offense count: 1
51
+ # Cop supports --auto-correct.
52
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
53
+ # SupportedStyles: when_needed, always, never
54
+ Style/FrozenStringLiteralComment:
55
+ Exclude:
56
+ - 'Vagrantfile'
57
+
58
+ # Offense count: 1
59
+ # Cop supports --auto-correct.
60
+ # Configuration parameters: InverseMethods, InverseBlocks.
61
+ Style/InverseMethods:
62
+ Exclude:
63
+ - 'lib/proxy_pac_rb/rspec.rb'
64
+
65
+ # Offense count: 7
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: PreferredDelimiters.
68
+ Style/PercentLiteralDelimiters:
69
+ Exclude:
70
+ - 'Rakefile'
71
+ - 'lib/proxy_pac_rb/cli/shared.rb'
72
+ - 'lib/proxy_pac_rb/main.rb'
73
+ - 'lib/proxy_pac_rb/rspec.rb'
74
+ - 'spec/environment_spec.rb'
75
+ - 'templates/test_framework/rspec/support/aruba.rb'
76
+
77
+ # Offense count: 2
78
+ # Cop supports --auto-correct.
79
+ # Configuration parameters: MinSize, SupportedStyles.
80
+ # SupportedStyles: percent, brackets
81
+ Style/SymbolArray:
82
+ EnforcedStyle: brackets
83
+
84
+ # Offense count: 4
85
+ # Cop supports --auto-correct.
86
+ Style/YodaCondition:
87
+ Exclude:
88
+ - 'lib/proxy_pac_rb/proxy_pac_file.rb'
89
+ - 'lib/proxy_pac_rb/rack/proxy_pac_compressor.rb'
90
+ - 'lib/proxy_pac_rb/rack/proxy_pac_linter.rb'
91
+ - 'lib/proxy_pac_rb/rspec/helpers.rb'
data/Gemfile CHANGED
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  group :development, :test do
16
16
  gem 'middleman', '~> 4.1', require: false
17
- gem 'aruba', '~>0.10.0', require: false
17
+ gem 'aruba', '~>0.14.2', require: false
18
18
  gem 'awesome_print', require: 'ap'
19
19
  gem 'bundler', '~> 1.3', require: false
20
20
  gem 'command_exec', require: false
data/README.md CHANGED
@@ -271,7 +271,7 @@ file.find('https://github.com') # => "DIRECT"
271
271
  ```ruby
272
272
  require 'proxy_pac_rb'
273
273
 
274
- string = <<-EOS
274
+ string = <<~EOS
275
275
  function FindProxyForURL(url, host) {
276
276
  if (dateRange("JUL", "SEP")) {
277
277
  return "PROXY localhost:8080";
@@ -379,7 +379,7 @@ RSpec.describe 'proxy.pac', type: :proxy_pac do
379
379
  ```ruby
380
380
  RSpec.describe 'String', type: :proxy_pac do
381
381
  subject do
382
- <<-EOS.strip_heredoc.chomp
382
+ <<~EOS.chomp
383
383
  function FindProxyForURL(url, host) {
384
384
  return "DIRECT";
385
385
  }
@@ -439,7 +439,7 @@ require 'proxy_pac_rb/rspec'
439
439
 
440
440
  RSpec.describe 'proxy.pac', type: :proxy_pac do
441
441
  subject do
442
- <<-EOS.strip_heredoc.chomp
442
+ <<~EOS.chomp
443
443
  function FindProxyForURL(url, host) {
444
444
  return "DIRECT";
445
445
  }
@@ -490,7 +490,7 @@ require 'proxy_pac_rb/rspec'
490
490
 
491
491
  RSpec.describe 'proxy.pac', type: :proxy_pac do
492
492
  subject do
493
- <<-EOS.strip_heredoc.chomp
493
+ <<~EOS.chomp
494
494
  function FindProxyForURL(url, host) {
495
495
  return "DIRECT";
496
496
  }
@@ -503,7 +503,7 @@ RSpec.describe 'proxy.pac', type: :proxy_pac do
503
503
 
504
504
  context 'when proxy.pac is not valid' do
505
505
  subject do
506
- <<-EOS.strip_heredoc.chomp
506
+ <<~EOS.chomp
507
507
  function FindProxyForURL(url, host) {
508
508
  return adsf;
509
509
  }
@@ -524,7 +524,7 @@ the proxy.pac and returns the proxy to be used for a given url.
524
524
  require 'proxy_pac_rb/rspec'
525
525
  RSpec.describe 'proxy.pac', type: :proxy_pac do
526
526
  subject do
527
- <<-EOS.strip_heredoc.chomp
527
+ <<~EOS.chomp
528
528
  function FindProxyForURL(url, host) {
529
529
  if (dnsDomainIs(host, 'www1.example.com'')) {
530
530
  return "PROXY proxy1.example.com:8080";
data/Rakefile CHANGED
@@ -1,9 +1,19 @@
1
- #!/usr/bin/env rake
2
1
  # frozen_string_literal: true
3
2
 
4
3
  # require 'bundler'
5
4
  # Bundler.require :default, :test, :development
6
5
 
6
+ # temp fix for NoMethodError: undefined method `last_comment'
7
+ # remove when fixed in Rake 11.x
8
+ # see http://stackoverflow.com/questions/35893584/nomethoderror-undefined-method-last-comment-after-upgrading-to-rake-11
9
+ module TempFixForRakeLastComment
10
+ def last_comment
11
+ last_description
12
+ end
13
+ end
14
+ Rake::Application.send :include, TempFixForRakeLastComment
15
+ ### end of tempfix
16
+
7
17
  require 'filegen'
8
18
  require 'fedux_org_stdlib/rake_tasks'
9
19
 
@@ -11,7 +11,7 @@ Feature: Resolve proxy
11
11
  return 'PROXY localhost:3128';
12
12
  }
13
13
  """
14
- When I successfully run `pprb find proxy -p proxy.pac -u www.example.org`
14
+ When I successfully run `pprb find proxy -p proxy.pac -u http://www.example.org`
15
15
  Then the output should contain:
16
16
  """
17
17
  PROXY localhost:3128
@@ -22,7 +22,7 @@ Feature: Resolve proxy
22
22
  """
23
23
  function FindProxyForURL(){return"PROXY localhost:3128"}
24
24
  """
25
- When I successfully run `pprb find proxy -p proxy.pac -u www.example.org`
25
+ When I successfully run `pprb find proxy -p proxy.pac -u http://www.example.org`
26
26
  Then the output should contain:
27
27
  """
28
28
  PROXY localhost:3128
@@ -35,7 +35,7 @@ Feature: Resolve proxy
35
35
  return 'PROXY localhost:3128';
36
36
  }
37
37
  """
38
- When I successfully run `pprb find proxy -p ./proxy.pac -u www.example.org`
38
+ When I successfully run `pprb find proxy -p ./proxy.pac -u http://www.example.org`
39
39
  Then the output should contain:
40
40
  """
41
41
  PROXY localhost:3128
@@ -48,14 +48,14 @@ Feature: Resolve proxy
48
48
  return 'PROXY localhost:3128';
49
49
  }
50
50
  """
51
- When I successfully run `pprb find proxy -p http://127.0.0.1:65535/proxy.pac -u www.example.org`
51
+ When I successfully run `pprb find proxy -p http://127.0.0.1:65535/proxy.pac -u http://www.example.org`
52
52
  Then the output should contain:
53
53
  """
54
54
  PROXY localhost:3128
55
55
  """
56
56
 
57
57
  Scenario: Non-Existing proxy.pac
58
- When I run `pprb find proxy -p proxy.pac -u www.example.org`
58
+ When I run `pprb find proxy -p proxy.pac -u http://www.example.org`
59
59
  Then the output should contain:
60
60
  """
61
61
  You need to provide a path to an existing proxy pac file. The file "proxy.pac" does not exist.
@@ -81,7 +81,7 @@ Feature: Resolve proxy
81
81
  return 'PROXY localhost:3128';
82
82
  }
83
83
  """
84
- When I run `pprb find proxy -u www.example.org`
84
+ When I run `pprb find proxy -u http://www.example.org`
85
85
  Then the output should contain:
86
86
  """
87
87
  No value provided for required options '--proxy-pac'
@@ -98,12 +98,12 @@ Feature: Resolve proxy
98
98
  }
99
99
  }
100
100
  """
101
- When I successfully run `pprb find proxy -p proxy.pac -c 10.0.0.1 -u www.example.org`
101
+ When I successfully run `pprb find proxy -p proxy.pac -c 10.0.0.1 -u http://www.example.org`
102
102
  Then the output should contain:
103
103
  """
104
104
  PROXY localhost:3128
105
105
  """
106
- When I successfully run `pprb find proxy -p proxy.pac -c 192.0.0.1 -u www.example.org`
106
+ When I successfully run `pprb find proxy -p proxy.pac -c 192.0.0.1 -u http://www.example.org`
107
107
  Then the output should contain:
108
108
  """
109
109
  DIRECT
@@ -120,12 +120,12 @@ Feature: Resolve proxy
120
120
  }
121
121
  }
122
122
  """
123
- When I successfully run `pprb find proxy -p proxy.pac -t 2014-04-09 -u www.example.org`
123
+ When I successfully run `pprb find proxy -p proxy.pac -t 2014-04-09 -u http://www.example.org`
124
124
  Then the output should contain:
125
125
  """
126
126
  PROXY localhost:3128
127
127
  """
128
- When I successfully run `pprb find proxy -p proxy.pac -t 2014-12-07 -u www.example.org`
128
+ When I successfully run `pprb find proxy -p proxy.pac -t 2014-12-07 -u http://www.example.org`
129
129
  Then the output should contain:
130
130
  """
131
131
  DIRECT
@@ -164,3 +164,27 @@ Feature: Resolve proxy
164
164
  """
165
165
  proxy.example.com
166
166
  """
167
+
168
+ Scenario: Missing scheme in proxy.pac
169
+ Given a file named "proxy.pac" with:
170
+ """
171
+ function FindProxyForURL(url, host) {
172
+ if (dnsDomainIs(host,"in.example.com")) {
173
+ return "DIRECT";
174
+ }
175
+
176
+ if (dnsDomainIs(host,"ex.example.com")) return "PROXY localhost:8080";
177
+
178
+ return 'PROXY localhost:3128';
179
+ }
180
+ """
181
+ When I successfully run `pprb find proxy -p proxy.pac -u www.in.example.com`
182
+ Then the output should contain:
183
+ """
184
+ DIRECT
185
+ """
186
+ When I successfully run `pprb find proxy -p proxy.pac -u www.ex.example.com`
187
+ Then the output should contain:
188
+ """
189
+ PROXY localhost:8080
190
+ """
@@ -29,7 +29,7 @@ module ProxyPacRb
29
29
 
30
30
  directory 'test_framework/rspec/', 'spec'
31
31
 
32
- append_file 'Gemfile', <<-EOS.strip_heredoc
32
+ append_file 'Gemfile', <<~EOS
33
33
  group :development, :test do
34
34
  gem 'aruba', require: false
35
35
 
@@ -43,7 +43,7 @@ module ProxyPacRb
43
43
  end
44
44
  EOS
45
45
 
46
- append_file 'Rakefile', <<-EOS.strip_heredoc
46
+ append_file 'Rakefile', <<~EOS
47
47
  desc 'Run tests'
48
48
  task test: 'test:local'
49
49
 
@@ -71,12 +71,12 @@ module ProxyPacRb
71
71
 
72
72
  directory 'build/middleman', './'
73
73
 
74
- append_file 'Gemfile', <<-EOS.strip_heredoc
74
+ append_file 'Gemfile', <<~EOS
75
75
  gem 'middleman', '~>3.3.10'
76
76
  gem 'therubyracer'
77
77
  EOS
78
78
 
79
- append_file 'Rakefile', <<-EOS.strip_heredoc
79
+ append_file 'Rakefile', <<~EOS
80
80
  desc 'Build site'
81
81
  task :build do
82
82
  sh 'bundle exec middleman build --verbose'
@@ -13,8 +13,10 @@ module ProxyPacRb
13
13
  @context = context
14
14
  end
15
15
 
16
+ # rubocop:disable Style/MethodMissing
16
17
  def method_missing(*args, &_block)
17
18
  context.call(args.shift, *args)
18
19
  end
20
+ # rubocop:enable Style/MethodMissing
19
21
  end
20
22
  end
@@ -53,7 +53,7 @@ module ProxyPacRb
53
53
  # pure_funcs: nil, # List of functions without side-effects. Can safely discard function calls when the result value is not used
54
54
  # drop_console: false, # Drop calls to console.* functions
55
55
  # angular: false, # Process @ngInject annotations
56
- # keep_fargs: false, # Preserve unused function arguments
56
+ keep_fargs: true # Preserve unused function arguments
57
57
  # keep_fnames: true # Preserve function names
58
58
  }
59
59
  }.deep_merge options
@@ -55,9 +55,9 @@ module ProxyPacRb
55
55
 
56
56
  def output_path(path)
57
57
  if ::File.exist?(path.gsub(/#{in_extension}*$/, '') + in_extension)
58
- return path.gsub(/#{in_extension}*$/, '')
58
+ path.gsub(/#{in_extension}*$/, '')
59
59
  elsif ::File.exist? path
60
- return path + out_extension
60
+ path + out_extension
61
61
  else
62
62
  raise Errno::ENOENT, "Both paths \"#{path.gsub(/#{in_extension}*$/, '') + in_extension}\" and \"#{path}\" do not exist."
63
63
  end
@@ -5,7 +5,7 @@ module ProxyPacRb
5
5
  class ProxyPacJs
6
6
  class << self
7
7
  def my_ip_address_template(value)
8
- <<-EOS.strip_heredoc
8
+ <<~EOS
9
9
  function myIpAddress() {
10
10
  return "#{value}";
11
11
  }
@@ -15,7 +15,7 @@ module ProxyPacRb
15
15
  # taken from releases-mozilla-release / netwerk / base / src / ProxyAutoConfig.cpp @ bitbucket.org
16
16
  # https://bitbucket.org/mozilla/releases-mozilla-release/raw/dece38633cf1adcab2071d69fea264580d24cc9e/netwerk/base/src/ProxyAutoConfig.cpp
17
17
  def time_variables
18
- <<-EOS.strip_heredoc
18
+ <<~EOS
19
19
  var wdays = {SUN: 0, MON: 1, TUE: 2, WED: 3, THU: 4, FRI: 5, SAT: 6};
20
20
  var months = {JAN: 0, FEB: 1, MAR: 2, APR: 3, MAY: 4, JUN: 5, JUL: 6, AUG: 7, SEP: 8, OCT: 9, NOV: 10, DEC: 11};
21
21
  EOS
@@ -24,7 +24,7 @@ module ProxyPacRb
24
24
  def week_day_range_template(value = nil)
25
25
  value = %("#{value}") if value
26
26
 
27
- <<-EOS.strip_heredoc
27
+ <<~EOS
28
28
  function getDay(weekday) {
29
29
  if (weekday in wdays) {
30
30
  return wdays[weekday];
@@ -55,7 +55,7 @@ module ProxyPacRb
55
55
  def date_range_template(value = nil)
56
56
  value = %("#{value}") if value
57
57
 
58
- <<-EOS.strip_heredoc
58
+ <<~EOS
59
59
  function getMonth(name) {
60
60
  if (name in months) {
61
61
  return months[name];
@@ -137,7 +137,7 @@ module ProxyPacRb
137
137
  def time_range_template(value = nil)
138
138
  value = %("#{value}") if value
139
139
 
140
- <<-EOS.strip_heredoc
140
+ <<~EOS
141
141
  function timeRange() {
142
142
  var argc = arguments.length;
143
143
  var date = new Date(#{value});
@@ -28,7 +28,7 @@ module ProxyPacRb
28
28
  end
29
29
 
30
30
  def names
31
- @names ||= constants.reduce({}) { |a, e| a.merge(const_get(e) => e) }.values
31
+ @names ||= constants.reduce({}) { |acc, elem| acc.merge(const_get(elem) => elem) }.values
32
32
  end
33
33
 
34
34
  def runtimes
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
  # ProxyPacRb
4
4
  module ProxyPacRb
5
- VERSION = '2.1.0'
5
+ VERSION = '3.0.0'
6
6
  end
@@ -22,8 +22,8 @@ DESC
22
22
  spec.require_paths = ['lib']
23
23
 
24
24
  spec.add_runtime_dependency 'addressable', '~>2.3'
25
- spec.add_runtime_dependency 'activesupport', '~>4.1'
26
- spec.add_runtime_dependency 'uglifier', '~> 2.7.1'
25
+ spec.add_runtime_dependency 'activesupport', '>=4.1', '<5.2'
26
+ spec.add_runtime_dependency 'uglifier', '>= 2.7.1'
27
27
  spec.add_runtime_dependency 'excon', '~> 0.45.3'
28
28
  spec.add_runtime_dependency 'contracts', '~> 0.9'
29
29
  spec.add_runtime_dependency 'thor', '~> 0.19'
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'bundler'
@@ -8,7 +8,7 @@ RSpec.describe ProxyPacCompressor do
8
8
  let(:modified_content) { %(function FindProxyForURL(url, host) {\n return \"DIRECT\";\n}) }
9
9
 
10
10
  let(:content) do
11
- <<-EOS.strip_heredoc.chomp
11
+ <<~EOS.chomp
12
12
  // comment
13
13
  function FindProxyForURL(url, host) {
14
14
  return "DIRECT";
@@ -5,7 +5,7 @@ RSpec.describe ProxyPacDumper, type: :aruba do
5
5
  subject(:proxy_pac) { instance_double('ProxyPac::ProxyPacFile') }
6
6
 
7
7
  let(:content) do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -13,7 +13,7 @@ RSpec.describe ProxyPacDumper, type: :aruba do
13
13
  end
14
14
 
15
15
  let(:source) do
16
- <<-EOS.strip_heredoc.chomp
16
+ <<~EOS.chomp
17
17
  function FindProxyForURL(url, host) {
18
18
  return "DIRECT";
19
19
  }
@@ -5,7 +5,7 @@ RSpec.describe ProxyPacFile do
5
5
  subject(:proxy_pac) { ProxyPacFile.new source: source }
6
6
 
7
7
  let(:source) do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -5,7 +5,7 @@ RSpec.describe ProxyPacLinter do
5
5
  subject(:proxy_pac) { instance_double('ProxyPac::ProxyPacFile') }
6
6
 
7
7
  let(:content) do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -13,7 +13,7 @@ RSpec.describe ProxyPacLinter do
13
13
  end
14
14
 
15
15
  let(:source) do
16
- <<-EOS.strip_heredoc.chomp
16
+ <<~EOS.chomp
17
17
  function FindProxyForURL(url, host) {
18
18
  return "DIRECT";
19
19
  }
@@ -50,7 +50,7 @@ RSpec.describe ProxyPacLinter do
50
50
  context 'when is proxy.pac cannot be compiled' do
51
51
  let(:result) { false }
52
52
  let(:content) do
53
- <<-EOS.strip_heredoc.chomp
53
+ <<~EOS.chomp
54
54
  function FindProxyForURL(url, host) {
55
55
  asdfasf $$ SDF
56
56
  }
@@ -5,7 +5,7 @@ RSpec.describe ProxyPacLoader, type: :aruba do
5
5
  subject(:proxy_pac) { instance_double('ProxyPac::ProxyPacFile') }
6
6
 
7
7
  let(:content) do
8
- <<-EOS.strip_heredoc
8
+ <<~EOS
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -13,7 +13,7 @@ RSpec.describe ProxyPacLoader, type: :aruba do
13
13
  end
14
14
 
15
15
  let(:source) do
16
- <<-EOS.strip_heredoc
16
+ <<~EOS
17
17
  function FindProxyForURL(url, host) {
18
18
  return "DIRECT";
19
19
  }
@@ -51,7 +51,7 @@ RSpec.describe ProxyPacLoader, type: :aruba do
51
51
  it_behaves_like 'an un-readable proxy.pac'
52
52
  end
53
53
 
54
- context 'when proxy pac is file' do
54
+ context 'when proxy pac is file', type: :aruba do
55
55
  let(:file) { 'proxy.pac' }
56
56
  let(:type) { :file }
57
57
  let(:source) { expand_path(file) }
@@ -5,7 +5,7 @@ RSpec.describe ProxyPacParser do
5
5
  subject(:proxy_pac) { instance_double('ProxyPac::ProxyPacFile') }
6
6
 
7
7
  let(:content) do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -13,7 +13,7 @@ RSpec.describe ProxyPacParser do
13
13
  end
14
14
 
15
15
  let(:source) do
16
- <<-EOS.strip_heredoc.chomp
16
+ <<~EOS.chomp
17
17
  function FindProxyForURL(url, host) {
18
18
  return "DIRECT";
19
19
  }
@@ -39,7 +39,7 @@ RSpec.describe ProxyPacParser do
39
39
 
40
40
  context 'when is invalid' do
41
41
  let(:content) do
42
- <<-EOS.strip_heredoc.chomp
42
+ <<~EOS.chomp
43
43
  function FindProxyForURL(url, host) {
44
44
  asdfasf $$ SDF
45
45
  }
@@ -8,7 +8,7 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
8
8
  let(:environment) { Environment.new }
9
9
 
10
10
  let(:content) do
11
- <<-EOS.strip_heredoc.chomp
11
+ <<~EOS.chomp
12
12
  function FindProxyForURL(url, host) {
13
13
  return "DIRECT";
14
14
  }
@@ -16,7 +16,7 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
16
16
  end
17
17
 
18
18
  let(:source) do
19
- <<-EOS.strip_heredoc.chomp
19
+ <<~EOS.chomp
20
20
  function FindProxyForURL(url, host) {
21
21
  return "DIRECT";
22
22
  }
@@ -27,16 +27,44 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
27
27
  it { expect(proxy_pac).not_to be_nil }
28
28
  end
29
29
 
30
- context 'when path is given' do
30
+ context 'when path is given', type: :aruba do
31
31
  let(:source) { expand_path('proxy.pac') }
32
32
  before(:each) { write_file(source, content) }
33
33
 
34
34
  it { expect(proxy_pac).not_to be_nil }
35
35
  end
36
36
 
37
+ context 'when input is given' do
38
+ let(:source) do
39
+ <<~EOS.chomp
40
+ function FindProxyForURL(url, host) {
41
+ if (dnsDomainIs(host,"in.example.com")) {
42
+ return "DIRECT";
43
+ }
44
+
45
+ if (dnsDomainIs(host,"ex.example.com")) return "PROXY localhost:8080";
46
+
47
+ return 'PROXY localhost:3128';
48
+ }
49
+ EOS
50
+ end
51
+
52
+ context 'when url' do
53
+ it { expect(proxy_pac.find('http://www.in.example.com')).to eq('DIRECT') }
54
+ it { expect(proxy_pac.find('http://www.ex.example.com')).to eq('PROXY localhost:8080') }
55
+ it { expect(proxy_pac.find('http://www.other.example.de')).to eq('PROXY localhost:3128') }
56
+ end
57
+
58
+ context 'when hostname' do
59
+ it { expect(proxy_pac.find('www.in.example.com')).to eq('DIRECT') }
60
+ it { expect(proxy_pac.find('www.ex.example.com')).to eq('PROXY localhost:8080') }
61
+ it { expect(proxy_pac.find('www.other.example.de')).to eq('PROXY localhost:3128') }
62
+ end
63
+ end
64
+
37
65
  context 'when ip address is given' do
38
66
  let(:source) do
39
- <<-EOS
67
+ <<~EOS
40
68
  function FindProxyForURL(url, host) {
41
69
  if ( myIpAddress() == '127.0.0.2' ) {
42
70
  return "DIRECT";
@@ -60,7 +88,7 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
60
88
 
61
89
  context 'when date is given' do
62
90
  let(:source) do
63
- <<-EOS
91
+ <<~EOS
64
92
  function FindProxyForURL(url, host) {
65
93
  if (weekdayRange("FRI", "SAT")) {
66
94
  return "PROXY localhost:8080";
@@ -84,7 +112,7 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
84
112
 
85
113
  context 'when time range is used' do
86
114
  let(:source) do
87
- <<-EOS
115
+ <<~EOS
88
116
  function FindProxyForURL(url, host) {
89
117
  if (timeRange(8, 18)) {
90
118
  return "PROXY localhost:8080";
@@ -108,7 +136,7 @@ RSpec.describe ProxyPacRb::Parser, type: :aruba do
108
136
 
109
137
  context 'when date range is used' do
110
138
  let(:source) do
111
- <<-EOS
139
+ <<~EOS
112
140
  function FindProxyForURL(url, host) {
113
141
  if (dateRange("JUL", "SEP")) {
114
142
  return "PROXY localhost:8080";
@@ -17,7 +17,7 @@ RSpec.describe ProxyPacRb::Rack::ProxyPacCompressor, type: :rack_test do
17
17
  end
18
18
 
19
19
  get '/' do
20
- <<-EOS.strip_heredoc.chomp
20
+ <<~EOS.chomp
21
21
  // comment
22
22
  function FindProxyForURL(url, host) {
23
23
  return "DIRECT";
@@ -46,7 +46,7 @@ RSpec.describe ProxyPacRb::Rack::ProxyPacCompressor, type: :rack_test do
46
46
  end
47
47
 
48
48
  get '/' do
49
- <<-EOS.strip_heredoc.chomp
49
+ <<~EOS.chomp
50
50
  function FindProxyForURL(url, host) {
51
51
  return $"§$ "DIRECT";
52
52
  }
@@ -5,7 +5,7 @@ require 'rack/lint'
5
5
 
6
6
  RSpec.describe ProxyPacRb::Rack::ProxyPacLinter, type: :rack_test do
7
7
  let(:content) do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  return "DIRECT";
11
11
  }
@@ -23,7 +23,7 @@ RSpec.describe ProxyPacRb::Rack::ProxyPacLinter, type: :rack_test do
23
23
  end
24
24
 
25
25
  get '/' do
26
- <<-EOS.strip_heredoc.chomp
26
+ <<~EOS.chomp
27
27
  function FindProxyForURL(url, host) {
28
28
  return "DIRECT";
29
29
  }
@@ -51,7 +51,7 @@ RSpec.describe ProxyPacRb::Rack::ProxyPacLinter, type: :rack_test do
51
51
  end
52
52
 
53
53
  get '/' do
54
- <<-EOS.strip_heredoc.chomp
54
+ <<~EOS.chomp
55
55
  function FindProxyForURL(url, host) {
56
56
  return $"§$ "DIRECT";
57
57
  }
@@ -4,7 +4,7 @@ require 'proxy_pac_rb/rspec'
4
4
 
5
5
  RSpec.describe 'Compare to proxy.pac-files', type: :proxy_pac do
6
6
  subject do
7
- <<-EOS.strip_heredoc.chomp
7
+ <<~EOS.chomp
8
8
  function FindProxyForURL(url, host) {
9
9
  return "DIRECT";
10
10
  }
@@ -12,7 +12,7 @@ RSpec.describe 'Compare to proxy.pac-files', type: :proxy_pac do
12
12
  end
13
13
 
14
14
  let(:file_a) do
15
- <<-EOS.strip_heredoc.chomp
15
+ <<~EOS.chomp
16
16
  function FindProxyForURL(url, host) {
17
17
  return "DIRECT";
18
18
  }
@@ -20,7 +20,7 @@ RSpec.describe 'Compare to proxy.pac-files', type: :proxy_pac do
20
20
  end
21
21
 
22
22
  let(:file_b) do
23
- <<-EOS.strip_heredoc.chomp
23
+ <<~EOS.chomp
24
24
  function FindProxyForURL(url, host) {
25
25
  return "DIRECT";
26
26
  }
@@ -53,7 +53,7 @@ RSpec.describe 'Compare to proxy.pac-files', type: :proxy_pac do
53
53
 
54
54
  context 'when both are not eqal' do
55
55
  let(:file_a) do
56
- <<-EOS.strip_heredoc.chomp
56
+ <<~EOS.chomp
57
57
  function FindProxyForURL(url, host) {
58
58
  return "DIRECT";
59
59
  }
@@ -61,7 +61,7 @@ RSpec.describe 'Compare to proxy.pac-files', type: :proxy_pac do
61
61
  end
62
62
 
63
63
  let(:file_b) do
64
- <<-EOS.strip_heredoc.chomp
64
+ <<~EOS.chomp
65
65
  function FindProxyForURL(url, host) {
66
66
  return "PROXY localhost:8080";
67
67
  }
@@ -5,7 +5,7 @@ require 'proxy_pac_rb/rspec'
5
5
  RSpec.describe 'Parse proxy.pac', type: :proxy_pac do
6
6
  describe 'Browse url' do
7
7
  subject do
8
- <<-EOS.strip_heredoc.chomp
8
+ <<~EOS.chomp
9
9
  function FindProxyForURL(url, host) {
10
10
  if (dnsDomainIs(host, 'localhost')) {
11
11
  return "DIRECT";
@@ -29,7 +29,7 @@ RSpec.describe 'Parse proxy.pac', type: :proxy_pac do
29
29
 
30
30
  describe 'Change time' do
31
31
  subject do
32
- <<-EOS.strip_heredoc.chomp
32
+ <<~EOS.chomp
33
33
  function FindProxyForURL(url, host) {
34
34
  if (weekdayRange("FRI", "SAT")) {
35
35
  return "PROXY localhost:8080";
@@ -59,7 +59,7 @@ RSpec.describe 'Parse proxy.pac', type: :proxy_pac do
59
59
 
60
60
  describe 'Change client ip' do
61
61
  subject do
62
- <<-EOS.strip_heredoc.chomp
62
+ <<~EOS.chomp
63
63
  function FindProxyForURL(url, host) {
64
64
  if ( myIpAddress() == '127.0.0.2' ) {
65
65
  return "PROXY localhost:8080";
@@ -4,14 +4,14 @@ require 'proxy_pac_rb/rspec'
4
4
 
5
5
  RSpec.describe 'Readability', type: [:proxy_pac, :aruba] do
6
6
  let(:content) do
7
- <<-EOS.strip_heredoc.chomp
7
+ <<~EOS.chomp
8
8
  function FindProxyForURL(url, host) {
9
9
  return "DIRECT";
10
10
  }
11
11
  EOS
12
12
  end
13
13
 
14
- context 'when is file' do
14
+ context 'when is file', type: :aruba do
15
15
  let(:root_path) { expand_path('.') }
16
16
 
17
17
  subject { 'proxy.pac' }
@@ -45,7 +45,7 @@ RSpec.describe 'Readability', type: [:proxy_pac, :aruba] do
45
45
  context 'when is string' do
46
46
  context 'it is always readable' do
47
47
  subject do
48
- <<-EOS.strip_heredoc.chomp
48
+ <<~EOS.chomp
49
49
  function FindProxyForURL(url, host) {
50
50
  return "DIRECT";
51
51
  }
@@ -4,7 +4,7 @@ require 'proxy_pac_rb/rspec'
4
4
 
5
5
  RSpec.describe 'Validity', type: :proxy_pac do
6
6
  subject do
7
- <<-EOS.strip_heredoc.chomp
7
+ <<~EOS.chomp
8
8
  function FindProxyForURL(url, host) {
9
9
  return "DIRECT";
10
10
  }
@@ -16,7 +16,7 @@ RSpec.describe 'Validity', type: :proxy_pac do
16
16
 
17
17
  context 'although it makes URI to raise invalid url error' do
18
18
  subject do
19
- <<-EOS.strip_heredoc.chomp
19
+ <<~EOS.chomp
20
20
  function FindProxyForURL(url, host) {
21
21
  // comment
22
22
  if ( dnsDomainIs ( host, "example.org") ) {
@@ -39,7 +39,7 @@ RSpec.describe 'Validity', type: :proxy_pac do
39
39
 
40
40
  context 'when contains gargabe' do
41
41
  subject do
42
- <<-EOS.strip_heredoc.chomp
42
+ <<~EOS.chomp
43
43
  function FindProxyForURL(url, host) {
44
44
  return $§"% "DIRECT";
45
45
  }
@@ -51,7 +51,7 @@ RSpec.describe 'Validity', type: :proxy_pac do
51
51
 
52
52
  context 'when undefined variable is referenced' do
53
53
  subject do
54
- <<-EOS.strip_heredoc.chomp
54
+ <<~EOS.chomp
55
55
  function FindProxyForURL(url, host) {
56
56
  return asdf;
57
57
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proxy_pac_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Günnewig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-25 00:00:00.000000000 Z
11
+ date: 2017-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -28,28 +28,34 @@ dependencies:
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '4.1'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '5.2'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '4.1'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.2'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: uglifier
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: 2.7.1
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - "~>"
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: 2.7.1
55
61
  - !ruby/object:Gem::Dependency
@@ -113,6 +119,7 @@ files:
113
119
  - ".rdebugrc"
114
120
  - ".rspec"
115
121
  - ".rubocop.yml"
122
+ - ".rubocop_todo.yml"
116
123
  - ".simplecov"
117
124
  - ".travis.yml"
118
125
  - ".yardopts"
@@ -260,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
267
  version: '0'
261
268
  requirements: []
262
269
  rubyforge_project:
263
- rubygems_version: 2.6.3
270
+ rubygems_version: 2.6.12
264
271
  signing_key:
265
272
  specification_version: 4
266
273
  summary: Compress, lint and parse proxy auto-config files from commandline, rack-compatible