local_pac 0.0.5 → 0.0.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.
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 TODO: Write your name
1
+ Copyright (c) 2014 Dennis Günnewig, VR Netze GmbH
2
2
 
3
3
  MIT License
4
4
 
@@ -2,6 +2,8 @@ require 'sinatra'
2
2
  require 'fileutils'
3
3
  require 'logger'
4
4
 
5
+ require 'active_support/cache'
6
+
5
7
  require 'local_pac/logger'
6
8
  require 'local_pac/version'
7
9
  require 'local_pac/file_server'
@@ -1,20 +1,32 @@
1
1
  module LocalPac
2
2
  class PacManager
3
+
4
+ private
5
+
6
+ attr_reader :cache, :null_file, :paths, :creator
7
+
8
+ public
9
+
3
10
  def initialize(paths = default_paths, creator = PacFile)
4
11
  @paths = Array(paths)
5
12
  @creator = creator
13
+ @cache = ActiveSupport::Cache::MemoryStore.new
14
+ @null_file = proc { NullPacFile.new }
6
15
  end
7
16
 
8
17
  def find(name)
9
- default = proc { NullPacFile.new }
10
- pac_files.find(default) { |f| f.name == File.basename(name, '.pac').to_sym }
18
+ name = File.basename(name, '.pac').to_sym
19
+
20
+ cache.fetch(name) do
21
+ pac_files.find(null_file) { |f| f.name == name }
22
+ end
11
23
  end
12
24
 
13
25
  private
14
26
 
15
27
  def pac_files
16
- @paths.reduce([]) do |memo, path|
17
- memo.concat Dir.glob(File.join(path, '*.pac')).collect { |f| @creator.new(f) }
28
+ paths.reduce([]) do |memo, path|
29
+ memo.concat Dir.glob(File.join(path, '*.pac')).collect { |f| creator.new(f) }
18
30
  end
19
31
  end
20
32
 
@@ -1,4 +1,4 @@
1
1
  #main LocalPac
2
2
  module LocalPac
3
- VERSION = '0.0.5'
3
+ VERSION = '0.0.6'
4
4
  end
@@ -22,4 +22,5 @@ EOS
22
22
 
23
23
  spec.add_runtime_dependency 'sinatra'
24
24
  spec.add_runtime_dependency 'thor'
25
+ spec.add_runtime_dependency 'activesupport'
25
26
  end
@@ -1,7 +1,7 @@
1
1
  # Maintainer: Max Meyer <dev@fedux.org>
2
2
  pkgname=local_pac
3
- pkgver=0.0.4
4
- pkgrel=1
3
+ pkgver=0.0.5
4
+ pkgrel=2
5
5
  pkgdesc="local pacfile serving server"
6
6
  arch=(i686 x86_64)
7
7
  url="https://github.com/dg-vrnetze/${pkgname}"
@@ -10,7 +10,7 @@ depends=(ruby)
10
10
  makedepends=(rubygems filegen)
11
11
  source=(http://gems.rubyforge.org/gems/$pkgname-$pkgver.gem)
12
12
  noextract=($pkgname-$pkgver.gem)
13
- sha256sums=('2f49eb7aee0dcdc38a4b715cf889ce9303a9a50a367fbb4f304d4dff96f3bbc8')
13
+ sha256sums=('aa2edfd0ae50bced4b9f53ad60262a82dd2d016ceba2895e6f5bdbe1e9aea0c1')
14
14
 
15
15
  package() {
16
16
  cd "$srcdir"
@@ -30,10 +30,13 @@ package() {
30
30
 
31
31
  chmod a+x ${pkgdir}/${_bin_dir}/${pkgname}
32
32
  rm -r ${pkgdir}/${_library_dir}/cache
33
+ rm -r ${pkgdir}/${_library_dir}/{build_info,doc}
33
34
 
34
- install ${pkgdir}/$_share_dir/systemd/${pkgname}.service ${pkgdir}/$_systemd_dir
35
- install ${pkgdir}/$_share_dir/systemd/${pkgname}@.service ${pkgdir}/$_systemd_dir
36
- install ${pkgdir}/$_share_dir/systemd/${pkgname}.socket ${pkgdir}/$_systemd_dir
35
+ install -D -m644 ${pkgdir}/$_share_dir/systemd/${pkgname}.service ${pkgdir}/$_systemd_dir
36
+ install -D -m644 ${pkgdir}/$_share_dir/systemd/${pkgname}@.service ${pkgdir}/$_systemd_dir
37
+ install -D -m644 ${pkgdir}/$_share_dir/systemd/${pkgname}.socket ${pkgdir}/$_systemd_dir
38
+
39
+ install -D -m644 ${pkgdir}${_share_dir}/../LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
37
40
  }
38
41
 
39
42
  # vim:set ts=2 sw=2 et:
@@ -18,5 +18,19 @@ describe PacManager do
18
18
  file = manager.find('file1')
19
19
  expect(file.nil?).to be_true
20
20
  end
21
+
22
+ it 'caches files', :focus do
23
+ directory = create_directory 'pac_files'
24
+ file_path = create_file 'pac_files/file1.pac'
25
+
26
+ manager = PacManager.new(directory)
27
+ file = manager.find('file1')
28
+ expect(file.path).to eq(file_path)
29
+
30
+ delete_file 'pac_files/file1.pac'
31
+
32
+ file = manager.find('file1')
33
+ expect(file.path).to eq(file_path)
34
+ end
21
35
  end
22
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: local_pac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: activesupport
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  description: ! 'This gem helps you to serve proxy.pacs locallly
47
63
 
48
64
  '