language-ruby 0.5.3 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05749a98bba8a50630c8780cfc867dc9896c49dc02dde0b2866504a3e6d5470a'
4
- data.tar.gz: 2b5f1a517e49e30f4f3a9c8d52faba2ddedad5a567473863fd3006e790b8018c
3
+ metadata.gz: 0d1f823779fa3988a81d38592f61fdf2c741169cd4d676a6865de6e39c9cb063
4
+ data.tar.gz: d95cdb157fb3da9c59b18fc4f84808fe2368390a132e2be8b9e2bc6a20758503
5
5
  SHA512:
6
- metadata.gz: 8be20c47524964786c35f409329fbdb23d6335d3b471247c4d08e747920129e1bc2980c830bdb8b3be24d0d16c9cf30311c95172e5e377dcaa0c1973fee75c05
7
- data.tar.gz: 2db666b26767609eaa6793341d8f87ce426a5ec0ea42daa8fc59bf2d2c05ba8316d8c79ca31260c59bf021e22f8101493a3fbd9dfd21bcdb290b28e34b27db2e
6
+ metadata.gz: 116fdcc420c21f19456a52a7d5a1ddf4d5c51a8c83e43522c03eaf7855c48d333d7077014bac0bc30afb6a49521d057183f449acaa867597ac67bba1d89c93a0
7
+ data.tar.gz: 63bce33e3bbe8db8baf4ea842467f98aafc0470277d15665253cca727d29fcfc1e00b79f4f00b35c734937b15dbb17dbc0144b80ae526dbc5075d1b019249047
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.1.3
data/Gemfile.lock CHANGED
@@ -8,9 +8,9 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- code-ruby (0.4.0)
11
+ code-ruby (0.5.4)
12
12
  zeitwerk (~> 2)
13
- template-ruby (0.4.0)
13
+ template-ruby (0.5.4)
14
14
  zeitwerk (~> 2)
15
15
 
16
16
  GEM
@@ -36,6 +36,7 @@ GEM
36
36
 
37
37
  PLATFORMS
38
38
  arm64-darwin-21
39
+ arm64-darwin-22
39
40
 
40
41
  DEPENDENCIES
41
42
  code-ruby!
@@ -25,6 +25,9 @@ class Code
25
25
  elsif operator == "reverse"
26
26
  sig(arguments)
27
27
  reverse
28
+ elsif operator == "downcase"
29
+ sig(arguments)
30
+ downcase
28
31
  elsif operator == "include?"
29
32
  sig(arguments) { ::Code::Object::String }
30
33
  include?(value)
@@ -87,6 +90,10 @@ class Code
87
90
  ::Code::Object::String.new(raw.reverse)
88
91
  end
89
92
 
93
+ def downcase
94
+ ::Code::Object::String.new(raw.downcase)
95
+ end
96
+
90
97
  def include?(value)
91
98
  ::Code::Object::Boolean.new(raw.include?(value.raw))
92
99
  end
@@ -92,9 +92,15 @@ class Code
92
92
  special_character.absent << any
93
93
  end
94
94
 
95
+ def separator
96
+ special_character
97
+ end
98
+
95
99
  def root
96
- do_keyword.absent << end_keyword.absent << elsif_keyword.absent <<
97
- else_keyword.absent << character.repeat(1)
100
+ (do_keyword << separator).absent <<
101
+ (else_keyword << separator).absent <<
102
+ (elsif_keyword << separator).absent <<
103
+ (end_keyword << separator).absent << character.repeat(1)
98
104
  end
99
105
  end
100
106
  end
data/lib/code/ruby.rb CHANGED
@@ -15,6 +15,8 @@ class Code
15
15
  def to_code
16
16
  if code?
17
17
  raw
18
+ elsif nil?
19
+ ::Code::Object::Nothing.new
18
20
  elsif true?
19
21
  ::Code::Object::Boolean.new(raw)
20
22
  elsif false?
@@ -50,7 +52,9 @@ class Code
50
52
 
51
53
  def from_code
52
54
  if code?
53
- if code_boolean?
55
+ if code_nothing?
56
+ raw.raw
57
+ elsif code_boolean?
54
58
  raw.raw
55
59
  elsif code_decimal?
56
60
  raw.raw
@@ -87,6 +91,10 @@ class Code
87
91
  raw.is_a?(::Code::Object)
88
92
  end
89
93
 
94
+ def nil?
95
+ raw.is_a?(::NilClass)
96
+ end
97
+
90
98
  def true?
91
99
  raw.is_a?(::TrueClass)
92
100
  end
@@ -127,6 +135,10 @@ class Code
127
135
  raw.is_a?(::Proc)
128
136
  end
129
137
 
138
+ def code_nothing?
139
+ raw.is_a?(::Code::Object::Nothing)
140
+ end
141
+
130
142
  def code_boolean?
131
143
  raw.is_a?(::Code::Object::Boolean)
132
144
  end
@@ -1,3 +1,3 @@
1
1
  require_relative "../template"
2
2
 
3
- Template::Version = Gem::Version.new("0.5.3")
3
+ Template::Version = Gem::Version.new("0.5.5")
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "function" do
4
+ it "converts nil" do
5
+ expect(Code::Ruby.from_code(Code.evaluate("a", ruby: { a: nil }))).to eq(nil)
6
+ end
7
+
8
+ it "works with downcase" do
9
+ expect(Code.evaluate("downcase", "{ downcase: 1 }")).to eq(1)
10
+ end
11
+ end
@@ -16,7 +16,8 @@ RSpec.describe "string" do
16
16
  ['"Hello \\{name}"', "Hello {name}"],
17
17
  ["'Hello {1}'", "Hello 1"],
18
18
  ['"Hello {1}"', "Hello 1"],
19
- ['"Hello".include?("H")', "true"]
19
+ ['"Hello".include?("H")', "true"],
20
+ ['"Hello".downcase', "hello"]
20
21
  ].each do |input, output|
21
22
  context input do
22
23
  let(:input) { input }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: language-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-08 00:00:00.000000000 Z
11
+ date: 2023-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk
@@ -36,6 +36,7 @@ files:
36
36
  - ".gitignore"
37
37
  - ".prettierrc"
38
38
  - ".rspec"
39
+ - ".tool-versions"
39
40
  - CHANGELOG.md
40
41
  - Gemfile
41
42
  - Gemfile.lock
@@ -180,6 +181,7 @@ files:
180
181
  - spec/code/boolean_spec.rb
181
182
  - spec/code/call_spec.rb
182
183
  - spec/code/chained_call_spec.rb
184
+ - spec/code/code_spec.rb
183
185
  - spec/code/dictionnary_spec.rb
184
186
  - spec/code/equal_spec.rb
185
187
  - spec/code/equality_spec.rb
@@ -248,6 +250,7 @@ test_files:
248
250
  - spec/code/boolean_spec.rb
249
251
  - spec/code/call_spec.rb
250
252
  - spec/code/chained_call_spec.rb
253
+ - spec/code/code_spec.rb
251
254
  - spec/code/dictionnary_spec.rb
252
255
  - spec/code/equal_spec.rb
253
256
  - spec/code/equality_spec.rb