rblade 0.6.1 → 1.0.1

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.
@@ -7,7 +7,7 @@ module RBlade
7
7
 
8
8
  def compileStack args
9
9
  if args&.count != 1
10
- raise StandardError.new "Stack statement: wrong number of arguments (given #{args&.count}, expecting 1)"
10
+ raise StandardError.new "Stack statement: wrong number of arguments (given #{args&.count || 0}, expecting 1)"
11
11
  end
12
12
 
13
13
  "RBlade::StackManager.initialize(#{args[0]}, _out);_stacks.push(#{args[0]});_out = '';"
@@ -15,7 +15,7 @@ module RBlade
15
15
 
16
16
  def compilePrepend args
17
17
  if args&.count != 1
18
- raise StandardError.new "Prepend statement: wrong number of arguments (given #{args&.count}, expecting 1)"
18
+ raise StandardError.new "Prepend statement: wrong number of arguments (given #{args&.count || 0}, expecting 1)"
19
19
  end
20
20
 
21
21
  @push_counter += 1
@@ -24,7 +24,7 @@ module RBlade
24
24
  end
25
25
 
26
26
  def compileEndPrepend args
27
- if !args.nil?
27
+ unless args.nil?
28
28
  raise StandardError.new "End prepend statement: wrong number of arguments (given #{args&.count}, expecting 0)"
29
29
  end
30
30
 
@@ -42,8 +42,8 @@ module RBlade
42
42
  end
43
43
 
44
44
  def compileEndPrependIf args
45
- if !args.nil?
46
- raise StandardError.new "End push if statement: wrong number of arguments (given #{args&.count}, expecting 0)"
45
+ unless args.nil?
46
+ raise StandardError.new "End prepend if statement: wrong number of arguments (given #{args.count}, expecting 0)"
47
47
  end
48
48
 
49
49
  "end;" + compileEndPush(nil)
@@ -61,15 +61,15 @@ module RBlade
61
61
 
62
62
  def compilePushIf args
63
63
  if args&.count != 2
64
- raise StandardError.new "Push if statement: wrong number of arguments (given #{args&.count}, expecting 2)"
64
+ raise StandardError.new "Push if statement: wrong number of arguments (given #{args&.count || 0}, expecting 2)"
65
65
  end
66
66
 
67
67
  "if #{args[0]};" + compilePush([args[1]])
68
68
  end
69
69
 
70
70
  def compileEndPush args
71
- if !args.nil?
72
- raise StandardError.new "End push statement: wrong number of arguments (given #{args&.count}, expecting 0)"
71
+ unless args.nil?
72
+ raise StandardError.new "End push statement: wrong number of arguments (given #{args.count}, expecting 0)"
73
73
  end
74
74
 
75
75
  @push_counter -= 1
@@ -78,8 +78,8 @@ module RBlade
78
78
  end
79
79
 
80
80
  def compileEndPushIf args
81
- if !args.nil?
82
- raise StandardError.new "End push if statement: wrong number of arguments (given #{args&.count}, expecting 0)"
81
+ unless args.nil?
82
+ raise StandardError.new "End push if statement: wrong number of arguments (given #{args.count}, expecting 0)"
83
83
  end
84
84
 
85
85
  "end;" + compileEndPush(nil)
@@ -79,7 +79,7 @@ module RBlade
79
79
  case segments[i][:value][:name]
80
80
  when "case"
81
81
  # Remove any whitespace before a when statement
82
- until segments[i + 1].nil? || segments[i + 1] == '@'
82
+ until segments[i + 1].nil? || segments[i + 1] == "@"
83
83
  segments.delete_at i + 1
84
84
  end
85
85
  end
@@ -1,6 +1,6 @@
1
1
  require "rblade/compiler/compiles_comments"
2
2
  require "rblade/compiler/compiles_components"
3
- require "rblade/compiler/compiles_echos"
3
+ require "rblade/compiler/compiles_prints"
4
4
  require "rblade/compiler/compiles_ruby"
5
5
  require "rblade/compiler/compiles_verbatim"
6
6
  require "rblade/compiler/compiles_statements"
@@ -37,7 +37,7 @@ module RBlade
37
37
  CompilesRuby.new.compile! tokens
38
38
  TokenizesComponents.new.tokenize! tokens
39
39
  TokenizesStatements.new.tokenize! tokens
40
- CompilesEchos.new.compile! tokens
40
+ CompilesPrints.new.compile! tokens
41
41
  CompilesStatements.new.compile! tokens
