triboelectric 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f76f32cb162ecb4e764aa864b26b8ad089fa54bc
4
+ data.tar.gz: 1d55a2a9c4e57de5b5a83ec8d72db6df8a9eb7a5
5
+ SHA512:
6
+ metadata.gz: 7146c2136b11d81b102f51c7dad34ffbafc8a42e9530de821e67eb950afd4aaa30594c0e188885398ab2a6255c26891a697b571a8da0910aaab2e9f59d98c17b
7
+ data.tar.gz: 92e00be5056105028fc40a9f2e8b026233b1be60dd073497d13e7a9b847777cc91ebcbf145ff795a8eac5b2272d032d8bad0010f42ebf1ce56643f2f465fa1fa
@@ -0,0 +1,21 @@
1
+ # Triboelectric
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ ```ruby
8
+ gem 'triboelectric'
9
+ ```
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ ## Contributing
16
+
17
+ Bug reports and pull requests are welcome on GitHub at https://github.com/reevoo/triboelectric. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
18
+
19
+ ## License
20
+
21
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,5 @@
1
+ require "triboelectric/version"
2
+
3
+ module Triboelectric
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,43 @@
1
+ require "rack"
2
+
3
+ module Triboelectric
4
+ class Assets
5
+ def initialize(app, options={})
6
+ @app = app
7
+ @urls = options[:urls] || []
8
+ @bucket = options[:bucket]
9
+ @root = options[:root]
10
+ end
11
+
12
+ def call(env)
13
+ path = env[Rack::PATH_INFO]
14
+ response = @app.call(env)
15
+ return response unless active?(path, response)
16
+
17
+ if (object = get_object(path))
18
+ response[1][Rack::CONTENT_TYPE] = object.content_type
19
+ response[1][Rack::CONTENT_LENGTH] = object.content_length
20
+ response[2] = object.body
21
+ return response
22
+ end
23
+
24
+ response
25
+ end
26
+
27
+ private
28
+
29
+ def get_object(path)
30
+ obj_path = path.dup
31
+ obj_path = File.join(@root, obj_path) if @root
32
+ @bucket.object(obj_path).get
33
+ rescue Aws::S3::Errors::NoSuchKey
34
+ nil
35
+ end
36
+
37
+ def active?(path, response)
38
+ return unless @bucket
39
+ return unless response.first == 404
40
+ @urls.any? { |url| path.index(url) == 0 }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,3 @@
1
+ module Triboelectric
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: triboelectric
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ed Robinson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-03-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ description:
70
+ email:
71
+ - ed@reevoo.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - README.md
77
+ - lib/triboelectric.rb
78
+ - lib/triboelectric/assets.rb
79
+ - lib/triboelectric/version.rb
80
+ homepage: https://github.com/reevoo/triboelectric
81
+ licenses:
82
+ - MIT
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.6.8
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Manage assets across rolling deploys
104
+ test_files: []