bankrupt 1.0.1 → 1.1.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 +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +4 -0
- data/README.md +51 -0
- data/lib/bankrupt.rb +27 -1
- data/lib/bankrupt/version.rb +2 -2
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dca115afeb3234502a119751813a7ae7e0d17ea19a7f0051386544211998eed
|
4
|
+
data.tar.gz: c72b72acc9233dbd5e096896c42649953d3c1bc8facf2ceff649d7d5eb6deae7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3242ca78af837ea8979f1ad3b0ca329a88f1fe10716fa18ad0607173c0648090b1b3824fc58a087b4723277b1f6f1aa7b02806b3015f3ce1c51b054b8895cbf2
|
7
|
+
data.tar.gz: 7c9c0c97bb5d5ccf6b7c25d15053d8ea932d3ee6b7f8d728ef51e7e3b117f4003267bbc67ef6aa636d3bc76e7d38cb8b2d38771dce4e07152c8f1e94f070dd92
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
This file keeps track of changes between releases for the bankrupt project
|
4
4
|
which adheres to [semantic versioning](https://semver.org).
|
5
5
|
|
6
|
+
## v1.1.0 2019-06-05
|
7
|
+
|
8
|
+
Add support for `img` tags along with the ability to add other attributes.
|
9
|
+
|
6
10
|
## v1.0.1 2018-12-30
|
7
11
|
|
8
12
|
Add support for slim v4.
|
data/README.md
CHANGED
@@ -42,6 +42,29 @@ class App < Sinatra::Base
|
|
42
42
|
end
|
43
43
|
```
|
44
44
|
|
45
|
+
Now, in your views you can use the helper methods:
|
46
|
+
|
47
|
+
```slim
|
48
|
+
== stylesheet('app.css')
|
49
|
+
```
|
50
|
+
|
51
|
+
In development mode it will load app.css from your local public directory but
|
52
|
+
in production it will load the CDN URL and include integrity hashes and
|
53
|
+
anonymous crossorigin attributes.
|
54
|
+
|
55
|
+
There's also a helper for `script` tags:
|
56
|
+
|
57
|
+
```slim
|
58
|
+
== javascript('app.js')
|
59
|
+
```
|
60
|
+
|
61
|
+
For images you can optionally pass a hash of options to apply additional
|
62
|
+
attributes to the image:
|
63
|
+
|
64
|
+
```slim
|
65
|
+
== image(img.jpg, alt: 'img')
|
66
|
+
```
|
67
|
+
|
45
68
|
### Rake
|
46
69
|
|
47
70
|
You can use the bundled rake task to generate the manifest file in the correct
|
@@ -84,6 +107,34 @@ task default: if ENV['CLOUDBUILD'].to_s.casecmp?('true')
|
|
84
107
|
end
|
85
108
|
```
|
86
109
|
|
110
|
+
### Rspec
|
111
|
+
|
112
|
+
If you're testing your app with rspec or similar you need to stub the `CDN` and
|
113
|
+
`ASSETS` constants.
|
114
|
+
|
115
|
+
```ruby
|
116
|
+
require 'rack/test'
|
117
|
+
|
118
|
+
RSpec.describe App do
|
119
|
+
include Rack::Test::Methods
|
120
|
+
|
121
|
+
before do
|
122
|
+
stub_const('CDN', '')
|
123
|
+
stub_const('ASSETS', {})
|
124
|
+
end
|
125
|
+
|
126
|
+
let(:app) { described_class }
|
127
|
+
|
128
|
+
describe 'GET /' do
|
129
|
+
before { get '/' }
|
130
|
+
|
131
|
+
it 'returns a 200' do
|
132
|
+
expect(last_response).to be_ok
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
```
|
137
|
+
|
87
138
|
## License
|
88
139
|
|
89
140
|
```
|
data/lib/bankrupt.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright 2018 Mario Finelli
|
3
|
+
# Copyright 2018-2019 Mario Finelli
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
6
|
# you may not use this file except in compliance with the License.
|
@@ -21,6 +21,14 @@ require 'slim'
|
|
21
21
|
module Bankrupt
|
22
22
|
ASSET = Struct.new(:path, :sri).freeze
|
23
23
|
|
24
|
+
IMAGE_CDN = <<~SLIM
|
25
|
+
img crossorigin='anonymous' src=path
|
26
|
+
SLIM
|
27
|
+
|
28
|
+
IMAGE_LOCAL = <<~SLIM
|
29
|
+
img src=path
|
30
|
+
SLIM
|
31
|
+
|
24
32
|
JAVASCRIPT_CDN = <<~SLIM
|
25
33
|
script crossorigin='anonymous' integrity=sri src=path
|
26
34
|
SLIM
|
@@ -37,6 +45,24 @@ module Bankrupt
|
|
37
45
|
link href=path rel='stylesheet'
|
38
46
|
SLIM
|
39
47
|
|
48
|
+
# Return an image html tag for the asset.
|
49
|
+
#
|
50
|
+
# @todo we compute the options on every call, we should do the
|
51
|
+
# lookup first and short circuit
|
52
|
+
# @todo lookup needs to be based on path _and_ options so that the
|
53
|
+
# same asset can be used in multiple places with e.g. different
|
54
|
+
# css classes applied
|
55
|
+
#
|
56
|
+
# @param path [String] relative (from public) path to the img
|
57
|
+
# @param options [Hash] additional attributes to add to the img tag
|
58
|
+
# @return [String] image html element
|
59
|
+
def image(path, options = {})
|
60
|
+
o = Hash(options).map { |k, v| "#{k}='#{v}'" }.join(' ')
|
61
|
+
|
62
|
+
asset_html(path, [IMAGE_CDN.chomp, o].join(' '),
|
63
|
+
[IMAGE_LOCAL.chomp, o].join(' '))
|
64
|
+
end
|
65
|
+
|
40
66
|
# Return a javascript html tag for the asset.
|
41
67
|
#
|
42
68
|
# @param path [String] relative (from public) path to the js
|
data/lib/bankrupt/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright 2018 Mario Finelli
|
3
|
+
# Copyright 2018-2019 Mario Finelli
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
6
|
# you may not use this file except in compliance with the License.
|
@@ -15,5 +15,5 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
17
|
module Bankrupt
|
18
|
-
VERSION = '1.0
|
18
|
+
VERSION = '1.1.0'
|
19
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bankrupt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Finelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: slim
|
@@ -196,8 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
196
|
- !ruby/object:Gem::Version
|
197
197
|
version: '0'
|
198
198
|
requirements: []
|
199
|
-
|
200
|
-
rubygems_version: 2.7.7
|
199
|
+
rubygems_version: 3.0.3
|
201
200
|
signing_key:
|
202
201
|
specification_version: 4
|
203
202
|
summary: A sinatra helper to load assets locally and production.
|