42
42
  CompilesComponents.new.compile! tokens
43
43
 
@@ -49,7 +49,7 @@ module RBlade
49
49
 
50
50
  CompilesComments.compile!(tokens)
51
51
  CompilesRuby.compile! tokens
52
- CompilesEchos.compile!(tokens)
52
+ CompilesPrints.compile!(tokens)
53
53
 
54
54
  compileTokens tokens
55
55
  end
@@ -15,15 +15,17 @@ module RBlade
15
15
  @attributes[key]
16
16
  end
17
17
 
18
- def has?(key)
19
- !@attributes[key].nil?
18
+ def has?(*keys)
19
+ keys.map!(&:to_sym)
20
+
21
+ keys.all? { |key| @attributes.has_key? key }
20
22
  end
21
23
 
22
- def method_missing(method, *, &block)
24
+ def method_missing(method, *, &)
23
25
  if [:select, :filter, :slice].include? method
24
- AttributesManager.new @attributes.send(method, *, &block)
26
+ AttributesManager.new @attributes.send(method, *, &)
25
27
  else
26
- @attributes.send(method, *, &block)
28
+ @attributes.send(method, *, &)
27
29
  end
28
30
  end
29
31
 
@@ -91,12 +93,6 @@ module RBlade
91
93
  AttributesManager.new new_attributes
92
94
  end
93
95
 
94
- def has?(*keys)
95
- keys.map!(&:to_sym)
96
-
97
- keys.all? { |key| @attributes.has_key? key }
98
- end
99
-
100
96
  def has_any?(*keys)
101
97
  keys.map!(&:to_sym)
102
98
 
@@ -24,8 +24,11 @@ module RBlade
24
24
  @content.respond_to?(method_name)
25
25
  end
26
26
 
27
- def attributes
28
- @attributes
27
+ # Wraps var in a slot manager, if it isn't already
28
+ def self.wrap var
29
+ var.is_a?(self) ? var : new(var)
29
30
  end
31
+
32
+ attr_reader :attributes
30
33
  end
31
34
  end
data/rblade.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rblade"
3
- s.version = "0.6.1"
3
+ s.version = "1.0.1"
4
4
  s.summary = "A component-first templating engine for Rails"
5
5
  s.description = "RBlade is a simple, yet powerful templating engine for Ruby on Rails, inspired by Laravel Blade."
6
6
  s.authors = ["Simon J"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rblade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon J
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-02 00:00:00.000000000 Z
11
+ date: 2024-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -79,24 +79,32 @@ files:
79
79
  - Gemfile
80
80
  - LICENSE.md
81
81
  - README.md
82
+ - REFERENCE.md
82
83
  - Rakefile
83
84
  - do
84
85
  - docker-compose.yml
86
+ - examples/README.md
87
+ - examples/application/home.rblade
88
+ - examples/components/content/alert.rblade
89
+ - examples/components/content/hero.rblade
90
+ - examples/components/h1.rblade
91
+ - examples/components/p.rblade
92
+ - examples/layouts/app.rblade
85
93
  - lib/rblade.rb
86
94
  - lib/rblade/compiler.rb
87
95
  - lib/rblade/compiler/compiles_comments.rb
88
96
  - lib/rblade/compiler/compiles_components.rb
89
- - lib/rblade/compiler/compiles_echos.rb
97
+ - lib/rblade/compiler/compiles_prints.rb
90
98
  - lib/rblade/compiler/compiles_ruby.rb
91
99
  - lib/rblade/compiler/compiles_statements.rb
92
100
  - lib/rblade/compiler/compiles_verbatim.rb
101
+ - lib/rblade/compiler/statements/compiles_component_helpers.rb
93
102
  - lib/rblade/compiler/statements/compiles_conditionals.rb
94
103
  - lib/rblade/compiler/statements/compiles_form.rb
95
104
  - lib/rblade/compiler/statements/compiles_html_attributes.rb
96
105
  - lib/rblade/compiler/statements/compiles_inline_ruby.rb
97
106
  - lib/rblade/compiler/statements/compiles_loops.rb
98
107
  - lib/rblade/compiler/statements/compiles_once.rb
99
- - lib/rblade/compiler/statements/compiles_props.rb
100
108
  - lib/rblade/compiler/statements/compiles_stacks.rb
101
109
  - lib/rblade/compiler/tokenizes_components.rb
102
110
  - lib/rblade/compiler/tokenizes_statements.rb