troy 0.0.34 → 0.0.38

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc838bf9fc86348d55ed3f93a986c1047924d9a513901e02dafad3f45ddcdcdf
4
- data.tar.gz: 544b493ec0e506a3ffb3289ae4215a0d51a0e4a88e374bd263cd3d5b25979000
3
+ metadata.gz: 232d28c2479e9de14fdd26394f68799351a432c9bb8d0d083e2440023146d218
4
+ data.tar.gz: f79a7f77e133f99e45fe1c3d72c2a2713687545b18ac3e74814228d28eeee040
5
5
  SHA512:
6
- metadata.gz: 9078b888d8f31cb059f5ce90e29ccdcf19f240ff990adfd40f7e4fb0d61bc3285ae63d5e416f2ca8e949f5a75f91eaa64103587d6c8b66a4f809a7a232b4a46b
7
- data.tar.gz: a092f247955e1864016ce2aeed04cea8628cef875bc23648c8b2d3093b801272d311b8d59a3b1f2889259f68ba76cf172338b51541a3b62e06d1b91fd55022cc
6
+ metadata.gz: f88b7abf0b3e02e7df2bd6c4dc644b24845c71823245cd3f74b07899f220d8b6f720088f2a505d07096d7aa778ab89bd4baf1f56aee4226034f3129d6bb5e2a8
7
+ data.tar.gz: 0d200cea534be0da48533ab1208d8ba5c09d18d2d2fd20afc774ad2c94d8eb919513e6154de765ad4514e45636bcb2ab9637c68d482f156480a8531da45726dc
data/.rubocop.yml ADDED
@@ -0,0 +1,83 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+
4
+ Style/Documentation:
5
+ Enabled: false
6
+
7
+ Rails/Delegate:
8
+ Enabled: false
9
+
10
+ Style/StringLiterals:
11
+ EnforcedStyle: double_quotes
12
+
13
+ Layout/SpaceInsideBlockBraces:
14
+ EnforcedStyle: space
15
+ EnforcedStyleForEmptyBraces: space
16
+ SpaceBeforeBlockParameters: false
17
+
18
+ Layout/SpaceInsideHashLiteralBraces:
19
+ EnforcedStyle: no_space
20
+ EnforcedStyleForEmptyBraces: no_space
21
+
22
+ Layout/FirstArrayElementLineBreak:
23
+ Enabled: true
24
+
25
+ Layout/FirstHashElementLineBreak:
26
+ Enabled: true
27
+
28
+ Style/SymbolArray:
29
+ Enabled: true
30
+
31
+ Style/PercentLiteralDelimiters:
32
+ PreferredDelimiters:
33
+ "%": "[]"
34
+ "%i": "[]"
35
+ "%q": "[]"
36
+ "%Q": "[]"
37
+ "%r": "{}"
38
+ "%s": "[]"
39
+ "%w": "[]"
40
+ "%W": "[]"
41
+ "%x": "[]"
42
+
43
+ Metrics/LineLength:
44
+ Enabled: true
45
+
46
+ Metrics/MethodLength:
47
+ Exclude:
48
+ - db/migrate/**.rb
49
+ - config/config.rb
50
+ - test/support/**/*.rb
51
+
52
+ Metrics/BlockLength:
53
+ Exclude:
54
+ - config/config.rb
55
+ - test/support/**/*.rb
56
+
57
+ Style/EmptyMethod:
58
+ EnforcedStyle: expanded
59
+
60
+ Layout/IndentFirstArrayElement:
61
+ EnforcedStyle: consistent
62
+
63
+ Style/AccessModifierDeclarations:
64
+ EnforcedStyle: inline
65
+
66
+ Naming/UncommunicativeMethodParamName:
67
+ Enabled: false
68
+
69
+ Lint/Debugger:
70
+ Exclude:
71
+ - test/**/*
72
+
73
+ Style/TrailingUnderscoreVariable:
74
+ Enabled: false
75
+
76
+ Naming/RescuedExceptionsVariableName:
77
+ PreferredName: error
78
+
79
+ Metrics/AbcSize:
80
+ Enabled: false
81
+
82
+ Metrics/MethodLength:
83
+ Enabled: false
data/lib/troy/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Cli < Thor
3
5
  check_unknown_options!
