precacher 0.0.1

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/precacher.rb +25 -0
  3. metadata +59 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 610acc6ad4a887a3b836cb58da0d124d7ed47e16
4
+ data.tar.gz: 91ce673d58db1b8385a26eeb7277f80aa6bf379e
5
+ SHA512:
6
+ metadata.gz: 41bbfc6160b03e18e7e3dae05f1c5380cc3294251ec60283b1743b981dc674b6339c167bf0fb3a197b649b830556b760202ae25e7b83518aefaf78adc8e4d30e
7
+ data.tar.gz: 3b4a0bba3c3d5c1a90fa17c99d8de6c6ac451197a3cb78eda7ee60b42414c7ebf0b170f11cb8a59bcc7664f14138d746a1f391392bce88e7fc86942110ae0c07
@@ -0,0 +1,25 @@
1
+ require 'digest/md5'
2
+
3
+ class Precacher
4
+
5
+ def self.file_cache(filename, &blk)
6
+ # get hash of file if it does exist.
7
+ hash_pre = Digest::MD5.file filename if File.exists?(filename)
8
+
9
+ # run blk # TODO pass in file stream type object???
10
+ data = blk.call()
11
+
12
+ # get hash of new data to compare
13
+ hash_post = Digest::MD5.hexdigest data
14
+
15
+ if hash_post.to_s != hash_pre.to_s
16
+ File.open(filename, 'w') do |f|
17
+ f << data
18
+ end
19
+ true
20
+ else
21
+ false
22
+ end
23
+ end
24
+
25
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: precacher
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Chris Reister
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ description: Precacher make sit simple to keep static files up to data with dynamic
28
+ data that could change minute to minute.
29
+ email: chris@chrisreister.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/precacher.rb
35
+ homepage: https://github.com/chrisftw/precacher
36
+ licenses:
37
+ - MIT
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.4.2
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: Update static files with dynamic data.
59
+ test_files: []