roger_themes 0.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 +7 -0
- data/.gitignore +14 -0
- data/.rubocop +3 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +71 -0
- data/Rakefile +16 -0
- data/lib/roger_themes.rb +9 -0
- data/lib/roger_themes/middleware.rb +51 -0
- data/lib/roger_themes/processor.rb +83 -0
- data/lib/roger_themes/shared_folders.rb +32 -0
- data/lib/roger_themes/version.rb +3 -0
- data/lib/roger_themes/xc_finalizer.rb +37 -0
- data/roger_themes.gemspec +27 -0
- data/test/middleware_test.rb +25 -0
- data/test/shared_folders_test.rb +30 -0
- data/test/test_helper.rb +5 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bce0af5e073b8ec748ab99636295b43d8764c2e8
|
4
|
+
data.tar.gz: 45a91b6a5d59d925ae3ef4e969de0225dbb61bb4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 723ed580109365f22b364214a8e238ff181fe4a2845270e4d830e21eb35ffffd5714da1865e85b12867fd7c39cdecbfda8f687f5c5d12feb4033df9cdfedbe7d
|
7
|
+
data.tar.gz: c9f3d9cdab3a033c21d8448be76e0114374d9dee74143814c5ddf44f611c9f48b07768311b3b475ca95a44010b2c567f7a2a129f5ff904ba6ab8cd8ac69255b4
|
data/.gitignore
ADDED
data/.rubocop
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Edwin van der Graaf
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# RogerThemes
|
2
|
+
|
3
|
+
Create themes and release them as static site.
|
4
|
+
|
5
|
+
## Themes setup
|
6
|
+
|
7
|
+
Your themes live in the themes dir, it will release all pages for your themes
|
8
|
+
into the theme dir.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Add this line to your application's Gemfile:
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem 'roger_themes'
|
16
|
+
```
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
$ bundle
|
21
|
+
|
22
|
+
|
23
|
+
## Todo
|
24
|
+
|
25
|
+
- [] Add tests
|
26
|
+
- [] Complete documentation (especially on how themes work by default)
|
27
|
+
- [] Add theme selector views for usage in table of content
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
Include the middleware and processor in the `serve` and `release` block:
|
32
|
+
|
33
|
+
```
|
34
|
+
mockup.serve do |s|
|
35
|
+
s.use RogerThemes::Middleware
|
36
|
+
# ...
|
37
|
+
end
|
38
|
+
```
|
39
|
+
|
40
|
+
```
|
41
|
+
mockup.release do |r|
|
42
|
+
# ..
|
43
|
+
r.use :themes
|
44
|
+
|
45
|
+
# Finalise your zips for XC
|
46
|
+
r.finalize RogerThemes::XcFinalizer
|
47
|
+
```
|
48
|
+
|
49
|
+
## Changelog
|
50
|
+
|
51
|
+
### v0.1.0
|
52
|
+
|
53
|
+
* `:shared_folders` now also takes a hash to enable nested theme folders
|
54
|
+
```
|
55
|
+
{
|
56
|
+
shared_folders: {"images" => "rel/images"}
|
57
|
+
}
|
58
|
+
```
|
59
|
+
* Remove `rel` from shared_folders
|
60
|
+
|
61
|
+
### v0.0.1 (never released)
|
62
|
+
|
63
|
+
* Initial release
|
64
|
+
|
65
|
+
## Contributing
|
66
|
+
|
67
|
+
1. Fork it ( https://github.com/digitpaint/roger_themes/fork )
|
68
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
69
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
70
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
71
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
|
+
require "rubocop/rake_task"
|
4
|
+
|
5
|
+
task default: [:test, :rubocop]
|
6
|
+
|
7
|
+
desc "Run rubocop"
|
8
|
+
task :rubocop do
|
9
|
+
RuboCop::RakeTask.new
|
10
|
+
end
|
11
|
+
|
12
|
+
Rake::TestTask.new do |t|
|
13
|
+
t.libs << "test"
|
14
|
+
t.test_files = FileList["test/*_test.rb"]
|
15
|
+
t.verbose = false
|
16
|
+
end
|
data/lib/roger_themes.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/shared_folders"
|
2
|
+
|
3
|
+
module RogerThemes
|
4
|
+
class Middleware
|
5
|
+
def initialize(app, options = {})
|
6
|
+
@app = app
|
7
|
+
|
8
|
+
defaults = {
|
9
|
+
default_theme: "default",
|
10
|
+
shared_folders: ["images", "fonts"]
|
11
|
+
}
|
12
|
+
|
13
|
+
@options = defaults.update(options)
|
14
|
+
@shared_folders = SharedFolders.new(@options[:shared_folders])
|
15
|
+
end
|
16
|
+
|
17
|
+
def call(env)
|
18
|
+
path = ::Rack::Utils.unescape(env["PATH_INFO"])
|
19
|
+
r = /\A\/themes\/([^\/]+)\/theme\//
|
20
|
+
if theme = path[r,1]
|
21
|
+
orig_path = env["PATH_INFO"].dup
|
22
|
+
env["SITE_THEME"] = theme
|
23
|
+
env["PATH_INFO"].sub!(r,"")
|
24
|
+
else
|
25
|
+
# Set default theme
|
26
|
+
env["SITE_THEME"] = @options[:default_theme]
|
27
|
+
end
|
28
|
+
|
29
|
+
ret = @app.call(env)
|
30
|
+
|
31
|
+
# Fallback for shared images
|
32
|
+
unless ret[0] == 200
|
33
|
+
|
34
|
+
shared_path = @shared_folders.local_to_shared_path(path)
|
35
|
+
|
36
|
+
if shared_path
|
37
|
+
# Store so we can restore later
|
38
|
+
orig_path = env["PATH_INFO"].dup
|
39
|
+
env["PATH_INFO"] = shared_path
|
40
|
+
end
|
41
|
+
|
42
|
+
ret = @app.call(env)
|
43
|
+
|
44
|
+
# Restore path so we are nice with everybody else
|
45
|
+
env["PATH_INFO"] = orig_path
|
46
|
+
end
|
47
|
+
|
48
|
+
ret
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require "roger/release/processors/mockup"
|
2
|
+
|
3
|
+
module RogerThemes
|
4
|
+
class Processor < Roger::Release::Processors::Base
|
5
|
+
def initialize(options = {})
|
6
|
+
|
7
|
+
defaults = {
|
8
|
+
default_theme: 'default',
|
9
|
+
excludes: [
|
10
|
+
/\A_doc\/.*/,
|
11
|
+
/\Athemes\/.*/,
|
12
|
+
"index.html"
|
13
|
+
],
|
14
|
+
shared_folders: ["images", "fonts"]
|
15
|
+
}
|
16
|
+
|
17
|
+
@options = defaults.update(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def call(release, options)
|
21
|
+
@options = @options.dup.update(options)
|
22
|
+
|
23
|
+
files_glob = "**/*{.html,.html.erb}"
|
24
|
+
|
25
|
+
themes = []
|
26
|
+
|
27
|
+
Dir.chdir(release.build_path) do
|
28
|
+
Dir.chdir("themes") do
|
29
|
+
themes = Dir.glob("*").select{|d| File.directory?(d) }.map{|t| [t, Pathname.new("themes/#{t}/theme")] }
|
30
|
+
end
|
31
|
+
|
32
|
+
# Get files from html path
|
33
|
+
files = Dir.glob("../html/#{files_glob}").map{ |f| f.sub("../html/", "") }
|
34
|
+
files.reject!{|c| @options[:excludes].detect{|e| e.match(c) } }
|
35
|
+
|
36
|
+
release.debug self, "Copying theme files #{files.inspect}"
|
37
|
+
|
38
|
+
themes.each do |theme, theme_dir|
|
39
|
+
mkdir_p theme_dir
|
40
|
+
|
41
|
+
files.each do |file|
|
42
|
+
mkdir_p theme_dir + File.dirname(file)
|
43
|
+
cp release.project.html_path + file, theme_dir + file
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Run mockup for each theme
|
49
|
+
themes.each do |theme, theme_dir|
|
50
|
+
match_glob = theme_dir + files_glob
|
51
|
+
|
52
|
+
mockup_processor = Roger::Release::Processors::Mockup.new({
|
53
|
+
match: [match_glob],
|
54
|
+
env: {
|
55
|
+
"SITE_THEME" => theme,
|
56
|
+
"MOCKUP_PROJECT" => release.project
|
57
|
+
}
|
58
|
+
})
|
59
|
+
mockup_processor.call(release)
|
60
|
+
|
61
|
+
# cp html/images and html/fonts => html/themes/**/images && html/themes/**/fonts
|
62
|
+
# if not in target dir
|
63
|
+
# well conceptual not complete, doing so would required scanning all HTML and
|
64
|
+
# CSS I suppose.
|
65
|
+
#
|
66
|
+
# This means that it could be possible to get images that are not used within the
|
67
|
+
# zip, since these are not requried in css it wouln't cause any problems thou
|
68
|
+
# the zip size does increase
|
69
|
+
#
|
70
|
+
# Behavior must be simialir to the rewrite in processor
|
71
|
+
release.debug self, "Starting assets copy for #{@options[:shared_folders]}"
|
72
|
+
shared_folders = SharedFolders.new(@options[:shared_folders])
|
73
|
+
|
74
|
+
Dir.chdir(release.build_path + "themes/#{theme}") do
|
75
|
+
release.debug self, "Copying assets for #{theme}"
|
76
|
+
shared_folders.folders.each do |copy_from, copy_to|
|
77
|
+
cp_r release.build_path + copy_from, copy_to
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module RogerThemes
|
2
|
+
class SharedFolders
|
3
|
+
def initialize(folders)
|
4
|
+
# To allow shared_folders to passed in as array
|
5
|
+
# in cases the mapping becomes 1:1 update shared_folders to Hash
|
6
|
+
if folders.is_a? Array
|
7
|
+
paths = folders.map { |v| [v, v] }
|
8
|
+
@folders = Hash[paths]
|
9
|
+
else
|
10
|
+
@folders = folders
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# Takes an local theme path
|
15
|
+
# and tries to resolve this to
|
16
|
+
# shared path
|
17
|
+
def local_to_shared_path(path)
|
18
|
+
matched_shared = @folders.detect do |folder_to, folder_from|
|
19
|
+
if path[/\A\/themes\/([^\/]+)\/#{folder_from}\//, 1]
|
20
|
+
[folder_to, folder_from]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if matched_shared
|
25
|
+
path.sub(/\A\/themes\/([^\/]+)\/#{matched_shared[1]}/,
|
26
|
+
"/#{matched_shared[0]}")
|
27
|
+
else
|
28
|
+
false
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module RogerThemes
|
2
|
+
class XcFinalizer < Roger::Release::Finalizers::Base
|
3
|
+
attr_reader :release
|
4
|
+
|
5
|
+
def call(release, options = {})
|
6
|
+
dirs = Dir.glob((release.build_path + "themes/*").to_s)
|
7
|
+
|
8
|
+
options = {
|
9
|
+
:prefix => "html",
|
10
|
+
:zip => "zip"
|
11
|
+
}.update(options)
|
12
|
+
|
13
|
+
releasename = [(options[:prefix] || "html"), release.scm.version].join("-")
|
14
|
+
|
15
|
+
zipdir = release.build_path + "themes/zips"
|
16
|
+
FileUtils.mkdir_p(zipdir) unless zipdir.exist?
|
17
|
+
|
18
|
+
dirs.each do |dir|
|
19
|
+
name = File.basename(dir)
|
20
|
+
path = Pathname.new(dir)
|
21
|
+
|
22
|
+
begin
|
23
|
+
`#{options[:zip]} -v`
|
24
|
+
rescue Errno::ENOENT
|
25
|
+
raise RuntimeError, "Could not find zip in #{options[:zip].inspect}"
|
26
|
+
end
|
27
|
+
|
28
|
+
::Dir.chdir(path) do
|
29
|
+
`#{options[:zip]} -r -9 "#{zipdir + name}-#{release.scm.version}.zip" rel js`
|
30
|
+
end
|
31
|
+
|
32
|
+
release.log(self, "Creating zip for custom #{name}")
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "roger_themes/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "roger_themes"
|
8
|
+
spec.version = RogerThemes::VERSION
|
9
|
+
spec.authors = ["Edwin van der Graaf"]
|
10
|
+
spec.email = ["edwin@digitpaint.nl"]
|
11
|
+
spec.summary = "Create themes and release them as static site"
|
12
|
+
spec.homepage = "https://github.com/digitpaint/roger_themes"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_dependency "roger", "~> 1.0"
|
21
|
+
spec.add_dependency "rack"
|
22
|
+
|
23
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
spec.add_development_dependency "test-unit", "~> 3.1.2"
|
25
|
+
spec.add_development_dependency "simplecov", "~> 0.10.0"
|
26
|
+
spec.add_development_dependency "rubocop", "~> 0.31.0"
|
27
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "./lib/roger_themes/middleware"
|
3
|
+
|
4
|
+
require "rack/mock"
|
5
|
+
|
6
|
+
module RogerThemes
|
7
|
+
class TestMiddleware < ::Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@app = proc { [200, {}, ["YAM"]] } # Yet another middleware
|
11
|
+
@middleware = Middleware.new @app
|
12
|
+
|
13
|
+
@request = Rack::MockRequest.new(@middleware)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_middleware_can_be_called
|
17
|
+
assert(@middleware.respond_to?(:call))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_doesnt_touch_other_requests
|
21
|
+
assert_equal @request.get("/my.js").body, "YAM"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "./lib/roger_themes/shared_folders"
|
3
|
+
|
4
|
+
require "rack/mock"
|
5
|
+
|
6
|
+
module RogerThemes
|
7
|
+
class TestSharedFolders < ::Test::Unit::TestCase
|
8
|
+
def setup
|
9
|
+
@shared_folders = SharedFolders.new(["images", "fonts"])
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_simple_case_with_array
|
13
|
+
shared_path = @shared_folders.local_to_shared_path("/themes/default/fonts/")
|
14
|
+
assert_equal "/fonts/", shared_path
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_with_hash
|
18
|
+
@shared_folders = SharedFolders.new("fonts" => "rel/fonts",
|
19
|
+
"images" => "rel/images")
|
20
|
+
|
21
|
+
shared_path = @shared_folders.local_to_shared_path("/themes/default/rel/fonts/")
|
22
|
+
assert_equal "/fonts/", shared_path
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_returns_false_when_no_shared_folder
|
26
|
+
shared_path = @shared_folders.local_to_shared_path("/themes/default/not_found/")
|
27
|
+
assert !shared_path
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: roger_themes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Edwin van der Graaf
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-08-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: roger
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rack
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
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: test-unit
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.1.2
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.1.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.10.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.10.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.31.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.31.0
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
- edwin@digitpaint.nl
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".gitignore"
|
105
|
+
- ".rubocop"
|
106
|
+
- Gemfile
|
107
|
+
- LICENSE.txt
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- lib/roger_themes.rb
|
111
|
+
- lib/roger_themes/middleware.rb
|
112
|
+
- lib/roger_themes/processor.rb
|
113
|
+
- lib/roger_themes/shared_folders.rb
|
114
|
+
- lib/roger_themes/version.rb
|
115
|
+
- lib/roger_themes/xc_finalizer.rb
|
116
|
+
- roger_themes.gemspec
|
117
|
+
- test/middleware_test.rb
|
118
|
+
- test/shared_folders_test.rb
|
119
|
+
- test/test_helper.rb
|
120
|
+
homepage: https://github.com/digitpaint/roger_themes
|
121
|
+
licenses:
|
122
|
+
- MIT
|
123
|
+
metadata: {}
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
requirements: []
|
139
|
+
rubyforge_project:
|
140
|
+
rubygems_version: 2.4.5
|
141
|
+
signing_key:
|
142
|
+
specification_version: 4
|
143
|
+
summary: Create themes and release them as static site
|
144
|
+
test_files:
|
145
|
+
- test/middleware_test.rb
|
146
|
+
- test/shared_folders_test.rb
|
147
|
+
- test/test_helper.rb
|