assets_offline 0.0.3 → 0.0.4

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.
data/README.textile ADDED
@@ -0,0 +1,97 @@
1
+ assets_offline
2
+ ============
3
+
4
+ **Stable Version**: 0.0.3
5
+
6
+ This gem is specifically for Rails 3.1 projects that wish to use HTML5 and its offline cache feature with the Asset Pipeline.
7
+
8
+ Installing
9
+ ----------
10
+
11
+ Installation is straight forward simply add the gem to your gemfile and do a bundle install or on the terminal as follows
12
+
13
+ <pre>
14
+ $ gem install assets_offline
15
+ </pre>
16
+
17
+ <pre>
18
+ # Last Updated DD/MM/YYYY
19
+ application:
20
+ asset-cache:
21
+ - "application.css"
22
+ - "checkout.js"
23
+ - "favicon.ico"
24
+ - "favicon.png"
25
+ - "logo.png"
26
+ cache:
27
+ - "/dictionary.json"
28
+ fallback:
29
+ - "/prompts.json # /prompts.json"
30
+ - "/prices.json # /prices.json"
31
+ network:
32
+ - "/checkout/start_transaction.json"
33
+ - "/checkout/submit_transaction.json"
34
+ </pre>
35
+
36
+ Documentation
37
+ ----------------------
38
+
39
+ The yaml file "assets_offline.yml" needs to be added to the rails config folder. The yaml is split by route name. So the exmaple above can be added to html using "/assets_offline/application". You can add as many root nodes to the yaml as you require and just add the name to the path to get the generated file.
40
+
41
+ There are 6 sections to add files to in the Yaml
42
+ * asset-cache
43
+ * cache
44
+ * asset-fallback
45
+ * fallback
46
+ * network
47
+ * asset-network
48
+
49
+ Sections starting asset will use the rails asset_path() helper to get the file path. Non asset sections will use the path specified.
50
+ Fallback requires two paths which need to be seperated by a "#"
51
+
52
+ Manifest file generates a hash key in development this key is changed every 5 seconds so the cache will never function, in production the key is based on the hash of the yaml file. To force a cache refresh you must update the last updated value in the yaml file.
53
+
54
+ Roadmap
55
+ ---------
56
+ * Rake task to create YAML files
57
+ * Automating key update in production mode
58
+ * Adding directories to cache file rather than individual files
59
+
60
+
61
+ Changelog
62
+ ---------
63
+
64
+ **v0.0.3**
65
+
66
+ * Beta release
67
+
68
+
69
+ Credits
70
+ -------
71
+
72
+ * [broomyocymru](mailto: broomyocymru@hotmail.com)
73
+
74
+
75
+ License
76
+ -------
77
+
78
+ Copyright (c) 2011 broomyocymru
79
+
80
+ Permission is hereby granted, free of charge, to any person obtaining
81
+ a copy of this software and associated documentation files (the
82
+ "Software"), to deal in the Software without restriction, including
83
+ without limitation the rights to use, copy, modify, merge, publish,
84
+ distribute, sublicense, and/or sell copies of the Software, and to
85
+ permit persons to whom the Software is furnished to do so, subject to
86
+ the following conditions:
87
+
88
+ The above copyright notice and this permission notice shall be
89
+ included in all copies or substantial portions of the Software.
90
+
91
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
92
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
93
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
94
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
95
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
96
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
97
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,5 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 56
4
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/app
5
+ END
data/app/.svn/entries ADDED
@@ -0,0 +1,31 @@
1
+ 10
2
+
3
+ dir
4
+ 3734
5
+ https://svn.torex.com/svn/TorexNG/trunk/gems/assets_offline/app
6
+ https://svn.torex.com/svn/TorexNG
7
+
8
+
9
+
10
+ 2011-12-02T15:46:33.442319Z
11
+ 3734
12
+ Anthony.Broome
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 45178cb0-7fed-444c-b58d-06e1424a9ccb
28
+
29
+ controllers
30
+ dir
31
+
@@ -0,0 +1,11 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 68
4
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/app/controllers
5
+ END
6
+ assets_offline_controller.rb
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 97
10
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/app/controllers/assets_offline_controller.rb
11
+ END
@@ -0,0 +1,62 @@
1
+ 10
2
+
3
+ dir
4
+ 3734
5
+ https://svn.torex.com/svn/TorexNG/trunk/gems/assets_offline/app/controllers
6
+ https://svn.torex.com/svn/TorexNG
7
+
8
+
9
+
10
+ 2011-12-02T15:46:33.442319Z
11
+ 3734
12
+ Anthony.Broome
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 45178cb0-7fed-444c-b58d-06e1424a9ccb
28
+
29
+ assets_offline_controller.rb
30
+ file
31
+
32
+
33
+
34
+
35
+ 2011-12-02T14:38:49.402396Z
36
+ fa45977fe7a847e4fa4be00ea5d80b3d
37
+ 2011-12-02T15:46:33.442319Z
38
+ 3734
39
+ Anthony.Broome
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ 2490
62
+
@@ -0,0 +1,85 @@
1
+ require 'yaml'
2
+
3
+ class AssetsOfflineController < ActionController::Base
4
+
5
+ def show
6
+ config = YAML.load_file("#{Rails.root}/config/assets_offline.yml")
7
+ root = config[params[:id]]
8
+
9
+ body = "# GENERATED USING ASSET_OFFLINE\n"
10
+ body << "# Mode: #{Rails.env} \n"
11
+ body << "# #{generate_key()} \n\n"
12
+
13
+ body << "CACHE MANIFEST \n"
14
+ # CACHE SECTION
15
+ if !root["asset-cache"].blank? and root["asset-cache"].count() > 0
16
+ root["asset-cache"].each do |asset_name|
17
+ body << "#{view_context.asset_path(asset_name)}\n"
18
+ end
19
+ end
20
+ if !root["cache"].blank? and root["cache"].count() > 0
21
+ root["cache"].each do |asset_name|
22
+ body << "#{asset_name}\n"
23
+ end
24
+ end
25
+ body << "\n"
26
+
27
+ # NETWORK SECTION
28
+ body << "NETWORK:\n"
29
+ body << "# Resources where a connection is required \n"
30
+ if !root["asset-network"].blank? and root["asset-network"].count() > 0
31
+ root["asset-network"].each do |asset_name|
32
+ body << "#{view_context.asset_path(asset_name)}\n"
33
+ end
34
+ end
35
+ if !root["network"].blank? and root["network"].count() > 0
36
+ root["network"].each do |asset_name|
37
+ body << "#{asset_name}\n"
38
+ end
39
+ end
40
+ body << "\n"
41
+
42
+ #FALLBACK SECTION
43
+ body << "FALLBACK:\n"
44
+ body << "# Resources where a connection is used if available \n"
45
+ if !root["asset-fallback"].blank? and root["asset-fallback"].count() > 0
46
+ root["asset-fallback"].each do |asset_name|
47
+ asset_name_part = asset_name.split("#")
48
+ body << "#{view_context.asset_path(asset_name_part[0].strip())} #{view_context.asset_path(asset_name_part[1].strip())}\n"
49
+ end
50
+ end
51
+ if !root["fallback"].blank? and root["fallback"].count() > 0
52
+ root["fallback"].each do |asset_name|
53
+ asset_name_part = asset_name.split("#")
54
+ body << "#{asset_name_part[0].strip()} #{asset_name_part[1].strip()}\n"
55
+ end
56
+ end
57
+ body << "\n"
58
+
59
+ headers['Content-Type'] = 'text/cache-manifest'
60
+ render :text => body, :layout => false
61
+ end
62
+
63
+ private
64
+
65
+ def generate_key
66
+ if Rails.env.production?
67
+ production_key
68
+ else
69
+ development_key
70
+ end
71
+
72
+ end
73
+
74
+ def production_key
75
+ #Invalidate production by updating the datetime stamp in the comment
76
+ path = "#{Rails.root}/config/assets_offline.yml"
77
+ Digest::SHA2.hexdigest(File.read(path)) if ::File.file?(path)
78
+ end
79
+
80
+ def development_key
81
+ now = Time.now.to_i - Time.now.to_i % 5
82
+ Digest::SHA2.hexdigest(now.to_s)
83
+ end
84
+
85
+ end
@@ -6,12 +6,12 @@ class AssetsOfflineController < ActionController::Base
6
6
  config = YAML.load_file("#{Rails.root}/config/assets_offline.yml")
