molecule 0.2.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.
- checksums.yaml +7 -0
- data/LICENSE +13 -0
- data/README.md +28 -0
- data/Rakefile +27 -0
- data/bin/test +5 -0
- data/lib/molecule/asset_group.rb +19 -0
- data/lib/molecule/asset_renderers/inline.rb +14 -0
- data/lib/molecule/configuration.rb +19 -0
- data/lib/molecule/controller.rb +12 -0
- data/lib/molecule/file.rb +28 -0
- data/lib/molecule/helper.rb +80 -0
- data/lib/molecule/molecule.rb +45 -0
- data/lib/molecule/railtie.rb +21 -0
- data/lib/molecule/registry.rb +50 -0
- data/lib/molecule/renderer.rb +82 -0
- data/lib/molecule/renderer_extension.rb +16 -0
- data/lib/molecule/renderers/base.rb +26 -0
- data/lib/molecule/stack.rb +30 -0
- data/lib/molecule/templates/defer/_defer_loader.js.erb +1 -0
- data/lib/molecule/templates/defer/_script.html.erb +1 -0
- data/lib/molecule/templates/defer/_style.html.erb +1 -0
- data/lib/molecule/templates/inline/_script.html.erb +1 -0
- data/lib/molecule/templates/inline/_style.html.erb +1 -0
- data/lib/molecule/version.rb +3 -0
- data/lib/molecule.rb +19 -0
- data/lib/tasks/molecular_renderer_tasks.rake +4 -0
- metadata +82 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4f61bb41f5c639e0dcad823a22bbc34f4c9bfcf3ae4b45f9746b5d0c49a10077
|
4
|
+
data.tar.gz: 577575e585a397a50e167bf440280241c9cad00102fdeada6a163f13cf10f698
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e10d10a9535c08cacbf495d564a2d7228e95e320f8183249e3aee5a317d885d0e41278fa692978278128cffee75e5bd3945b69393be1b4dceaddc100e76526ee
|
7
|
+
data.tar.gz: 4b9b98d18375da1c929aa9c67186b5cb75c750f40441e6e10d341450332a0f2e6a65ce45a02e6a7bdaef953ba9ae6fe4b6e478d111997b5fe99275adb5b2f2f7
|
data/LICENSE
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
A modified MIT License (MIT)
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4
|
+
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
6
|
+
|
7
|
+
Neither the Software, nor any derivative product, shall be used to operate weapons
|
8
|
+
|
9
|
+
Neither the Software, nor any derivative product, shall be used for any military use
|
10
|
+
|
11
|
+
Neither the Software, nor any derivative product, shall be used for any use by intelligence agencies
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# MolecularRenderer
|
2
|
+
Short description and motivation.
|
3
|
+
|
4
|
+
## Usage
|
5
|
+
How to use my plugin.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'molecular_renderer'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
```bash
|
21
|
+
$ gem install molecular_renderer
|
22
|
+
```
|
23
|
+
|
24
|
+
## Contributing
|
25
|
+
Contribution directions go here.
|
26
|
+
|
27
|
+
## License
|
28
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'Molecule'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.md')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
require 'bundler/gem_tasks'
|
18
|
+
|
19
|
+
require 'rake/testtask'
|
20
|
+
|
21
|
+
Rake::TestTask.new(:test) do |t|
|
22
|
+
t.libs << 'test'
|
23
|
+
t.pattern = 'test/**/*_test.rb'
|
24
|
+
t.verbose = false
|
25
|
+
end
|
26
|
+
|
27
|
+
task default: :test
|
data/bin/test
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
module Molecule
|
3
|
+
|
4
|
+
class AssetGroup
|
5
|
+
attr_accessor :name, :type, :file_paths
|
6
|
+
|
7
|
+
def initialize name, type
|
8
|
+
@name = name
|
9
|
+
@type = type
|
10
|
+
@file_paths = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_file_path file_path
|
14
|
+
@file_paths << file_path
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
module Molecule
|
3
|
+
class Configuration
|
4
|
+
attr_accessor :verify_children
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
reset_defaults!
|
8
|
+
end
|
9
|
+
|
10
|
+
def reset_defaults!
|
11
|
+
@verify_children = false
|
12
|
+
end
|
13
|
+
|
14
|
+
def verify_children?
|
15
|
+
!!@verify_children
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module Molecule
|
3
|
+
|
4
|
+
class File
|
5
|
+
|
6
|
+
attr_accessor :name
|
7
|
+
|
8
|
+
def initialize name
|
9
|
+
@name = name.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
def read
|
13
|
+
JSON.parse(read_file, symbolize_names: true)
|
14
|
+
end
|
15
|
+
|
16
|
+
def read_file
|
17
|
+
::File.read(molecule_file_path)
|
18
|
+
rescue
|
19
|
+
'{}'
|
20
|
+
end
|
21
|
+
|
22
|
+
def molecule_file_path
|
23
|
+
Rails.root.join('app', 'molecules', @name, 'molecule.json').to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Molecule
|
2
|
+
|
3
|
+
module Helper
|
4
|
+
|
5
|
+
def molecule_inline_style molecule_name
|
6
|
+
content_tag(:style, molecule_asset_contents(molecule_name, 'inline', 'styles')).html_safe
|
7
|
+
end
|
8
|
+
|
9
|
+
def molecule_inline_script molecule_name
|
10
|
+
content_tag(:script, molecule_asset_contents(molecule_name, 'inline', 'scripts')).html_safe
|
11
|
+
end
|
12
|
+
|
13
|
+
def molecule_defer_style molecule_name
|
14
|
+
relative_link = molecule_relative_path(molecule_name, 'defer', 'styles')
|
15
|
+
content_tag(:noscript, class: 'defered-style') do
|
16
|
+
content_tag(:link, '', {rel: :stylesheet, type: 'text/css', href: relative_link}).html_safe
|
17
|
+
end.html_safe
|
18
|
+
end
|
19
|
+
|
20
|
+
def molecule_defer_script molecule_name
|
21
|
+
relative_link = molecule_relative_path(molecule_name, 'defer', 'scripts')
|
22
|
+
content_tag(:script, '', {defer: :defer, src: relative_link}).html_safe
|
23
|
+
end
|
24
|
+
|
25
|
+
def molecule_asset_contents molecule_name, asset_group, asset_type
|
26
|
+
::File.read(abolute_asset_path(molecule_name, asset_group, asset_type)).html_safe
|
27
|
+
end
|
28
|
+
|
29
|
+
def molecule_relative_path molecule_name, asset_group, asset_type
|
30
|
+
suffix, asset = find_asset(molecule_name, asset_group, asset_type)
|
31
|
+
"/assets/#{suffix}/#{asset}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def molecule_inline_sprite molecule_name
|
35
|
+
manifest_path = Rails.root.join('public', 'manifests', "#{molecule_name}/icons.json")
|
36
|
+
manifest = ::File.read(manifest_path)
|
37
|
+
json = JSON.parse(manifest);
|
38
|
+
asset_path = Rails.root.join('public', 'assets', 'svg', json["#{molecule_name}.svg"])
|
39
|
+
::File.read(asset_path).html_safe
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
|
46
|
+
def find_asset molecule_name, asset_group, asset_type
|
47
|
+
config = load_manifest(molecule_name, asset_group, asset_type)
|
48
|
+
suffix = suffix_for_type(asset_type)
|
49
|
+
asset_slug = "#{molecule_name}-#{asset_group}.#{suffix}"
|
50
|
+
asset = config[asset_slug]
|
51
|
+
return suffix, asset
|
52
|
+
end
|
53
|
+
|
54
|
+
def abolute_asset_path molecule_name, asset_group, asset_type
|
55
|
+
suffix, asset = find_asset(molecule_name, asset_group, asset_type)
|
56
|
+
Rails.root.join('public', 'assets', suffix, asset)
|
57
|
+
end
|
58
|
+
|
59
|
+
def suffix_for_type asset_type
|
60
|
+
case asset_type
|
61
|
+
when 'scripts'
|
62
|
+
'js'
|
63
|
+
when 'styles'
|
64
|
+
'css'
|
65
|
+
else
|
66
|
+
raise "unknown asset type: #{asset_type}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def load_manifest molecule_name, asset_group, asset_type
|
71
|
+
manifest = ::File.read(manifest_path(molecule_name, asset_group, asset_type))
|
72
|
+
JSON.parse(manifest);
|
73
|
+
end
|
74
|
+
|
75
|
+
def manifest_path molecule_name, asset_group, asset_type
|
76
|
+
Rails.root.join('public', 'manifests', "#{molecule_name}/#{asset_group}-#{asset_type}.json")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'molecule/file'
|
2
|
+
|
3
|
+
module Molecule
|
4
|
+
|
5
|
+
class Molecule
|
6
|
+
|
7
|
+
attr_accessor :name, :version, :dependencies
|
8
|
+
@@cache = {}
|
9
|
+
|
10
|
+
def initialize name, version, dependencies
|
11
|
+
@name = name.to_s
|
12
|
+
@version = version
|
13
|
+
@dependencies = dependencies
|
14
|
+
end
|
15
|
+
|
16
|
+
def has_child? name
|
17
|
+
@dependencies.include?(name)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.read name
|
21
|
+
read_from_cache(name) || read_from_file(name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.read_from_file name
|
25
|
+
molecule_config = ::Molecule::File.new(name).read
|
26
|
+
|
27
|
+
raise "invalid molecule name '#{name}' in:\n#{molecule_config.inspect}" if name.to_s != molecule_config[:name]
|
28
|
+
|
29
|
+
version = molecule_config[:version] || '0.1.0'
|
30
|
+
dependencies = molecule_config[:dependencies] || []
|
31
|
+
|
32
|
+
@@cache[name] = self.new name, version, dependencies
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.read_from_cache name
|
36
|
+
@@cache[name]
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.clear_cache
|
40
|
+
@@cache = {}
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'molecule/controller'
|
2
|
+
require 'molecule/helper'
|
3
|
+
require 'molecule/renderer_extension'
|
4
|
+
|
5
|
+
module MolecularRenderer
|
6
|
+
|
7
|
+
class Railtie < ::Rails::Railtie
|
8
|
+
|
9
|
+
initializer "molecule.view_helpers" do
|
10
|
+
ActiveSupport.on_load(:action_view) do
|
11
|
+
include Molecule::Helper
|
12
|
+
|
13
|
+
class ::ActionView::Renderer
|
14
|
+
prepend Molecule::RendererExtension
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'molecule/asset_group'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Molecule
|
5
|
+
|
6
|
+
class Registry
|
7
|
+
|
8
|
+
attr_accessor :name, :molecules
|
9
|
+
|
10
|
+
def initialize name
|
11
|
+
@name = name
|
12
|
+
@molecules = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
def register_molecule molecule_name
|
16
|
+
@molecules[molecule_name] = 1
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
def dump_molecule_file
|
21
|
+
molecule = read_molecule_file || {}
|
22
|
+
molecule[:dependencies] = @molecules.keys
|
23
|
+
File.open(registry_file_path, 'w') do |file|
|
24
|
+
file.write(molecule_structure.to_json)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def read_molecule_file
|
29
|
+
JSON.parse(open_molecule_file, symbolize_names: true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def open_molecule_file
|
33
|
+
File.read(registry_file_path)
|
34
|
+
rescue
|
35
|
+
'{}'
|
36
|
+
end
|
37
|
+
|
38
|
+
def registry_file_path
|
39
|
+
Rails.root.join('app', 'molecules', @name, 'Moleculefile')
|
40
|
+
end
|
41
|
+
|
42
|
+
def molecule_structure
|
43
|
+
{
|
44
|
+
dependencies: @molecules.keys.to_json
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'molecule/molecule'
|
2
|
+
require 'molecule/stack'
|
3
|
+
|
4
|
+
module Molecule
|
5
|
+
|
6
|
+
class Renderer < ::ActionView::PartialRenderer
|
7
|
+
|
8
|
+
# narrow template lookup path to the provided molecule
|
9
|
+
def render context, options, &block
|
10
|
+
@@stack ||= ::Molecule::Stack.new
|
11
|
+
with_member_override(:view_paths, molecule_view_paths(options)) do
|
12
|
+
with_member_override(:prefixes, [molecule_prefix(options)]) do
|
13
|
+
with_dependency_check(options[:molecule]) do
|
14
|
+
with_new_molecule(options[:molecule]) do
|
15
|
+
result = super(context, options, block).body
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# override a member of lookup_context
|
23
|
+
def with_member_override member, override, &block
|
24
|
+
old_value = @lookup_context.public_send(member)
|
25
|
+
molecule_force_set_member(@lookup_context, member, override)
|
26
|
+
yield
|
27
|
+
ensure
|
28
|
+
molecule_force_set_member(@lookup_context, member, old_value)
|
29
|
+
end
|
30
|
+
|
31
|
+
def with_dependency_check name, &block
|
32
|
+
if !@@stack.empty? && ::Molecule.config.verify_children?
|
33
|
+
unless @@stack.current_molecule.has_child?(name.to_s)
|
34
|
+
raise "requested molecule (#{name}) is not configured as a child of current molecule (#{@@stack.current_molecule.name})"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
yield
|
38
|
+
end
|
39
|
+
|
40
|
+
def with_new_molecule name
|
41
|
+
@@stack.push(::Molecule::Molecule.read(name))
|
42
|
+
yield
|
43
|
+
ensure
|
44
|
+
@@stack.pop
|
45
|
+
end
|
46
|
+
|
47
|
+
def molecule_force_set_member object, member, value
|
48
|
+
if object.respond_to?("#{member}=")
|
49
|
+
object.public_send("#{member}=", value)
|
50
|
+
else
|
51
|
+
object.instance_variable_set("@#{member}", value)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# turn off partial renaming
|
56
|
+
def find_template(path, locals)
|
57
|
+
prefixes = path.include?(?/) ? [] : @lookup_context.prefixes
|
58
|
+
@lookup_context.find_template(path, prefixes, false, locals, @details)
|
59
|
+
end
|
60
|
+
|
61
|
+
def molecule_view_paths options
|
62
|
+
::ActionView::PathSet.new([molecule_template_path(options)])
|
63
|
+
end
|
64
|
+
|
65
|
+
# molecules path
|
66
|
+
def molecule_template_path options
|
67
|
+
Rails.root.join('app', 'molecules')
|
68
|
+
end
|
69
|
+
|
70
|
+
# path for current molecule
|
71
|
+
def molecule_prefix options
|
72
|
+
"#{options[:molecule].to_s}/views"
|
73
|
+
end
|
74
|
+
|
75
|
+
# default template entrypoint
|
76
|
+
def partial_path object = nil, view = nil
|
77
|
+
'index'
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'molecule/renderer'
|
2
|
+
|
3
|
+
module Molecule
|
4
|
+
|
5
|
+
module RendererExtension
|
6
|
+
|
7
|
+
def render(context, options)
|
8
|
+
if options.key?(:molecule)
|
9
|
+
::Molecule::Renderer.new(@lookup_context).render(context, options)
|
10
|
+
else
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
module Molecule
|
3
|
+
|
4
|
+
module Renderers
|
5
|
+
|
6
|
+
module Base
|
7
|
+
|
8
|
+
def molecule_inline_asset options
|
9
|
+
raise options.inspect
|
10
|
+
end
|
11
|
+
|
12
|
+
def molecule_render name, options
|
13
|
+
Molecule.registry.verify_child if options[:verify_chilren]
|
14
|
+
|
15
|
+
render file: molecule_path(name).join('views', name)
|
16
|
+
end
|
17
|
+
|
18
|
+
def molecule_path name
|
19
|
+
Rails.root.join('app', 'molecules', name)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module Molecule
|
3
|
+
|
4
|
+
class Stack
|
5
|
+
|
6
|
+
attr_accessor :molecules
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@molecules = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def push molecule
|
13
|
+
@molecules.push(molecule)
|
14
|
+
end
|
15
|
+
|
16
|
+
def current_molecule
|
17
|
+
@molecules.last
|
18
|
+
end
|
19
|
+
|
20
|
+
def pop
|
21
|
+
@molecules.pop
|
22
|
+
end
|
23
|
+
|
24
|
+
def empty?
|
25
|
+
@molecules.empty?
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<script>function λ(){let a=document.getElementById("deferred-styles"),c=document.createElement("div");c.innerHTML=a.textContent;document.body.appendChild(c);a.parentElement.removeChild(a)}var d=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;d?d(function(){window.setTimeout(λ,0)}):window.addEventListener("load",λ);</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<script defer="defer"><%= @content %></script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<noscript id="defered-styles"><link rel="stylesheet" type="text/css" href="@link"/></noscript>
|
@@ -0,0 +1 @@
|
|
1
|
+
<script><%= @content %></script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<style><%= @content %></style>
|
data/lib/molecule.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require "molecule/railtie"
|
2
|
+
|
3
|
+
module Molecule
|
4
|
+
|
5
|
+
class << self
|
6
|
+
attr_accessor :registry
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.config
|
10
|
+
@config ||= Configuration.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.configure
|
14
|
+
yield config
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'molecule/configuration'
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: molecule
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dirk Gustke
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-01-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6'
|
27
|
+
description: provide and use template and assets in a self-contained way
|
28
|
+
email:
|
29
|
+
- code+molecule@asm68k.org
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- LICENSE
|
35
|
+
- README.md
|
36
|
+
- Rakefile
|
37
|
+
- bin/test
|
38
|
+
- lib/molecule.rb
|
39
|
+
- lib/molecule/asset_group.rb
|
40
|
+
- lib/molecule/asset_renderers/inline.rb
|
41
|
+
- lib/molecule/configuration.rb
|
42
|
+
- lib/molecule/controller.rb
|
43
|
+
- lib/molecule/file.rb
|
44
|
+
- lib/molecule/helper.rb
|
45
|
+
- lib/molecule/molecule.rb
|
46
|
+
- lib/molecule/railtie.rb
|
47
|
+
- lib/molecule/registry.rb
|
48
|
+
- lib/molecule/renderer.rb
|
49
|
+
- lib/molecule/renderer_extension.rb
|
50
|
+
- lib/molecule/renderers/base.rb
|
51
|
+
- lib/molecule/stack.rb
|
52
|
+
- lib/molecule/templates/defer/_defer_loader.js.erb
|
53
|
+
- lib/molecule/templates/defer/_script.html.erb
|
54
|
+
- lib/molecule/templates/defer/_style.html.erb
|
55
|
+
- lib/molecule/templates/inline/_script.html.erb
|
56
|
+
- lib/molecule/templates/inline/_style.html.erb
|
57
|
+
- lib/molecule/version.rb
|
58
|
+
- lib/tasks/molecular_renderer_tasks.rake
|
59
|
+
homepage: https://github.com/scones/molecule
|
60
|
+
licenses:
|
61
|
+
- MIT
|
62
|
+
metadata: {}
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
requirements: []
|
78
|
+
rubygems_version: 3.0.3
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
81
|
+
summary: provide and use template and assets in a self-contained way
|
82
|
+
test_files: []
|