@@ -15,21 +17,29 @@ module Troy
15
17
  end
16
18
 
17
19
  options assets: :boolean, file: :array
20
+ option :concurrency, type: :numeric, default: 10
21
+ option :benchmark, type: :boolean, default: false
18
22
  desc "export", "Export files"
19
23
  def export
20
- if options[:assets]
21
- site.export_assets
22
- site.export_files
23
- end
24
+ runner = lambda do
25
+ if options[:assets]
26
+ site.export_assets
27
+ site.export_files
28
+ end
24
29
 
25
- if options[:file]
26
- options[:file].each do |file|
30
+ options[:file]&.each do |file|
27
31
  site.export_pages(file)
28
32
  end
33
+
34
+ site.export if !options[:assets] && !options[:file]
29
35
  end
30
36
 
31
- if !options[:assets] && !options[:file]
32
- site.export
37
+ if options[:benchmark]
38
+ require "benchmark"
39
+ elapsed = Benchmark.realtime(&runner)
40
+ puts "=> Finished in #{elapsed.round(2)}s"
41
+ else
42
+ runner.call
33
43
  end
34
44
  end
35
45
 
@@ -41,14 +51,14 @@ module Troy
41
51
  end
42
52
 
43
53
  desc "version", "Display Troy version"
44
- map %w(-v --version) => :version
54
+ map %w[-v --version] => :version
45
55
  def version
46
56
  say "Troy #{Troy::VERSION}"
47
57
  end
48
58
 
49
59
  desc "server", "Start a server"
50
- option :port, :type => :numeric, :default => 9292, :aliases => "-p"
51
- option :host, :type => :string, :default => "0.0.0.0", :aliases => "-b"
60
+ option :port, type: :numeric, default: 9292, aliases: "-p"
61
+ option :host, type: :string, default: "0.0.0.0", aliases: "-b"
52
62
  def server
53
63
  begin
54
64
  handler = Rack::Handler::Thin
@@ -57,12 +67,13 @@ module Troy
57
67
  handler = Rack::Handler::WEBrick
58
68
  end
59
69
 
60
- handler.run Troy::Server.new(File.join(Dir.pwd, "public")), :Port => options[:port], :Host => options[:host]
70
+ handler.run Troy::Server.new(File.join(Dir.pwd, "public")), Port: options[:port], Host: options[:host]
61
71
  end
62
72
 
63
- private
64
- def site
65
- @site ||= Troy::Site.new(Dir.pwd)
73
+ no_commands do
74
+ def site
75
+ @site ||= Troy::Site.new(Dir.pwd, options)
76
+ end
66
77
  end
67
78
  end
68
79
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  ::I18n.enforce_available_locales = false
3
5
 
@@ -5,18 +7,18 @@ module Troy
5
7
  @configuration ||= Configuration.new
6
8
  end
7
9
 
8
- def self.configure(&block)
10
+ def self.configure
9
11
  yield configuration
10
12
  end
11
13
 
12
14
  class Configuration < OpenStruct
13
15
  def assets
14
- @assets ||= Configuration.new({
16
+ @assets ||= Configuration.new(
15
17
  compress_html: true,
16
18
  compress_css: true,
17
19
  compress_js: true,
18
20
  precompile: []
19
- })
21
+ )
20
22
  end
21
23
 
22
24
  def i18n
data/lib/troy/context.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Context
3
5
  def initialize(options = {})
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class EmbeddedRuby
3
5
  # The template content.
@@ -1,15 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class ExtensionMatcher
3
- #
4
- #
5
5
  attr_reader :path
6
6
 
7
- #
8
- #
9
7
  attr_reader :performed
10
8
 
11
- #
12
- #
13
9
  attr_reader :matchers
14
10
 
15
11
  def initialize(path)
@@ -32,7 +28,7 @@ module Troy
32
28
  return handler.call if File.extname(path) == ext
33
29
  end
34
30
 
35
- matchers["default"].call if matchers["default"]
31
+ matchers["default"]&.call
36
32
  end
37
33
  end
38
34
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  # The Troy::Generator class will create a new book structure.
3
5
  #