7
7
  root = config[params[:id]]
8
8
 
9
- body = "# GENERATED USING ASSET_OFFLINE\n"
9
+ body = "CACHE MANIFEST \n"
10
+ body << "# GENERATED USING ASSET_OFFLINE\n"
10
11
  body << "# Mode: #{Rails.env} \n"
11
12
  body << "# #{generate_key()} \n\n"
12
-
13
- body << "CACHE MANIFEST \n"
14
13
  # CACHE SECTION
14
+ body << "CACHE:\n"
15
15
  if !root["asset-cache"].blank? and root["asset-cache"].count() > 0
16
16
  root["asset-cache"].each do |asset_name|
17
17
  body << "#{view_context.asset_path(asset_name)}\n"
@@ -0,0 +1,11 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 59
4
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/config
5
+ END
6
+ routes.rb
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 69
10
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/config/routes.rb
11
+ END
@@ -0,0 +1,62 @@
1
+ 10
2
+
3
+ dir
4
+ 3734
5
+ https://svn.torex.com/svn/TorexNG/trunk/gems/assets_offline/config
6
+ https://svn.torex.com/svn/TorexNG
7
+
8
+
9
+
10
+ 2011-12-02T15:46:33.442319Z
11
+ 3734
12
+ Anthony.Broome
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 45178cb0-7fed-444c-b58d-06e1424a9ccb
28
+
29
+ routes.rb
30
+ file
31
+
32
+
33
+
34
+
35
+ 2011-12-02T14:39:29.970397Z
36
+ 1b9a1db281aa1d112beb8340d29ead47
37
+ 2011-12-02T15:46:33.442319Z
38
+ 3734
39
+ Anthony.Broome
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ 66
62
+
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ resources :assets_offline
3
+ end
@@ -0,0 +1,11 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 56
4
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/lib
5
+ END
6
+ assets_offline.rb
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 74
10
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/lib/assets_offline.rb
11
+ END
data/lib/.svn/entries ADDED
@@ -0,0 +1,65 @@
1
+ 10
2
+
3
+ dir
4
+ 3734
5
+ https://svn.torex.com/svn/TorexNG/trunk/gems/assets_offline/lib
6
+ https://svn.torex.com/svn/TorexNG
7
+
8
+
9
+
10
+ 2011-12-02T15:46:33.442319Z
11
+ 3734
12
+ Anthony.Broome
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 45178cb0-7fed-444c-b58d-06e1424a9ccb
28
+
29
+ assets_offline
30
+ dir
31
+
32
+ assets_offline.rb
33
+ file
34
+
35
+
36
+
37
+
38
+ 2011-12-02T15:12:09.590444Z
39
+ 7f49316f1e14bcd77b955b39158c6a6d
40
+ 2011-12-02T15:46:33.442319Z
41
+ 3734
42
+ Anthony.Broome
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+ 145
65
+
@@ -0,0 +1,6 @@
1
+ require "assets_offline/version"
2
+
3
+ module AssetsOffline
4
+ class Engine < Rails::Engine
5
+ end if defined?(Rails) && Rails::VERSION::MAJOR == 3
6
+ end
@@ -0,0 +1,11 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 71
4
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/lib/assets_offline
5
+ END
6
+ version.rb
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 82
10
+ /svn/TorexNG/!svn/ver/3734/trunk/gems/assets_offline/lib/assets_offline/version.rb
11
+ END
@@ -0,0 +1,62 @@
1
+ 10
2
+
3
+ dir
4
+ 3734
5
+ https://svn.torex.com/svn/TorexNG/trunk/gems/assets_offline/lib/assets_offline
6
+ https://svn.torex.com/svn/TorexNG
7
+
8
+
9
+
10
+ 2011-12-02T15:46:33.442319Z
11
+ 3734
12
+ Anthony.Broome
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 45178cb0-7fed-444c-b58d-06e1424a9ccb
28
+
29
+ version.rb
30
+ file
31
+
32
+
33
+
34
+
35
+ 2011-12-02T15:16:44.894451Z
36
+ c47858446fefbb4d8ef552e650df25ea
37
+ 2011-12-02T15:46:33.442319Z
38
+ 3734
39
+ Anthony.Broome
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ 45
62
+
@@ -0,0 +1,3 @@
1
+ module AssetsOffline
2
+ VERSION = "0.0.3"
3
+ end
@@ -1,3 +1,3 @@
1
1
  module AssetsOffline
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assets_offline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-02 00:00:00.000000000Z
12
+ date: 2011-12-05 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: Rails 3.1 offline cache manifest view
15
15
  email:
