bankrupt 0.1.0 → 1.0.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/.editorconfig +9 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +20 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +2 -0
- data/README.md +99 -0
- data/bankrupt.gemspec +26 -14
- data/lib/bankrupt.rb +20 -0
- data/lib/bankrupt/tasks.rb +89 -0
- data/lib/bankrupt/util.rb +32 -0
- data/lib/bankrupt/version.rb +17 -1
- metadata +117 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9881aed762cf1b7c364718161f3432a0dc0cadd735a56452f0783f915f8152ac
|
4
|
+
data.tar.gz: 342de62d65f9321e759d8f919942526ef2894cb995f134ea21aec08ea877b50a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d09c883f9d5244e44297a62442516043bad996cc557551bc2470e6b7b9d0a62cf86d93c07862f2fea6ffa361634fb9386ea48e675c301657cfad2a51937f6508
|
7
|
+
data.tar.gz: 2ea0da6c668536fa73de4ee9760762425ca7d7c733a6fe7efaffcb569ed2a798f8748f7c84c6cf4cdeabea8ace5fc22c6dbf106e265e7a5b9a305390655e5348
|
data/.editorconfig
ADDED
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
require: rubocop-rspec
|
3
|
+
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.3.7
|
6
|
+
|
7
|
+
Layout/ExtraSpacing:
|
8
|
+
AllowForAlignment: false
|
9
|
+
|
10
|
+
Metrics/BlockLength:
|
11
|
+
Max: 60
|
12
|
+
Exclude:
|
13
|
+
- 'spec/**/*_spec.rb'
|
14
|
+
|
15
|
+
Metrics/LineLength:
|
16
|
+
Exclude:
|
17
|
+
- 'spec/bankrupt/util_spec.rb'
|
18
|
+
|
19
|
+
Metrics/MethodLength:
|
20
|
+
Max: 15
|
21
|
+
|
22
|
+
RSpec/NestedGroups:
|
23
|
+
Max: 5
|
data/.travis.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
sudo: false
|
3
|
+
|
4
|
+
language: ruby
|
5
|
+
rvm:
|
6
|
+
- 2.3
|
7
|
+
- 2.4
|
8
|
+
- 2.5
|
9
|
+
|
10
|
+
before_install:
|
11
|
+
- gem update --system
|
12
|
+
- gem --version
|
13
|
+
|
14
|
+
script:
|
15
|
+
- bundle exec rubocop
|
16
|
+
- bundle exec rspec
|
17
|
+
- bundle exec yard
|
18
|
+
|
19
|
+
notifications:
|
20
|
+
email: false
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Bankrupt Change Log
|
2
|
+
|
3
|
+
This file keeps track of changes between releases for the bankrupt project
|
4
|
+
which adheres to [semantic versioning](https://semver.org).
|
5
|
+
|
6
|
+
## v1.0.0 2018-08-10
|
7
|
+
|
8
|
+
First stable release. Combines all old, internal code (rake tasks, helper
|
9
|
+
module) with new updates (modification for public release, utility methods).
|
10
|
+
|
11
|
+
* Add rake task for generating manifest files.
|
12
|
+
* Add rake task for uploading assets to AWS s3 bucket.
|
13
|
+
* Add utility method for parsing manifest files.
|
14
|
+
|
15
|
+
## v0.1.0 2018-07-25
|
16
|
+
|
17
|
+
Initial release.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,103 @@
|
|
1
1
|
# Bankrupt
|
2
2
|
|
3
|
+
[](https://rubygems.org/gems/bankrupt)
|
4
|
+
[](https://travis-ci.org/mfinelli/bankrupt)
|
5
|
+
[](https://coveralls.io/github/mfinelli/bankrupt?branch=master)
|
6
|
+
[](https://codeclimate.com/github/mfinelli/bankrupt/maintainability)
|
7
|
+
[](http://inch-ci.org/github/mfinelli/bankrupt)
|
8
|
+
|
3
9
|
A [sinatra](http://sinatrarb.com) helper to path assets during development and
|
4
10
|
production.
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
### Sinatra
|
15
|
+
|
16
|
+
Before loading your app set a few constants:
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
CDN = CONFIG[:cdn_url].to_s.freeze
|
20
|
+
|
21
|
+
require 'bankrupt/util'
|
22
|
+
ASSETS = Bankrupt::Util.parse_manifest(
|
23
|
+
File.join(APP_ROOT, 'tmp', 'assets.json')
|
24
|
+
).freeze
|
25
|
+
```
|
26
|
+
|
27
|
+
Then include bankrupt as a helper in your app:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
require 'bankrupt'
|
31
|
+
|
32
|
+
class App < Sinatra::Base
|
33
|
+
set :public_folder, File.join(APP_ROOT, 'public')
|
34
|
+
|
35
|
+
helpers Bankrupt
|
36
|
+
|
37
|
+
# TODO: there is a better way to do this
|
38
|
+
def initialize
|
39
|
+
@_assets = {}
|
40
|
+
super
|
41
|
+
end
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
### Rake
|
46
|
+
|
47
|
+
You can use the bundled rake task to generate the manifest file in the correct
|
48
|
+
format using any assets found in the `public` folder. You can also upload the
|
49
|
+
assets to an s3 bucket for use with cloudfront as a CDN.
|
50
|
+
|
51
|
+
Make sure to add the extra dependencies to your gemfile:
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
gem 'aws-sdk-s3'
|
55
|
+
gem 'mini_mime'
|
56
|
+
```
|
57
|
+
|
58
|
+
In your rakefile you'll need to define several constants and then include
|
59
|
+
the tasks:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
require 'bankrupt/tasks'
|
63
|
+
require 'logger'
|
64
|
+
|
65
|
+
APP_ROOT = __dir__.freeze unless defined?(APP_ROOT)
|
66
|
+
CDN_BUCKET = 'your-s3-bucket'.freeze unless defined?(CDN_BUCKET)
|
67
|
+
CDN_PREFIX = 'project'.freeze unless defined?(CDN_PREFIX)
|
68
|
+
|
69
|
+
unless defined?(VERSION)
|
70
|
+
VERSION = JSON.parse(File.read(File.join(APP_ROOT, 'package.json')),
|
71
|
+
symbolize_names: true).fetch(:version).freeze
|
72
|
+
end
|
73
|
+
|
74
|
+
LOG = Logger.new(STDOUT) unless defined?(LOG)
|
75
|
+
```
|
76
|
+
|
77
|
+
Finally set your default task:
|
78
|
+
|
79
|
+
```ruby
|
80
|
+
task default: if ENV['CLOUDBUILD'].to_s.casecmp?('true')
|
81
|
+
%i[bankrupt:cdn]
|
82
|
+
else
|
83
|
+
%i[bankrupt:manifest]
|
84
|
+
end
|
85
|
+
```
|
86
|
+
|
87
|
+
## License
|
88
|
+
|
89
|
+
```
|
90
|
+
Copyright 2018 Mario Finelli
|
91
|
+
|
92
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
93
|
+
you may not use this file except in compliance with the License.
|
94
|
+
You may obtain a copy of the License at
|
95
|
+
|
96
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
97
|
+
|
98
|
+
Unless required by applicable law or agreed to in writing, software
|
99
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
100
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
101
|
+
See the License for the specific language governing permissions and
|
102
|
+
limitations under the License.
|
103
|
+
```
|
data/bankrupt.gemspec
CHANGED
@@ -1,26 +1,38 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
5
|
+
require 'bankrupt/version'
|
4
6
|
|
5
7
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
8
|
+
spec.name = 'bankrupt'
|
9
|
+
spec.version = Bankrupt::VERSION
|
10
|
+
spec.authors = ['Mario Finelli']
|
11
|
+
spec.email = ['mario@finel.li']
|
10
12
|
|
11
|
-
spec.summary
|
12
|
-
spec.description
|
13
|
-
spec.homepage
|
14
|
-
spec.license
|
13
|
+
spec.summary = 'A sinatra helper to load assets locally and production.'
|
14
|
+
spec.description = 'Load files from local disk or from a CDN in production.'
|
15
|
+
spec.homepage = 'https://github.com/mfinelli/bankrupt'
|
16
|
+
spec.license = 'Apache-2.0'
|
17
|
+
spec.required_ruby_version = '>= 2.3.0'
|
15
18
|
|
16
|
-
spec.files
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
20
|
f.match(%r{^(test|spec|features)/})
|
18
21
|
end
|
19
22
|
|
20
|
-
spec.require_paths = [
|
23
|
+
spec.require_paths = ['lib']
|
21
24
|
|
25
|
+
# spec.add_dependency 'aws-sdk-s3', '~> 1.0'
|
26
|
+
# spec.add_dependency 'mini_mime', '~> 1.0'
|
22
27
|
spec.add_dependency 'slim', '~> 3.0'
|
23
28
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
29
|
+
spec.add_development_dependency 'bundler'
|
30
|
+
spec.add_development_dependency 'coveralls'
|
31
|
+
spec.add_development_dependency 'pry'
|
32
|
+
spec.add_development_dependency 'redcarpet'
|
33
|
+
spec.add_development_dependency 'rspec'
|
34
|
+
spec.add_development_dependency 'rubocop'
|
35
|
+
spec.add_development_dependency 'rubocop-rspec'
|
36
|
+
spec.add_development_dependency 'simplecov'
|
37
|
+
spec.add_development_dependency 'yard'
|
26
38
|
end
|
data/lib/bankrupt.rb
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2018 Mario Finelli
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'slim'
|
18
|
+
|
19
|
+
# Read assets from a local cache, using files on disk for development and
|
20
|
+
# from a CDN url if the CDN constant is set.
|
1
21
|
module Bankrupt
|
2
22
|
ASSET = Struct.new(:path, :sri).freeze
|
3
23
|
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2018 Mario Finelli
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'aws-sdk-s3'
|
18
|
+
require 'base64'
|
19
|
+
require 'digest/bubblebabble'
|
20
|
+
require 'fileutils'
|
21
|
+
require 'json'
|
22
|
+
require 'mini_mime'
|
23
|
+
require 'rake'
|
24
|
+
|
25
|
+
namespace :bankrupt do
|
26
|
+
desc 'Upload files specified in the manifest to s3/cloudfront'
|
27
|
+
task cdn: [:manifest] do
|
28
|
+
s3 = Aws::S3::Client.new(region: 'eu-west-1')
|
29
|
+
|
30
|
+
JSON.parse(File.read(File.join(APP_ROOT, 'tmp', 'assets.json')),
|
31
|
+
symbolize_names: true).each do |_key, asset|
|
32
|
+
r = s3.put_object(
|
33
|
+
bucket: CDN_BUCKET,
|
34
|
+
key: File.join(CDN_PREFIX,
|
35
|
+
[[
|
36
|
+
asset[:filename].split(
|
37
|
+
ex = File.extname(asset[:filename])
|
38
|
+
).first, asset[:md5]
|
39
|
+
].join('-'), ex].join),
|
40
|
+
body: File.read(f = File.join(APP_ROOT, 'public', asset[:filename])),
|
41
|
+
acl: 'private',
|
42
|
+
# content_md5: Base64.strict_encode64(asset[:md5]),
|
43
|
+
content_length: File.size(f),
|
44
|
+
content_type: MiniMime.lookup_by_filename(f).content_type,
|
45
|
+
server_side_encryption: 'AES256',
|
46
|
+
storage_class: 'STANDARD',
|
47
|
+
metadata: {
|
48
|
+
bankruptVersion: "v#{VERSION}"
|
49
|
+
}
|
50
|
+
)
|
51
|
+
|
52
|
+
LOG.info "Uploaded #{asset[:filename]} (#{r.etag})"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
desc 'Generate an asset manifest file with sums and hashes'
|
57
|
+
task :manifest do
|
58
|
+
manifest = {}
|
59
|
+
file_glob = '*.{css,jpg,js,png,svg}'
|
60
|
+
|
61
|
+
Dir.glob(File.join(APP_ROOT, 'public', file_glob)) do |file|
|
62
|
+
md5 = Digest::MD5.file(file).to_s
|
63
|
+
basename = File.basename(file)
|
64
|
+
|
65
|
+
# undo the hash that we have webpack insert (but is important so the
|
66
|
+
# final css uses the correct path)
|
67
|
+
if basename.match?(/\-#{md5}\.#{File.extname(file).delete('.')}$/)
|
68
|
+
File.rename(file,
|
69
|
+
(file = File.join(
|
70
|
+
File.dirname(file),
|
71
|
+
(basename = basename.gsub("-#{md5}", ''))
|
72
|
+
)))
|
73
|
+
end
|
74
|
+
|
75
|
+
manifest[basename] = {
|
76
|
+
filename: basename,
|
77
|
+
md5: md5,
|
78
|
+
babble: Digest::MD5.file(file).bubblebabble,
|
79
|
+
sri: 'sha384-' + Digest::SHA384.file(file).base64digest.to_s
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
LOG.info "Generated asset manifest with #{manifest.keys.size} entries."
|
84
|
+
|
85
|
+
FileUtils.mkdir_p(File.join(APP_ROOT, 'tmp'))
|
86
|
+
File.write(File.join(APP_ROOT, 'tmp', 'assets.json'),
|
87
|
+
JSON.generate(manifest))
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2018 Mario Finelli
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
module Bankrupt
|
18
|
+
# Utilities for working with asset manifest files.
|
19
|
+
class Util
|
20
|
+
# Parse the asset manifest
|
21
|
+
#
|
22
|
+
# @param path [String] path to the manifest
|
23
|
+
# @return [Hash] parsed manifest or empty hash on error
|
24
|
+
def self.parse_manifest(path)
|
25
|
+
Hash[JSON.parse(File.read(path)).map do |k, v|
|
26
|
+
[k.freeze, Hash[v.map { |l, b| [l.to_sym, b.freeze] }].freeze]
|
27
|
+
end].freeze
|
28
|
+
rescue StandardError
|
29
|
+
{}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/bankrupt/version.rb
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2018 Mario Finelli
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
1
17
|
module Bankrupt
|
2
|
-
VERSION = '
|
18
|
+
VERSION = '1.0.0'
|
3
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:
|
4
|
+
version: 1.0.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: 2018-
|
11
|
+
date: 2018-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: slim
|
@@ -28,44 +28,148 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
39
67
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redcarpet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
41
83
|
- !ruby/object:Gem::Dependency
|
42
84
|
name: rspec
|
43
85
|
requirement: !ruby/object:Gem::Requirement
|
44
86
|
requirements:
|
45
|
-
- - "
|
87
|
+
- - ">="
|
46
88
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
89
|
+
version: '0'
|
48
90
|
type: :development
|
49
91
|
prerelease: false
|
50
92
|
version_requirements: !ruby/object:Gem::Requirement
|
51
93
|
requirements:
|
52
|
-
- - "
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: simplecov
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
53
130
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: yard
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: Load files from local disk or from a CDN in production.
|
56
154
|
email:
|
57
155
|
- mario@finel.li
|
58
156
|
executables: []
|
59
157
|
extensions: []
|
60
158
|
extra_rdoc_files: []
|
61
159
|
files:
|
160
|
+
- ".editorconfig"
|
62
161
|
- ".gitignore"
|
63
162
|
- ".rspec"
|
163
|
+
- ".rubocop.yml"
|
164
|
+
- ".travis.yml"
|
165
|
+
- CHANGELOG.md
|
64
166
|
- Gemfile
|
65
167
|
- LICENSE
|
66
168
|
- README.md
|
67
169
|
- bankrupt.gemspec
|
68
170
|
- lib/bankrupt.rb
|
171
|
+
- lib/bankrupt/tasks.rb
|
172
|
+
- lib/bankrupt/util.rb
|
69
173
|
- lib/bankrupt/version.rb
|
70
174
|
homepage: https://github.com/mfinelli/bankrupt
|
71
175
|
licenses:
|
@@ -79,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
183
|
requirements:
|
80
184
|
- - ">="
|
81
185
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
186
|
+
version: 2.3.0
|
83
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
188
|
requirements:
|
85
189
|
- - ">="
|
@@ -90,5 +194,5 @@ rubyforge_project:
|
|
90
194
|
rubygems_version: 2.7.6
|
91
195
|
signing_key:
|
92
196
|
specification_version: 4
|
93
|
-
summary: A sinatra helper to load assets
|
197
|
+
summary: A sinatra helper to load assets locally and production.
|
94
198
|
test_files: []
|