@@ -11,7 +13,7 @@ module Troy
11
13
  desc "Generate a new site structure"
12
14
 
13
15
  def self.source_root
14
- File.expand_path("../../../templates", __FILE__)
16
+ File.expand_path("../../templates", __dir__)
15
17
  end
16
18
 
17
19
  def create_directories
data/lib/troy/hacks.rb CHANGED
@@ -1,14 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "digest/sha1"
2
4
 
3
5
  module HtmlPress
4
- CONTENT_CACHE = {}
6
+ def self.content_cache
7
+ @content_cache ||= {}
8
+ end
5
9
 
6
- def self.js_compressor (text, options = nil)
10
+ def self.js_compressor(text, options = nil)
7
11
  options ||= {}
8
12
  options[:output] ||= {inline_script: true}
9
13
 
10
14
  hash = Digest::SHA1.hexdigest(text)
11
- CONTENT_CACHE[hash] ||= MultiJs.compile(text, options).gsub(/;$/,'')
12
- CONTENT_CACHE[hash]
15
+ content_cache[hash] ||= MultiJs.compile(text, options).gsub(/;$/, "")
16
+ content_cache[hash]
13
17
  end
14
18
  end
data/lib/troy/helpers.rb CHANGED
@@ -1,17 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  module Helpers
3
5
  def h(content)
4
6
  CGI.escapeHTML(content)
5
7
  end
6
8
 
7
- def t(*args)
8
- I18n.t(*args)
9
+ def t(*args, **kwargs)
10
+ I18n.t(*args, **kwargs)
9
11
  end
10
12
 
11
13
  def partial(name, locals = {})
14
+ name = name.to_s
12
15
  basename = File.basename(name)
13
16
  dirname = File.dirname(name)
14
-
15
17
  partial = []
16
18
  partial << dirname unless dirname.start_with?(".")
17
19
  partial << "_#{basename}.erb"
@@ -20,7 +22,7 @@ module Troy
20
22
  path = site.root.join("partials/#{partial}")
21
23
  locals = locals.merge(site: site, page: page)
22
24
  EmbeddedRuby.new(path.read, locals).render
23
- rescue Exception, StandardError => error
25
+ rescue Exception => error
24
26
  raise "Unable to render #{path}; #{error.message}"
25
27
  end
26
28
 
data/lib/troy/markdown.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Markdown
3
5
  # Create a new Redcarpet renderer, that prepares the code block
@@ -31,12 +33,11 @@ module Troy
31
33
  end
32
34
 
33
35
  def renderer
34
- @renderer ||= Redcarpet::Markdown.new(Renderer, {
35
- autolink: true,
36
- space_after_headers: true,
37
- fenced_code_blocks: true,
38
- footnotes: true
39
- })
36
+ @renderer ||= Redcarpet::Markdown.new(Renderer,
37
+ autolink: true,
38
+ space_after_headers: true,
39
+ fenced_code_blocks: true,
40
+ footnotes: true)
40
41
  end
41
42
 
42
43
  def to_html
data/lib/troy/meta.rb CHANGED
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Meta
3
5
  extend Forwardable
4
6
  def_delegators :data, :[], :fetch, :key?
5
7
 
6
- REGEX = /^---\n(.*?)\n---\n+/m
8
+ REGEX = /^---\n(.*?)\n---\n+/m.freeze
7
9
 
8
10
  attr_reader :file
9
11
 
@@ -16,14 +18,15 @@ module Troy
16
18
  end
17
19
 
18
20
  def data
19
- @data ||= (raw =~ REGEX ? YAML.load(raw[REGEX, 1]) : {})
21
+ @data ||=
22
+ raw =~ REGEX ? YAML.unsafe_load(raw[REGEX, 1]) : {}
20
23
  end
21
24
 
22
- def method_missing(name, *args, &block)
25
+ def method_missing(name, *_args)
23
26
  data[name.to_s]
24
27
  end
25
28
 
26
- def respond_to_missing?(method, include_private = false)
29
+ def respond_to_missing?(_method, _include_private = false)
27
30
  true
28
31
  end
29
32
 
data/lib/troy/page.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Page
3
5
  extend Forwardable
