Add nanoc/ruledsl/require_rules.rb
This commit is contained in:
parent
c4593eac90
commit
4824d3cada
3 changed files with 29 additions and 22 deletions
17
Rules
17
Rules
|
@ -6,11 +6,14 @@ require "ryo/json"
|
||||||
require "nanoc-gzip"
|
require "nanoc-gzip"
|
||||||
require "nanoc-webpack"
|
require "nanoc-webpack"
|
||||||
require "nanoc-tidy"
|
require "nanoc-tidy"
|
||||||
require_relative "nanoc/lib/require_rules"
|
|
||||||
Nanoc::RuleDSL::CompilationRuleContext.prepend(Nanoc::RuleDSL::Filter)
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Common vars
|
# DSL extensions
|
||||||
|
Nanoc::RuleDSL::CompilationRuleContext.prepend(Nanoc::RuleDSL::Filter)
|
||||||
|
Nanoc::RuleDSL::CompilerDSL.prepend(Nanoc::RuleDSL::RequireRules)
|
||||||
|
|
||||||
|
##
|
||||||
|
# variables
|
||||||
locales = %w[ar en]
|
locales = %w[ar en]
|
||||||
json_dir = File.join(Dir.getwd, "src", "json")
|
json_dir = File.join(Dir.getwd, "src", "json")
|
||||||
name_by_id = Ryo.from_json_file("#{json_dir}/nameById.json")
|
name_by_id = Ryo.from_json_file("#{json_dir}/nameById.json")
|
||||||
|
@ -18,7 +21,7 @@ tdata = Ryo.from_json_file("#{json_dir}/t.json")
|
||||||
buildenv = ENV["buildenv"] || "development"
|
buildenv = ENV["buildenv"] || "development"
|
||||||
|
|
||||||
##
|
##
|
||||||
# Plugins
|
# plugins
|
||||||
Nanoc::Webpack
|
Nanoc::Webpack
|
||||||
.default_argv
|
.default_argv
|
||||||
.concat ["--config", "webpack.#{buildenv}.js"]
|
.concat ["--config", "webpack.#{buildenv}.js"]
|
||||||
|
@ -27,7 +30,7 @@ Nanoc::Tidy
|
||||||
.concat ["-upper"]
|
.concat ["-upper"]
|
||||||
|
|
||||||
##
|
##
|
||||||
# See packages/typescript/postman
|
# see packages/typescript/postman
|
||||||
compile "/css/vendor/postman.scss" do
|
compile "/css/vendor/postman.scss" do
|
||||||
filter :sass, syntax: :scss, style: :compact
|
filter :sass, syntax: :scss, style: :compact
|
||||||
filter :rainpress
|
filter :rainpress
|
||||||
|
@ -49,7 +52,7 @@ compile "/robots.txt" do
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Require rules
|
# require rules
|
||||||
require_rules "nanoc/rules/assets"
|
require_rules "nanoc/rules/assets"
|
||||||
require_rules "nanoc/rules/redirect"
|
require_rules "nanoc/rules/redirect"
|
||||||
require_rules "nanoc/rules/random", {locales:}
|
require_rules "nanoc/rules/random", {locales:}
|
||||||
|
@ -57,6 +60,6 @@ require_rules "nanoc/rules/stream", {locales:, tdata:, name_by_id:}
|
||||||
require_rules "nanoc/rules/index", {locales:, tdata:}
|
require_rules "nanoc/rules/index", {locales:, tdata:}
|
||||||
|
|
||||||
##
|
##
|
||||||
# Defaults
|
# defaults
|
||||||
compile("/**/*") { write(nil) }
|
compile("/**/*") { write(nil) }
|
||||||
layout("**/*", :erb)
|
layout("**/*", :erb)
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
def require_rules(rules, locals = {}, target = binding)
|
|
||||||
locals.each { target.local_variable_set(_1, _2) }
|
|
||||||
path = File.join(Dir.getwd, rules)
|
|
||||||
target.eval(
|
|
||||||
if File.readable?(path)
|
|
||||||
File.read(path)
|
|
||||||
elsif File.readable?("#{path}.rb")
|
|
||||||
File.read("#{path}.rb")
|
|
||||||
elsif File.readable?("#{path}.rules")
|
|
||||||
File.read("#{path}.rules")
|
|
||||||
else
|
|
||||||
raise LoadError, "#{path} is not readable"
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
19
nanoc/ruledsl/require_rules.rb
Normal file
19
nanoc/ruledsl/require_rules.rb
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
module Nanoc::RuleDSL
|
||||||
|
module RequireRules
|
||||||
|
def require_rules(rules, locals = {}, target = binding)
|
||||||
|
locals.each { target.local_variable_set(_1, _2) }
|
||||||
|
path = File.join(Dir.getwd, rules)
|
||||||
|
target.eval(
|
||||||
|
if File.readable?(path)
|
||||||
|
File.read(path)
|
||||||
|
elsif File.readable?("#{path}.rb")
|
||||||
|
File.read("#{path}.rb")
|
||||||
|
elsif File.readable?("#{path}.rules")
|
||||||
|
File.read("#{path}.rules")
|
||||||
|
else
|
||||||
|
raise LoadError, "#{path} is not readable"
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue