liquidum 1.0.22 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9404d7d54b121faac879b08487dec002714680bc3ce0c06ef965436de160397e
4
- data.tar.gz: f129a504cd29ada36902b96dd7e3e97094f7c593413d1593a0762c4d1c810f67
3
+ metadata.gz: 16e876c05fe67578580e9b365f02e957d0931317ced4765c9eeccc46e997deac
4
+ data.tar.gz: 20d60c9963067edc071ec34fc37833dc98cb41d8099ba6b8d860def2a8f90584
5
5
  SHA512:
6
- metadata.gz: dd318aba803d49412b67be25cb29fb905d3a562e92796a027f844873f5ea47626f75c0f31098f39f58e12728f41b6f001b8ec122f36b35b850a583ef6c3514bb
7
- data.tar.gz: 1bde9499325821bfe9b7a68944fd19ba2c91870277d382748e8e97b1481305bcfe26d880a18d20d244b14f7d89cfed63d3d6322dc9a3dc9a9a1d123ba8d3e48d
6
+ metadata.gz: f909afdc2966789818915b4fe6ad11f8a6ce9b7cba39ff3ccaec3af357a1b236242d66f6aa3ac35c2b3ce4c077674d9602b620fb2f4ef449fbab4ae690a9b206
7
+ data.tar.gz: ecc6f3c0bb6c259f468ba80afca0fa98de1ec096b0111c129d4ea9a7766d28aeb0be51c9281bd6ca9cd7acb0994ed8d5b094687457e66b9dc8c88c41e7c1e62c
data/.rubocop.yml CHANGED
@@ -1,37 +1,14 @@
1
- inherit_from: .rubocop_todo.yml
2
- AllCops:
3
- TargetRubyVersion: 2.7
4
- Exclude:
5
- - 'bin/**/*'
6
- - 'db/**/*'
7
- - 'vagrant/**/*'
8
- - 'vendor/**/*'
9
- - 'spec/**/*'
10
- - 'lib/generators/**/*'
11
- - 'node_modules/**/*'
12
- - 'test/dummy/**/*'
13
- - 'test/dummy/config/**/*'
14
-
15
- Metrics:
16
- Enabled: false
1
+ # https://www.fastruby.io/blog/ruby/code-quality/how-we-use-rubocop-and-standardrb.html
17
2
 
18
- Style/PercentLiteralDelimiters:
19
- PreferredDelimiters:
20
- '%': '[]'
21
- '%i': '[]'
22
- '%q': '[]'
23
- '%Q': '[]'
24
- '%r': '[]'
25
- '%s': '[]'
26
- '%w': '[]'
27
- '%W': '[]'
28
- '%x': '[]'
3
+ require:
4
+ - standard
29
5
 
30
- Style/Documentation:
31
- Enabled: false
6
+ inherit_gem:
7
+ standard: config/base.yml
32
8
 
33
- Style/GuardClause:
34
- Enabled: false
35
-
36
- Style/ClassAndModuleChildren:
37
- Enabled: false
9
+ AllCops:
10
+ NewCops: enable
11
+ Exclude:
12
+ - node_modules/**/*
13
+ - public/**/*
14
+ - vendor/**/*
data/Gemfile CHANGED
@@ -1,18 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
- git_source(:entdec) { |repo_name| "git@github.com:entdec/#{repo_name}.git" }
4
3
 
5
4
  # Declare your gem's dependencies in liquidum.gemspec.
6
5
  # Bundler will treat runtime dependencies like base dependencies, and
7
6
  # development dependencies will be added by default to the :development group.
8
7
  gemspec
9
-
10
- # Declare any dependencies that are still in development here instead of in
11
- # your gemspec. These might include edge Rails or gems from your path or
12
- # Git. Remember to move these dependencies to your gemspec before releasing
13
- # your gem to rubygems.org.
14
-
15
- # To use a debugger
16
- # gem 'byebug', group: [:development, :test]
17
- gem 'pry'
18
- gem 'solargraph'
data/Rakefile CHANGED
@@ -1,37 +1,33 @@
1
1
  begin
2
- require 'bundler/setup'
2
+ require "bundler/setup"
3
3
  rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
4
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
5
5
  end
6
6
 
7
- require 'rdoc/task'
7
+ require "rdoc/task"
8
8
 
9
9
  RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'Liquidum'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.md')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
10
+ rdoc.rdoc_dir = "rdoc"
11
+ rdoc.title = "Liquidum"
12
+ rdoc.options << "--line-numbers"
13
+ rdoc.rdoc_files.include("README.md")
14
+ rdoc.rdoc_files.include("lib/**/*.rb")
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path('test/dummy/Rakefile', __dir__)
18
- load 'rails/tasks/engine.rake'
17
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
18
+ load "rails/tasks/engine.rake"
19
19
 
20
- load 'rails/tasks/statistics.rake'
20
+ load "rails/tasks/statistics.rake"
21
21
 
22
- require 'bundler/gem_tasks'
22
+ require "bundler/gem_tasks"
23
23
 
24
- require 'rake/testtask'
24
+ require "rake/testtask"
25
25
 
26
26
  Rake::TestTask.new(:test) do |t|
27
- t.libs << 'test'
28
- t.pattern = 'test/**/*_test.rb'
27
+ t.libs << "test"
28
+ t.pattern = "test/**/*_test.rb"
29
29
  t.verbose = false
30
30
  t.warning = false
31
31
  end
32
32
 
33
33
  task default: :test
34
-
35
- # Adds the Auxilium semver task
36
- spec = Gem::Specification.find_by_name 'auxilium'
37
- load "#{spec.gem_dir}/lib/tasks/semver.rake"
@@ -1,23 +1,55 @@
1
1
  module Liquidum
2
+ module Options
3
+ module ClassMethods
4
+ def option(name, default: nil)
5
+ attr_accessor(name)
6
+
7
+ schema[name] = default
8
+ end
9
+
10
+ def schema
11
+ @schema ||= {}
12
+ end
13
+ end
14
+
15
+ def set_defaults!
16
+ self.class.schema.each do |name, default|
17
+ instance_variable_set(:"@#{name}", default)
18
+ end
19
+ end
20
+
21
+ def self.included(cls)
22
+ cls.extend(ClassMethods)
23
+ end
24
+ end
25
+
2
26
  class Configuration
3
- attr_writer :logger
4
- attr_accessor :liquidum_file_system
5
- attr_writer :i18n_store
27
+ include Options
28
+
29
+ option :logger, default: -> { Logger.new($stdout).tap { |l| l.level = Logger::INFO } }
30
+ option :liquidum_file_system, default: "Liquidum::LiquidumFileSystem"
31
+ option :i18n_store, default: ->(context, block) {}
6
32
 
7
33
  def initialize
8
- @logger = Logger.new(STDOUT)
9
- @logger.level = Logger::INFO
10
- @liquidum_file_system = 'Liquidum::LiquidumFileSystem'
11
- @i18n_store = ->(context, block) { nil }
34
+ set_defaults!
12
35
  end
36
+ end
37
+
38
+ module Configurable
39
+ attr_writer :config
13
40
 
14
- # logger [Object].
15
- def logger
16
- @logger.is_a?(Proc) ? instance_exec(&@logger) : @logger
41
+ def config
42
+ @config ||= Configuration.new
17
43
  end
18
44
 
19
- def i18n_store(context, &block)
20
- @i18n_store.is_a?(Proc) ? instance_exec(context, block, &@i18n_store) : @i18n_store
45
+ def configure
46
+ yield(config)
47
+ end
48
+
49
+ alias_method :setup, :configure
50
+
51
+ def reset_config!
52
+ @config = Configuration.new
21
53
  end
22
54
  end
23
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Liquidum
4
- VERSION = "1.0.22"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/liquidum.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'liquid'
4
4
  require 'tilt'
5
5
  require 'sassc'
6
- require "addressable/uri"
6
+ require 'addressable/uri'
7
7
 
8
8
  require 'liquidum/version'
9
9
  require 'liquidum/engine'
@@ -17,11 +17,14 @@ require 'liquidum/liquid/liquidum_tag'
17
17
  require 'liquidum/liquid/parser'
18
18
 
19
19
  module Liquidum
20
+ extend Configurable
21
+
20
22
  class Error < StandardError; end
21
23
  class UnknownStepTypeError < Error; end
22
24
 
23
25
  class LiquidumFileSystem
24
26
  attr_reader :registers
27
+
25
28
  def initialize(registers)
26
29
  @registers = registers
27
30
  end
@@ -37,19 +40,14 @@ module Liquidum
37
40
  end
38
41
 
39
42
  class << self
40
- attr_reader :config
41
-
42
- def setup
43
- @config = Configuration.new
44
- yield config
45
- end
46
-
47
43
  def render(content, options = {})
48
44
  template = Liquid::Template.parse(content)
49
45
  options[:assigns] ||= {}
50
46
  options[:registers] ||= {}
51
- options[:registers]['file_system'] = Liquidum.config.liquidum_file_system.constantize.new(options[:registers])
52
- result = template.render(options[:context] || options[:assigns].stringify_keys, registers: options[:registers])
47
+ options[:registers]['file_system'] =
48
+ Liquidum.config.liquidum_file_system.constantize.new(options[:registers])
49
+ result = template.render(options[:context] || options[:assigns].stringify_keys,
50
+ registers: options[:registers])
53
51
 
54
52
  if template.errors.present?
55
53
  Liquidum.config.logger.error '--- Template rendering errors: ' + '-' * 49
@@ -66,9 +64,14 @@ module Liquidum
66
64
  assigns = assigns.merge(template.assigns.stringify_keys) if template.assigns
67
65
  options[:registers].deep_merge!(template.registers.stringify_keys) if template.registers
68
66
 
69
- result = Tilt[options[:filter]].new(options[:filter_options]) { result }.render if options[:filter].present? && Tilt[options[:filter]]
67
+ if options[:filter].present? && Tilt[options[:filter]]
68
+ result = Tilt[options[:filter]].new(options[:filter_options]) do
69
+ result
70
+ end.render
71
+ end
70
72
  if options[:layout].present?
71
- result = render(options[:layout], assigns: assigns.merge('content' => result), registers: options[:registers])
73
+ result = render(options[:layout], assigns: assigns.merge('content' => result),
74
+ registers: options[:registers])
72
75
  end
73
76
 
74
77
  result
data/liquidum.gemspec CHANGED
@@ -1,47 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- $LOAD_PATH.push File.expand_path('lib', __dir__)
3
+ $LOAD_PATH.push File.expand_path("lib", __dir__)
4
4
 
5
5
  # Maintain your gem's version:
6
- require 'liquidum/version'
6
+ require "liquidum/version"
7
7
 
8
8
  Gem::Specification.new do |spec|
9
- spec.name = 'liquidum'
9
+ spec.name = "liquidum"
10
10
  spec.version = Liquidum::VERSION
11
11
 
12
- spec.required_rubygems_version = Gem::Requirement.new('>= 0') if spec.respond_to? :required_rubygems_version=
13
- spec.require_paths = ['lib']
14
- spec.authors = ['Tom de Grunt']
15
- spec.date = '2021-11-18'
16
- spec.description = 'Ready made set of tags, parsings and awesomeness'
17
- spec.email = ['tom@degrunt.nl']
12
+ spec.required_rubygems_version = Gem::Requirement.new(">= 0") if spec.respond_to? :required_rubygems_version=
13
+ spec.require_paths = ["lib"]
14
+ spec.authors = ["Tom de Grunt"]
15
+ spec.description = "Ready made set of tags, parsings and awesomeness"
16
+ spec.email = ["tom@degrunt.nl"]
18
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
18
  f.match(%r{^(test|spec|features)/})
20
19
  end
21
- spec.homepage = 'https://github.com/entdec/liquidum'
22
- spec.licenses = ['MIT']
23
- spec.rubygems_version = '3.1.6'
24
- spec.summary = 'Liquid templating - on steroids'
20
+ spec.homepage = "https://github.com/entdec/liquidum"
21
+ spec.licenses = ["MIT"]
22
+ spec.summary = "Liquid templating - on steroids"
25
23
 
26
- spec.installed_by_version = '3.1.6' if spec.respond_to? :installed_by_version
24
+ spec.installed_by_version = "3.1.6" if spec.respond_to? :installed_by_version
27
25
 