@@ -27,33 +29,26 @@ module Troy
27
29
  @meta = meta || Meta.new(path)
28
30
  end
29
31
 
30
- #
31
- #
32
32
  def method_missing(name, *args, &block)
33
33
  return meta[name.to_s] if meta.key?(name.to_s)
34
+
34
35
  super
35
36
  end
36
37
 
37
- #
38
- #
39
- def respond_to_missing?(name, include_private = false)
38
+ def respond_to_missing?(name, _include_private = false)
40
39
  meta.key?(name.to_s)
41
40
  end
42
41
 
43
- #
44
- #
45
42
  def content
46
43
  ExtensionMatcher.new(path)
47
- .default { meta.content }
48
- .on("builder") { XML.new(meta.content, to_context).to_xml }
49
- .on("erb") { EmbeddedRuby.new(meta.content, to_context).render }
50
- .on("md") { Markdown.new(meta.content).to_html }
51
- .on("txt") { EmbeddedRuby.new(meta.content, to_context).render }
52
- .match
44
+ .default { meta.content }
45
+ .on("builder") { XML.new(meta.content, to_context).to_xml }
46
+ .on("erb") { EmbeddedRuby.new(meta.content, to_context).render }
47
+ .on("md") { Markdown.new(meta.content).to_html }
48
+ .on("txt") { EmbeddedRuby.new(meta.content, to_context).render }
49
+ .match
53
50
  end
54
51
 
55
- #
56
- #
57
52
  def to_context
58
53
  {
59
54
  page: self,
@@ -61,8 +56,6 @@ module Troy
61
56
  }
62
57
  end
63
58
 
64
- #
65
- #
66
59
  def compress(content)
67
60
  content = HtmlPress.press(content) if config.assets.compress_html
68
61
  content
@@ -72,38 +65,30 @@ module Troy
72
65
  #
73
66
  def render
74
67
  ExtensionMatcher.new(path)
75
- .default { content }
76
- .on("html") { compress render_erb }
77
- .on("md") { compress render_erb }
78
- .on("erb") { compress render_erb }
79
- .match
68
+ .default { content }
69
+ .on("html") { compress render_erb }
70
+ .on("md") { compress render_erb }
71
+ .on("erb") { compress render_erb }
72
+ .match
80
73
  end
81
74
 
82
- #
83
- #
84
75
  def permalink
85
76
  meta.fetch("permalink", File.basename(path).gsub(/\..*?$/, ""))
86
77
  end
87
78
 
88
- #
89
- #
90
79
  def filename
91
80
  ExtensionMatcher.new(path)
92
- .default { "#{permalink}.html" }
93
- .on("builder") { "#{permalink}.xml" }
94
- .on("xml") { "#{permalink}.xml" }
95
- .on("txt") { "#{permalink}.txt" }
96
- .match
81
+ .default { "#{permalink}.html" }
82
+ .on("builder") { "#{permalink}.xml" }
83
+ .on("xml") { "#{permalink}.xml" }
84
+ .on("txt") { "#{permalink}.txt" }
85
+ .match
97
86
  end
98
87
 
99
- #
100
- #
101
88
  def layout
102
- site.root.join("layouts/#{meta.fetch("layout", "default")}.erb")
89
+ site.root.join("layouts/#{meta.fetch('layout', 'default')}.erb")
103
90
  end
104
91
 
105
- #
106
- #
107
92
  def render_erb
108
93
  if layout.exist?