@@ -20,14 +20,27 @@ extra_rdoc_files: []
20
20
  files:
21
21
  - .gitignore
22
22
  - Gemfile
23
- - README
24
- - README~
23
+ - README.textile
25
24
  - Rakefile
25
+ - app/.svn/all-wcprops
26
+ - app/.svn/entries
27
+ - app/controllers/.svn/all-wcprops
28
+ - app/controllers/.svn/entries
29
+ - app/controllers/.svn/text-base/assets_offline_controller.rb.svn-base
26
30
  - app/controllers/assets_offline_controller.rb
27
31
  - assets_offline.gemspec
32
+ - config/.svn/all-wcprops
33
+ - config/.svn/entries
34
+ - config/.svn/text-base/routes.rb.svn-base
28
35
  - config/routes.rb
29
36
  - init.rb
37
+ - lib/.svn/all-wcprops
38
+ - lib/.svn/entries
39
+ - lib/.svn/text-base/assets_offline.rb.svn-base
30
40
  - lib/assets_offline.rb
41
+ - lib/assets_offline/.svn/all-wcprops
42
+ - lib/assets_offline/.svn/entries
43
+ - lib/assets_offline/.svn/text-base/version.rb.svn-base
31
44
  - lib/assets_offline/version.rb
32
45
  homepage: ''
33
46
  licenses: []
data/README DELETED
@@ -1 +0,0 @@
1
- TODO
data/README~ DELETED
File without changes