28
- spec.specification_version = 4 if spec.respond_to? :specification_version
29
-
30
- spec.add_runtime_dependency('addressable', ['~> 2'])
31
- spec.add_runtime_dependency('babel-transpiler', ['~> 0.7'])
32
- spec.add_runtime_dependency('i18n', ['~> 1.8'])
33
- spec.add_runtime_dependency('kramdown', ['~> 2.1'])
34
- spec.add_runtime_dependency('kramdown-parser-gfm', ['~> 1.0'])
35
- spec.add_runtime_dependency('liquid', ['= 5.1.0'])
36
- spec.add_runtime_dependency('parslet', ['>= 0'])
37
- spec.add_runtime_dependency('pg', ['>= 0'])
38
- spec.add_runtime_dependency('rails', ['>= 5.2'])
39
- spec.add_runtime_dependency('sassc', ['~> 2.2'])
26
+ spec.add_runtime_dependency("addressable", ["~> 2"])
27
+ spec.add_runtime_dependency("babel-transpiler", ["~> 0.7"])
28
+ spec.add_runtime_dependency("i18n", ["~> 1.8"])
29
+ spec.add_runtime_dependency("kramdown", ["~> 2.1"])
30
+ spec.add_runtime_dependency("kramdown-parser-gfm", ["~> 1.0"])
31
+ spec.add_runtime_dependency("liquid", ["= 5.1.0"])
32
+ spec.add_runtime_dependency("parslet", [">= 0"])
33
+ spec.add_runtime_dependency("pg", [">= 0"])
34
+ spec.add_runtime_dependency("rails", [">= 5.2"])
35
+ spec.add_runtime_dependency("sassc", ["~> 2.2"])
40
36
  spec.add_runtime_dependency "slim-rails", "~> 3.6"
41
- spec.add_development_dependency('auxilium', ['~>3'])
42
- spec.add_development_dependency('minitest', ['~> 5.11'])
43
- spec.add_development_dependency('minitest-reporters', ['~> 1.1'])
44
- spec.add_development_dependency('pry', ['> 0'])
45
- spec.add_development_dependency('pry-rails', ['~> 0.3'])
46
- spec.add_development_dependency('rubocop', ['~> 1'])
37
+ spec.add_development_dependency("minitest", ["~> 5.11"])
38
+ spec.add_development_dependency("minitest-reporters", ["~> 1.1"])
39
+ spec.add_development_dependency("pry", ["> 0"])
40
+ spec.add_development_dependency("pry-rails", ["~> 0.3"])
41
+ spec.add_development_dependency "rubocop", "~> 1"
42
+
43
+ spec.add_development_dependency "standard", "~> 1"
47
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquidum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.22
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom de Grunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-18 00:00:00.000000000 Z
11
+ date: 2024-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -164,20 +164,6 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '3.6'
167
- - !ruby/object:Gem::Dependency
168
- name: auxilium
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '3'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '3'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: minitest
183
169
  requirement: !ruby/object:Gem::Requirement
@@ -248,6 +234,20 @@ dependencies:
248
234
  - - "~>"
249
235
  - !ruby/object:Gem::Version
250
236
  version: '1'
237
+ - !ruby/object:Gem::Dependency
238
+ name: standard
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '1'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1'
251
251
  description: Ready made set of tags, parsings and awesomeness
252
252
  email:
253
253
  - tom@degrunt.nl
@@ -258,7 +258,6 @@ files:
258
258
  - ".github/workflows/gem-push.yml"
259
259
  - ".gitignore"
260
260
  - ".rubocop.yml"
261
- - ".rubocop_todo.yml"
262
261
  - Gemfile
263
262
  - MIT-LICENSE
264
263
  - README.md
data/.rubocop_todo.yml DELETED
@@ -1,39 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2019-01-25 20:13:51 +0100 using RuboCop version 0.63.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- # Cop supports --auto-correct.
11
- # Configuration parameters: AutoCorrect, EnforcedStyle.
12
- # SupportedStyles: nested, compact
13
- Style/ClassAndModuleChildren:
14
- Exclude:
15
- - "test/liquidum_test.rb"
16
-
17
- # Offense count: 6
18
- Style/Documentation:
19
- Exclude:
20
- - "spec/**/*"
21
- - "test/**/*"
22
- - "app/controllers/liquidum/application_controller.rb"
23
- - "app/helpers/liquidum/application_helper.rb"
24
- - "app/mailers/liquidum/application_mailer.rb"
25
- - "app/models/liquidum/application_record.rb"
26
- - "lib/liquidum.rb"
27
- - "lib/liquidum/engine.rb"
28
-
29
- # Offense count: 2
30
- Style/MixinUsage:
31
- Exclude:
32
- - "test/dummy/bin/setup"
33
- - "test/dummy/bin/update"
34
-
35
- # Offense count: 27
36
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
37
- # URISchemes: http, https
38
- Metrics/LineLength:
39
- Max: 112