109
94
  EmbeddedRuby.new(
@@ -125,25 +110,19 @@ module Troy
125
110
  end
126
111
  end
127
112
 
128
- #
129
- #
130
113
  def output_file
131
114
  base = File.dirname(path)
132
- .gsub(site.root.join("source").to_s, "")
133
- .gsub(%r[^/], "")
115
+ .gsub(site.root.join("source").to_s, "")
116
+ .gsub(%r{^/}, "")
134
117
 
135
118
  site.root.join("public", base, filename)
136
119
  end
137
120
 
138
- #
139
- #
140
121
  def save
141
122
  FileUtils.mkdir_p(File.dirname(output_file))
142
123
  save_to(output_file)
143
124
  end
144
125
 
145
- #
146
- #
147
126
  def config
148
127
  Troy.configuration
149
128
  end
data/lib/troy/server.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Server
3
5
  attr_reader :root, :request
@@ -13,7 +15,9 @@ module Troy
13
15
 
14
16
  def render(status, content_type, path)
15
17
  last_modified = path.mtime.httpdate
16
- return [304, {}, []] if request.env["HTTP_IF_MODIFIED_SINCE"] == last_modified
18
+ if request.env["HTTP_IF_MODIFIED_SINCE"] == last_modified
19
+ return [304, {}, []]
20
+ end
17
21
 
18
22
  headers = {
19
23
  "Content-Type" => content_type,
@@ -26,7 +30,7 @@ module Troy
26
30
  end
27
31
 
28
32
  def normalized_path
29
- path = request.path.gsub(%r[/$], "")
33
+ path = request.path.gsub(%r{/$}, "")
30
34
  path << "?#{request.query_string}" unless request.query_string.empty?
31
35
  path
32
36
  end
@@ -36,7 +40,7 @@ module Troy
36
40
  end
37
41
 
38
42
  def process
39
- path = request.path[%r[^/(.*?)/?$], 1]
43
+ path = request.path[%r{^/(.*?)/?$}, 1]
40
44
  path = "index" if path == ""
41
45
  path = root.join(path)
42
46
 
data/lib/troy/site.rb CHANGED
@@ -1,39 +1,34 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class Site
3
- attr_accessor :root
5
+ attr_accessor :root, :options
4
6
 
5
- def initialize(root)
7
+ def initialize(root, options)
6
8
  @root = Pathname.new(root).realpath
9
+ @options = options
7
10
 
8
11
  load_configuration
9
12
  load_extensions
10
13
  set_locale
11
14
  end
12
15
 
13
- #
14
- #
15
16
  def load_extensions
16
17
  Dir[root.join("config/**/*helpers.rb")].each do |file|
17
18
  require file
18
19
  end
19
20
  end
20
21
 
21
- #
22
- #
23
22
  def set_locale
24
23
  I18n.load_path += config.i18n.load_path
25
24
  I18n.default_locale = config.i18n.locale
26
25
  I18n.locale = config.i18n.locale
27
26
  end
28
27
 
29
- #
30
- #
31
28
  def load_configuration
32
29
  load root.join("config/troy.rb")
33
30
  end
34
31
 
35
- #
36
- #
37
32
  def export
38
33
  remove_public_dir
39
34
  export_assets
@@ -41,67 +36,81 @@ module Troy
41
36
  export_pages
42
37
  end
43
38
 
44
- #
45
- #
46
39
  def export_files
47
40
  assets = root.join("assets")
48
41
 
49
- assets.entries.each do |entry|
50
- basename = entry.to_s
51
- next if [".", "..", "javascripts", "stylesheets"].include?(basename)
52
- FileUtils.rm_rf root.join("public/#{basename}")
53
- FileUtils.cp_r assets.join(entry), root.join("public/#{basename}")
42
+ assets.entries.each_slice(options[:concurrency]) do |slice|
43
+ slice.map do |entry|
44
+ Thread.new { export_file(assets, entry) }
45
+ end.each(&:join)
54
46
  end
55
47
  end
56
48
 
57
- #
58
- #
49
+ def export_file(assets, entry)
50
+ basename = entry.to_s
51
+ return if [".", "..", "javascripts", "stylesheets"].include?(basename)
52
+
53
+ FileUtils.rm_rf root.join("public/#{basename}")
54
+ FileUtils.cp_r assets.join(entry), root.join("public/#{basename}")
55
+ end
56
+
59
57
  def remove_public_dir
60
58
  FileUtils.rm_rf root.join("public")
61
59
  end
62
60
 
63
- #
64
- #
65
61
  def export_pages(file = nil)
66
62
  file = File.expand_path(file) if file
67
63
 
68
64
  pages
69
65
  .select {|page| file.nil? || page.path == file }
70
- .each(&:save)
66
+ .each_slice(options[:concurrency]) do |slice|
67
+ threads = slice.map do |page|
68
+ Thread.new do
69
+ page.save
70
+ end
71
+ end
72
+
73
+ threads.each(&:join)
74
+ end
71
75
  end
72
76
 
73
- #
74
- #
75
77
  def export_assets
76
78
  sprockets = Sprockets::Environment.new
77
79
  sprockets.append_path root.join("assets/javascripts")
78
80
  sprockets.append_path root.join("assets/stylesheets")
79
- sprockets.css_compressor = Sprockets::SassCompressor if config.assets.compress_css
80
- sprockets.js_compressor = Uglifier.new(uglifier_options) if config.assets.compress_js
81
-
82
- config.assets.precompile.each do |asset_name|
83
- asset = sprockets[asset_name]
84
- output_file = asset.pathname.to_s
85
- .gsub(root.join("assets").to_s, "")
86
- .gsub(%r[^/], "")
87
- .gsub(/\.scss$/, ".css")
88
- .gsub(/\.coffee$/, ".js")
89
-
90
- asset.write_to root.join("public/#{output_file}")
81
+
82
+ if config.assets.compress_css
83
+ sprockets.css_compressor = Sprockets::SassCompressor
84
+ end
85
+
86
+ if config.assets.compress_js
87
+ sprockets.js_compressor = Uglifier.new(uglifier_options)
88
+ end
89
+
90
+ config.assets.precompile.each_slice(options[:concurrency]) do |slice|
91
+ slice.map do |asset_name|
92
+ Thread.new { export_asset(sprockets, asset_name) }
93
+ end.each(&:join)
91
94
  end
92
95
  end
93
96
 
94
- #
95
- #
96
- #
97
+ def export_asset(sprockets, asset_name)
98
+ asset = sprockets[asset_name]
99
+ output_file = asset.filename.to_s
100
+ .gsub(root.join("assets").to_s, "")
101
+ .gsub(%r{^/}, "")
102
+ .gsub(/\.scss$/, ".css")
103
+ .gsub(/\.coffee$/, ".js")
104
+
105
+ asset.write_to root.join("public/#{output_file}")
106
+ end
107
+
97
108
  def uglifier_options
98
109
  options = Uglifier::DEFAULTS.dup
99
110
  options[:output][:comments] = :none
100
111
  options
101
112
  end
102
113
 
103
- #
104
- #
105
114
  def source
106
115
  Dir[root.join("source/**/*.{html,erb,md,builder,xml,txt}").to_s]
107
116
  end
data/lib/troy/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
- VERSION = "0.0.34"
4
+ VERSION = "0.0.38"
3
5
  end
data/lib/troy/xml.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Troy
2
4
  class XML
3
5
  # The XML content.
data/lib/troy.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Encoding.default_external = "UTF-8"
2
4
  Encoding.default_internal = "UTF-8"
3
5
 
@@ -14,7 +16,8 @@ require "rack"
14
16
  require "uglifier"
15
17
  require "html_press"
16
18
 
17
- level, $VERBOSE = $VERBOSE, nil
19
+ level = $VERBOSE
20
+ $VERBOSE = nil
18
21
  require "rouge"
19
22
  require "rouge/plugins/redcarpet"
20
23
  $VERBOSE = level
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: troy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.34
4
+ version: 0.0.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-15 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -215,6 +215,7 @@ extensions: []
215
215
  extra_rdoc_files: []
216
216
  files:
217
217
  - ".gitignore"
218
+ - ".rubocop.yml"
218
219
  - Gemfile
219
220
  - LICENSE.txt
220
221
  - README.md
@@ -253,7 +254,7 @@ homepage: http://github.com/fnando/troy
253
254
  licenses:
254
255
  - MIT
255
256
  metadata: {}
256
- post_install_message:
257
+ post_install_message:
257
258
  rdoc_options: []
258
259
  require_paths:
259
260
  - lib
@@ -268,9 +269,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
269
  - !ruby/object:Gem::Version
269
270
  version: '0'
270
271
  requirements: []
271
- rubyforge_project:
272
- rubygems_version: 2.7.3
273
- signing_key:
272
+ rubygems_version: 3.3.3
273
+ signing_key:
274
274
  specification_version: 4
275
275
  summary: A static site generator
276
276
  test_files: []