staticz 1.0.3 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/builder.rb +3 -1
- data/lib/manifest/compilable/cs.rb +30 -0
- data/lib/manifest/compilable/haml.rb +45 -0
- data/lib/manifest/compilable/js.rb +27 -0
- data/lib/manifest/compilable/react.rb +30 -0
- data/lib/manifest/compilable/sass.rb +45 -0
- data/lib/manifest/compilable/scss.rb +45 -0
- data/lib/manifest/compilable/simple_file.rb +38 -0
- data/lib/manifest/compilable.rb +29 -7
- data/lib/manifest/manifest.rb +19 -17
- data/lib/manifest/sub.rb +10 -6
- data/lib/modules/lib_loader.rb +18 -0
- data/lib/modules/reload.rb +41 -0
- data/lib/server.rb +57 -8
- data/lib/settings.rb +19 -0
- data/lib/staticz.rb +8 -6
- data/lib/template/src/template.haml +2 -0
- data/lib/{colors.rb → utils/colors.rb} +0 -0
- data/lib/{helpers.rb → utils/helpers.rb} +8 -0
- metadata +14 -10
- data/lib/manifest/cs.rb +0 -27
- data/lib/manifest/haml.rb +0 -25
- data/lib/manifest/js.rb +0 -23
- data/lib/manifest/react.rb +0 -27
- data/lib/manifest/sass.rb +0 -27
- data/lib/manifest/scss.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d778ec6e3bd50f39361d84393c7de56ae57888e5bc59d22a6237af9f81c9ba4
|
4
|
+
data.tar.gz: 655bf3dff47d221a2b8baa1e84917d9dd958c641b278ecd1e4cb3bf1ea2e8a72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 505c8756fdb68da5e127cb84f0df493615f5390f5abeed9b1a739b77fa42c2f76582ce1ac1979eb58589f2cdbd90f144d52e225710f42f8816481993e34a4914
|
7
|
+
data.tar.gz: f8936d899637624582117c0178c90c0494f7696d78874d99e02a056a96f4775117de5d521fbaf301f083035690c6e72557f9662eaf16dc179c4e826516c71318
|
data/lib/builder.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "modules/lib_loader"
|
2
2
|
|
3
3
|
module Staticz
|
4
4
|
class Builder
|
@@ -9,6 +9,8 @@ module Staticz
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def build
|
12
|
+
Staticz::Modules::LibLoader.load_files
|
13
|
+
|
12
14
|
Dir.mkdir('build') unless File.exist?('build')
|
13
15
|
|
14
16
|
Staticz::Manifest.instance.build
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "coffee-script"
|
2
|
+
require_relative "../compilable"
|
3
|
+
|
4
|
+
module Staticz
|
5
|
+
module Compilable
|
6
|
+
class Cs
|
7
|
+
include Compilable
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
def source_file_ending = "coffee"
|
12
|
+
|
13
|
+
def build_file_ending = "js"
|
14
|
+
|
15
|
+
def tile_type_name = "Coff"
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
22
|
+
if exists?
|
23
|
+
js = CoffeeScript.compile File.read(source_path)
|
24
|
+
|
25
|
+
File.write build_path, js
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "haml"
|
2
|
+
require_relative "../compilable"
|
3
|
+
|
4
|
+
module Staticz
|
5
|
+
module Compilable
|
6
|
+
class Haml
|
7
|
+
include Compilable
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
def source_file_ending = "haml"
|
12
|
+
|
13
|
+
def build_file_ending = "html"
|
14
|
+
|
15
|
+
def tile_type_name = "Haml"
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def errors
|
22
|
+
errors = super
|
23
|
+
|
24
|
+
if exists?
|
25
|
+
begin
|
26
|
+
engine = ::Haml::Engine.new(File.read(source_path))
|
27
|
+
engine.render
|
28
|
+
rescue => e
|
29
|
+
errors << e.message
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
errors
|
34
|
+
end
|
35
|
+
|
36
|
+
def build
|
37
|
+
if valid?
|
38
|
+
engine = ::Haml::Engine.new(File.read(source_path))
|
39
|
+
|
40
|
+
File.write build_path, engine.render
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative "../compilable"
|
2
|
+
|
3
|
+
module Staticz
|
4
|
+
module Compilable
|
5
|
+
class Js
|
6
|
+
include Compilable
|
7
|
+
|
8
|
+
attr_reader :name
|
9
|
+
|
10
|
+
def source_file_ending = "js"
|
11
|
+
|
12
|
+
def build_file_ending = "js"
|
13
|
+
|
14
|
+
def tile_type_name = "Js"
|
15
|
+
|
16
|
+
def initialize(name)
|
17
|
+
@name = name
|
18
|
+
end
|
19
|
+
|
20
|
+
def build
|
21
|
+
if exists?
|
22
|
+
File.write build_path, File.read(source_path)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "babel/transpiler"
|
2
|
+
require_relative "../compilable"
|
3
|
+
|
4
|
+
module Staticz
|
5
|
+
module Compilable
|
6
|
+
class React
|
7
|
+
include Compilable
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
def source_file_ending = "js"
|
12
|
+
|
13
|
+
def build_file_ending = "js"
|
14
|
+
|
15
|
+
def tile_type_name = "React"
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
22
|
+
if exists?
|
23
|
+
engine = Babel::Transpiler.transform File.read(source_path)
|
24
|
+
|
25
|
+
File.write build_path, engine["code"]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "sassc"
|
2
|
+
require_relative "../compilable"
|
3
|
+
|
4
|
+
module Staticz
|
5
|
+
module Compilable
|
6
|
+
class Sass
|
7
|
+
include Compilable
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
def source_file_ending = "sass"
|
12
|
+
|
13
|
+
def build_file_ending = "css"
|
14
|
+
|
15
|
+
def tile_type_name = "Sass"
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
22
|
+
if valid?
|
23
|
+
engine = ::SassC::Engine.new(File.read(source_path), syntax: :sass, style: :compressed)
|
24
|
+
|
25
|
+
File.write build_path, engine.render
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def errors
|
30
|
+
errors = super
|
31
|
+
|
32
|
+
if exists?
|
33
|
+
begin
|
34
|
+
engine = ::SassC::Engine.new(File.read(source_path), syntax: :sass)
|
35
|
+
engine.render
|
36
|
+
rescue => e
|
37
|
+
errors << e.message
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
errors
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "sassc"
|
2
|
+
require_relative "../compilable"
|
3
|
+
|
4
|
+
module Staticz
|
5
|
+
module Compilable
|
6
|
+
class Scss
|
7
|
+
include Compilable
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
def source_file_ending = "scss"
|
12
|
+
|
13
|
+
def build_file_ending = "css"
|
14
|
+
|
15
|
+
def tile_type_name = "Scss"
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
22
|
+
if valid?
|
23
|
+
engine = ::SassC::Engine.new(File.read(source_path), syntax: :scss, style: :compressed)
|
24
|
+
|
25
|
+
File.write build_path, engine.render
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def errors
|
30
|
+
errors = super
|
31
|
+
|
32
|
+
if exists?
|
33
|
+
begin
|
34
|
+
engine = ::SassC::Engine.new(File.read(source_path), syntax: :scss)
|
35
|
+
engine.render
|
36
|
+
rescue => e
|
37
|
+
errors << e.message
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
errors
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative "../compilable"
|
2
|
+
|
3
|
+
module Staticz
|
4
|
+
module Compilable
|
5
|
+
class SimpleFile
|
6
|
+
include Compilable
|
7
|
+
|
8
|
+
attr_reader :name
|
9
|
+
|
10
|
+
def source_path
|
11
|
+
"src/#{name}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def build_path
|
15
|
+
"build/#{name}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_link_function
|
19
|
+
end
|
20
|
+
|
21
|
+
def path_method_name
|
22
|
+
"no path created"
|
23
|
+
end
|
24
|
+
|
25
|
+
def tile_type_name = "File"
|
26
|
+
|
27
|
+
def initialize(name)
|
28
|
+
@name = name
|
29
|
+
end
|
30
|
+
|
31
|
+
def build
|
32
|
+
if exists?
|
33
|
+
File.write build_path, File.read(source_path)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/manifest/compilable.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "io/console"
|
2
|
+
|
1
3
|
module Staticz
|
2
4
|
module Compilable
|
3
5
|
def path
|
@@ -20,12 +22,16 @@ module Staticz
|
|
20
22
|
"#{path.gsub(/[\/-]/, "_")}_path"
|
21
23
|
end
|
22
24
|
|
23
|
-
def valid
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
def valid?
|
26
|
+
errors.empty?
|
27
|
+
end
|
28
|
+
|
29
|
+
def errors
|
30
|
+
errors = []
|
31
|
+
|
32
|
+
errors << "File does not exist" if !exists?
|
33
|
+
|
34
|
+
errors
|
29
35
|
end
|
30
36
|
|
31
37
|
def create_link_function
|
@@ -34,7 +40,23 @@ module Staticz
|
|
34
40
|
end
|
35
41
|
|
36
42
|
def print(indentation)
|
37
|
-
|
43
|
+
valid_symbol = if valid?
|
44
|
+
Colors.in_green("✔")
|
45
|
+
else
|
46
|
+
Colors.in_red("✘")
|
47
|
+
end
|
48
|
+
|
49
|
+
puts "#{" " * (indentation * 3)}└─ #{tile_type_name}: #{path} #{valid_symbol} -> #{path_method_name}"
|
50
|
+
|
51
|
+
_height, width = IO.console.winsize
|
52
|
+
|
53
|
+
errors.each do |full_error|
|
54
|
+
line_width = width - (indentation * 3) - 3
|
55
|
+
multiline_errors = full_error.scan(/.{1,#{line_width}}/)
|
56
|
+
multiline_errors.each do |error|
|
57
|
+
puts "#{" " * (indentation * 3)} #{Colors.in_red(error)}"
|
58
|
+
end
|
59
|
+
end
|
38
60
|
end
|
39
61
|
end
|
40
62
|
end
|
data/lib/manifest/manifest.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
require
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
6
|
-
require_relative
|
7
|
-
require_relative
|
8
|
-
require_relative
|
9
|
-
require_relative
|
1
|
+
require "singleton"
|
2
|
+
require_relative "sub"
|
3
|
+
require_relative "compilable/haml"
|
4
|
+
require_relative "compilable/cs"
|
5
|
+
require_relative "compilable/js"
|
6
|
+
require_relative "compilable/react"
|
7
|
+
require_relative "compilable/sass"
|
8
|
+
require_relative "compilable/scss"
|
9
|
+
require_relative "compilable/simple_file"
|
10
10
|
|
11
11
|
module Staticz
|
12
12
|
class Manifest
|
@@ -26,27 +26,31 @@ module Staticz
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def haml(name)
|
29
|
-
elements.push(Staticz::Haml.new(name))
|
29
|
+
elements.push(Staticz::Compilable::Haml.new(name))
|
30
30
|
end
|
31
31
|
|
32
32
|
def sass(name)
|
33
|
-
elements.push(Staticz::Sass.new(name))
|
33
|
+
elements.push(Staticz::Compilable::Sass.new(name))
|
34
34
|
end
|
35
35
|
|
36
36
|
def scss(name)
|
37
|
-
elements.push(Staticz::Scss.new(name))
|
37
|
+
elements.push(Staticz::Compilable::Scss.new(name))
|
38
38
|
end
|
39
39
|
|
40
40
|
def js(name)
|
41
|
-
elements.push(Staticz::Js.new(name))
|
41
|
+
elements.push(Staticz::Compilable::Js.new(name))
|
42
42
|
end
|
43
43
|
|
44
44
|
def coffee(name)
|
45
|
-
elements.push(Staticz::Cs.new(name))
|
45
|
+
elements.push(Staticz::Compilable::Cs.new(name))
|
46
46
|
end
|
47
47
|
|
48
48
|
def react(name)
|
49
|
-
elements.push(Staticz::React.new(name))
|
49
|
+
elements.push(Staticz::Compilable::React.new(name))
|
50
|
+
end
|
51
|
+
|
52
|
+
def file(name)
|
53
|
+
elements.push(Staticz::Compilable::SimpleFile.new(name))
|
50
54
|
end
|
51
55
|
|
52
56
|
def build
|
@@ -59,8 +63,6 @@ module Staticz
|
|
59
63
|
elements.each do |e|
|
60
64
|
e.build
|
61
65
|
end
|
62
|
-
|
63
|
-
print
|
64
66
|
end
|
65
67
|
|
66
68
|
def self.define(&block)
|
data/lib/manifest/sub.rb
CHANGED
@@ -14,27 +14,31 @@ module Staticz
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def haml(name, &block)
|
17
|
-
elements.push(Staticz::Haml.new("#{@name}/#{name}"))
|
17
|
+
elements.push(Staticz::Compilable::Haml.new("#{@name}/#{name}"))
|
18
18
|
end
|
19
19
|
|
20
20
|
def sass(name, &block)
|
21
|
-
elements.push(Staticz::Sass.new("#{@name}/#{name}"))
|
21
|
+
elements.push(Staticz::Compilable::Sass.new("#{@name}/#{name}"))
|
22
22
|
end
|
23
23
|
|
24
24
|
def scss(name, &block)
|
25
|
-
elements.push(Staticz::Scss.new("#{@name}/#{name}"))
|
25
|
+
elements.push(Staticz::Compilable::Scss.new("#{@name}/#{name}"))
|
26
26
|
end
|
27
27
|
|
28
28
|
def js(name, &block)
|
29
|
-
elements.push(Staticz::Js.new("#{@name}/#{name}"))
|
29
|
+
elements.push(Staticz::Compilable::Js.new("#{@name}/#{name}"))
|
30
30
|
end
|
31
31
|
|
32
32
|
def coffee(name, &block)
|
33
|
-
elements.push(Staticz::Cs.new("#{@name}/#{name}"))
|
33
|
+
elements.push(Staticz::Compilable::Cs.new("#{@name}/#{name}"))
|
34
34
|
end
|
35
35
|
|
36
36
|
def react(name, &block)
|
37
|
-
elements.push(Staticz::React.new("#{@name}/#{name}"))
|
37
|
+
elements.push(Staticz::Compilable::React.new("#{@name}/#{name}"))
|
38
|
+
end
|
39
|
+
|
40
|
+
def file(name, &block)
|
41
|
+
elements.push(Staticz::Compilable::SimpleFile.new("#{@name}/#{name}"))
|
38
42
|
end
|
39
43
|
|
40
44
|
def build
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Staticz
|
2
|
+
module Modules
|
3
|
+
class LibLoader
|
4
|
+
def self.load_files
|
5
|
+
return if !Dir.exist? "lib"
|
6
|
+
|
7
|
+
Dir["lib/**/*.rb"].each do |rb_file|
|
8
|
+
begin
|
9
|
+
load rb_file
|
10
|
+
rescue SyntaxError => e
|
11
|
+
puts Colors.in_red("Could not load #{rb_file}:")
|
12
|
+
puts Colors.in_red(e.message)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "securerandom"
|
2
|
+
|
3
|
+
module Staticz
|
4
|
+
module Modules
|
5
|
+
class Reload
|
6
|
+
def self.hash
|
7
|
+
@@hash
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.build_reload_js
|
11
|
+
<<~JS
|
12
|
+
var hash = null;
|
13
|
+
|
14
|
+
function checkForChanges() {
|
15
|
+
console.log("Check for file changes");
|
16
|
+
var response = new XMLHttpRequest();
|
17
|
+
response.open("GET", "api/hash", true);
|
18
|
+
response.onload = function() {
|
19
|
+
if (response.status === 200) {
|
20
|
+
if (!hash) {
|
21
|
+
console.log("Set initial hash")
|
22
|
+
hash = response.responseText
|
23
|
+
}
|
24
|
+
if (response.responseText !== hash) {
|
25
|
+
location.reload();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
response.send(null);
|
30
|
+
}
|
31
|
+
checkForChanges()
|
32
|
+
setInterval(checkForChanges, 1000);
|
33
|
+
JS
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.generate_hash
|
37
|
+
@@hash = SecureRandom.uuid[0..6]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/server.rb
CHANGED
@@ -1,14 +1,41 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "thin"
|
2
|
+
require "listen"
|
3
|
+
require "io/console"
|
4
|
+
|
5
|
+
require_relative "manifest/manifest"
|
6
|
+
require_relative "modules/reload"
|
3
7
|
|
4
8
|
module Staticz
|
5
9
|
class Server
|
6
10
|
def initialize
|
7
|
-
|
11
|
+
Thin::Logging.silent = true
|
8
12
|
|
9
13
|
app = Rack::Builder.new do
|
14
|
+
map "/reload.js" do
|
15
|
+
run lambda { |env|
|
16
|
+
[
|
17
|
+
200,
|
18
|
+
{"Content-Type" => "text/plain"},
|
19
|
+
Staticz::Modules::Reload.build_reload_js
|
20
|
+
]
|
21
|
+
}
|
22
|
+
end
|
23
|
+
map "/api/hash" do
|
24
|
+
run lambda { |env|
|
25
|
+
[
|
26
|
+
200,
|
27
|
+
{"Content-Type" => "text/plain"},
|
28
|
+
Staticz::Modules::Reload.hash
|
29
|
+
]
|
30
|
+
}
|
31
|
+
end
|
10
32
|
map "/" do
|
11
33
|
use Rack::Static, urls: {"/" => "build/index.html"}
|
34
|
+
|
35
|
+
Staticz::Server.all_haml(Staticz::Manifest.instance.elements).each do |e|
|
36
|
+
use Rack::Static, urls: {"/#{e.name}" => e.build_path}
|
37
|
+
end
|
38
|
+
|
12
39
|
run Rack::Directory.new("build")
|
13
40
|
end
|
14
41
|
end
|
@@ -16,28 +43,50 @@ module Staticz
|
|
16
43
|
thin_server = Thin::Server.new '127.0.0.1', 3000
|
17
44
|
thin_server.app = app
|
18
45
|
|
19
|
-
|
20
|
-
Staticz::Builder.new
|
46
|
+
build_manifest
|
21
47
|
|
22
48
|
Thread.new { listen_to_file_changes }
|
23
49
|
thin_server.start
|
24
50
|
end
|
25
51
|
|
52
|
+
def self.all_haml(elements)
|
53
|
+
elements.map do |e|
|
54
|
+
if e.is_a? Staticz::Compilable::Haml
|
55
|
+
e
|
56
|
+
elsif e.is_a? Staticz::Sub
|
57
|
+
all_haml(e.elements)
|
58
|
+
end
|
59
|
+
end.flatten.select do |e|
|
60
|
+
e
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
26
64
|
private
|
27
65
|
|
28
66
|
def listen_to_file_changes
|
29
|
-
|
67
|
+
folders = ["src"]
|
68
|
+
folders << "lib" if Dir.exist? "lib"
|
69
|
+
|
70
|
+
listener = Listen.to(*folders) do |modified, added, removed|
|
30
71
|
file_names = (modified + added + removed)
|
31
72
|
.map do |file|
|
32
|
-
file.gsub "#{Dir.pwd}/
|
73
|
+
file.gsub "#{Dir.pwd}/", ""
|
33
74
|
end
|
34
75
|
.join(", ")
|
35
76
|
|
77
|
+
$stdout.clear_screen
|
36
78
|
puts "#{file_names} changed, rebuilding..."
|
37
|
-
|
79
|
+
build_manifest
|
38
80
|
puts "Rebuilding successful"
|
39
81
|
end
|
40
82
|
listener.start
|
41
83
|
end
|
84
|
+
|
85
|
+
def build_manifest
|
86
|
+
Staticz::Modules::Reload.generate_hash
|
87
|
+
|
88
|
+
Staticz::Builder.new
|
89
|
+
Staticz::Manifest.instance.print
|
90
|
+
end
|
42
91
|
end
|
43
92
|
end
|
data/lib/settings.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Staticz
|
2
|
+
class Settings
|
3
|
+
def self.development!
|
4
|
+
@@env = :development
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.development?
|
8
|
+
@@env == :development
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.production!
|
12
|
+
@@env = :production
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.production?
|
16
|
+
@@env == :production
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/staticz.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require_relative
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
6
|
-
require_relative
|
1
|
+
require_relative "template"
|
2
|
+
require_relative "server"
|
3
|
+
require_relative "builder"
|
4
|
+
require_relative "settings"
|
5
|
+
require_relative "utils/colors"
|
6
|
+
require_relative "utils/helpers"
|
7
7
|
|
8
8
|
module Staticz
|
9
9
|
def self.init
|
@@ -24,11 +24,13 @@ module Staticz
|
|
24
24
|
puts usage
|
25
25
|
end
|
26
26
|
when 'server'
|
27
|
+
Staticz::Settings.development!
|
27
28
|
Staticz::Server.new
|
28
29
|
when 'manifest'
|
29
30
|
load "#{Dir.pwd}/manifest.rb"
|
30
31
|
Staticz::Manifest.instance.print
|
31
32
|
when 'build'
|
33
|
+
Staticz::Settings.production!
|
32
34
|
Staticz::Builder.new
|
33
35
|
else
|
34
36
|
puts usage
|
File without changes
|
@@ -25,6 +25,10 @@ def javascript(path)
|
|
25
25
|
"<script src=\"#{path}\"></script>"
|
26
26
|
end
|
27
27
|
|
28
|
+
def inline_svg(source_path)
|
29
|
+
File.read("src/#{source_path}")
|
30
|
+
end
|
31
|
+
|
28
32
|
def react(*component_file_paths)
|
29
33
|
lines = [
|
30
34
|
"<script crossorigin src=\"https://unpkg.com/react@18/umd/react.development.js\"></script>",
|
@@ -53,3 +57,7 @@ end
|
|
53
57
|
def react_component(name, css_class = nil)
|
54
58
|
"<div data-component=\"#{name}\" class=\"#{css_class}\"></div>"
|
55
59
|
end
|
60
|
+
|
61
|
+
def reload_js
|
62
|
+
"<script src=\"reload.js\" defer></script>" if Staticz::Settings.development?
|
63
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: staticz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philipp Schlesinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -119,18 +119,20 @@ extra_rdoc_files: []
|
|
119
119
|
files:
|
120
120
|
- bin/staticz
|
121
121
|
- lib/builder.rb
|
122
|
-
- lib/colors.rb
|
123
|
-
- lib/helpers.rb
|
124
122
|
- lib/manifest/compilable.rb
|
125
|
-
- lib/manifest/cs.rb
|
126
|
-
- lib/manifest/haml.rb
|
127
|
-
- lib/manifest/js.rb
|
123
|
+
- lib/manifest/compilable/cs.rb
|
124
|
+
- lib/manifest/compilable/haml.rb
|
125
|
+
- lib/manifest/compilable/js.rb
|
126
|
+
- lib/manifest/compilable/react.rb
|
127
|
+
- lib/manifest/compilable/sass.rb
|
128
|
+
- lib/manifest/compilable/scss.rb
|
129
|
+
- lib/manifest/compilable/simple_file.rb
|
128
130
|
- lib/manifest/manifest.rb
|
129
|
-
- lib/manifest/react.rb
|
130
|
-
- lib/manifest/sass.rb
|
131
|
-
- lib/manifest/scss.rb
|
132
131
|
- lib/manifest/sub.rb
|
132
|
+
- lib/modules/lib_loader.rb
|
133
|
+
- lib/modules/reload.rb
|
133
134
|
- lib/server.rb
|
135
|
+
- lib/settings.rb
|
134
136
|
- lib/staticz.rb
|
135
137
|
- lib/template.rb
|
136
138
|
- lib/template/manifest.rb
|
@@ -139,6 +141,8 @@ files:
|
|
139
141
|
- lib/template/src/index.haml
|
140
142
|
- lib/template/src/nav.haml
|
141
143
|
- lib/template/src/template.haml
|
144
|
+
- lib/utils/colors.rb
|
145
|
+
- lib/utils/helpers.rb
|
142
146
|
homepage: http://rubygems.org/gems/staticz
|
143
147
|
licenses:
|
144
148
|
- MIT
|
data/lib/manifest/cs.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'coffee-script'
|
2
|
-
|
3
|
-
module Staticz
|
4
|
-
class Cs
|
5
|
-
include Compilable
|
6
|
-
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def source_file_ending = "coffee"
|
10
|
-
|
11
|
-
def build_file_ending = "js"
|
12
|
-
|
13
|
-
def tile_type_name = "Coff"
|
14
|
-
|
15
|
-
def initialize(name)
|
16
|
-
@name = name
|
17
|
-
end
|
18
|
-
|
19
|
-
def build
|
20
|
-
if exists?
|
21
|
-
js = CoffeeScript.compile File.read(source_path)
|
22
|
-
|
23
|
-
File.write build_path, js
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/manifest/haml.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
module Staticz
|
2
|
-
class Haml
|
3
|
-
include Compilable
|
4
|
-
|
5
|
-
attr_reader :name
|
6
|
-
|
7
|
-
def source_file_ending = "haml"
|
8
|
-
|
9
|
-
def build_file_ending = "html"
|
10
|
-
|
11
|
-
def tile_type_name = "Haml"
|
12
|
-
|
13
|
-
def initialize(name)
|
14
|
-
@name = name
|
15
|
-
end
|
16
|
-
|
17
|
-
def build
|
18
|
-
if exists?
|
19
|
-
engine = ::Haml::Engine.new(File.read(source_path))
|
20
|
-
|
21
|
-
File.write build_path, engine.render
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/lib/manifest/js.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Staticz
|
2
|
-
class Js
|
3
|
-
include Compilable
|
4
|
-
|
5
|
-
attr_reader :name
|
6
|
-
|
7
|
-
def source_file_ending = "js"
|
8
|
-
|
9
|
-
def build_file_ending = "js"
|
10
|
-
|
11
|
-
def tile_type_name = "Js"
|
12
|
-
|
13
|
-
def initialize(name)
|
14
|
-
@name = name
|
15
|
-
end
|
16
|
-
|
17
|
-
def build
|
18
|
-
if exists?
|
19
|
-
File.write build_path, File.read(source_path)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/manifest/react.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'babel/transpiler'
|
2
|
-
|
3
|
-
module Staticz
|
4
|
-
class React
|
5
|
-
include Compilable
|
6
|
-
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def source_file_ending = "js"
|
10
|
-
|
11
|
-
def build_file_ending = "js"
|
12
|
-
|
13
|
-
def tile_type_name = "React"
|
14
|
-
|
15
|
-
def initialize(name)
|
16
|
-
@name = name
|
17
|
-
end
|
18
|
-
|
19
|
-
def build
|
20
|
-
if exists?
|
21
|
-
engine = Babel::Transpiler.transform File.read(source_path)
|
22
|
-
|
23
|
-
File.write build_path, engine["code"]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/manifest/sass.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'sassc'
|
2
|
-
|
3
|
-
module Staticz
|
4
|
-
class Sass
|
5
|
-
include Compilable
|
6
|
-
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def source_file_ending = "sass"
|
10
|
-
|
11
|
-
def build_file_ending = "css"
|
12
|
-
|
13
|
-
def tile_type_name = "Sass"
|
14
|
-
|
15
|
-
def initialize(name)
|
16
|
-
@name = name
|
17
|
-
end
|
18
|
-
|
19
|
-
def build
|
20
|
-
if exists?
|
21
|
-
engine = ::SassC::Engine.new(File.read(source_path), syntax: :sass, style: :compressed)
|
22
|
-
|
23
|
-
File.write build_path, engine.render
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/manifest/scss.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'sassc'
|
2
|
-
|
3
|
-
module Staticz
|
4
|
-
class Scss
|
5
|
-
include Compilable
|
6
|
-
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def source_file_ending = "scss"
|
10
|
-
|
11
|
-
def build_file_ending = "css"
|
12
|
-
|
13
|
-
def tile_type_name = "Scss"
|
14
|
-
|
15
|
-
def initialize(name)
|
16
|
-
@name = name
|
17
|
-
end
|
18
|
-
|
19
|
-
def build
|
20
|
-
if exists?
|
21
|
-
engine = ::SassC::Engine.new(File.read(source_path), syntax: :scss, style: :compressed)
|
22
|
-
|
23
|
-
File.write build_path, engine.render
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|