rblade 0.6.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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