code-ruby 0.6.3 → 0.6.4

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: 7ab3a0f0749357d4065315d58b613f8d44cba5f567b6ae33444cff90c1dedde0
4
- data.tar.gz: b48a0d5c713c0eb33c53bd30fafaaa7bc03f657a7ac7a5c70ae257eedf677cc0
3
+ metadata.gz: 2885af9560ee132a0d9ab0be653fadd74e54e04975a1673ff98d929e14040088
4
+ data.tar.gz: 68450cd4d425cc61bccd154f32b7786a2e7f0778ca567a2e19346b017f6e40c2
5
5
  SHA512:
6
- metadata.gz: e137c317b1d87a1a61d30ce70d4bccdd75417ab002c6ad57249081f2e8b8189e4194efaad6e277f68448fa8f55b1402e337d5387d34449b69fce4425b17d72e7
7
- data.tar.gz: 2bdfced46d44b0ef4787a998fb17ce073b38a939d044a9f48f39c74dc42adbec3962622792f9852579203f090a66db78dc45aa118d25ff325089cde03cb00c93
6
+ metadata.gz: f090263fb431fa7d6ab1193bd5735b8ef8c425783eea75c8495537a2f2c80576dbe8a71ecf3d41202eea787687cdf9f2d6ef0b4dcec931e38be9cc28baa2ed50
7
+ data.tar.gz: d2fbf7f1e6534a1f15e9fca4271b9505fb0229984a53e85d9adbfaaeba5b94535cfde135eede3289f564f06949d0f4bb3c2ff3ac384ffa56596bb802eef2be7e
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- code-ruby (0.6.2)
4
+ code-ruby (0.6.3)
5
5
  bigdecimal (~> 3)
6
6
  language-ruby (~> 0)
7
7
  zeitwerk (~> 2)
@@ -11,7 +11,7 @@ GEM
11
11
  specs:
12
12
  bigdecimal (3.1.6)
13
13
  diff-lcs (1.5.0)
14
- language-ruby (0.6.0)
14
+ language-ruby (0.6.1)
15
15
  zeitwerk (~> 2)
16
16
  rspec (3.12.0)
17
17
  rspec-core (~> 3.12.0)
data/bin/code CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "optparse"
4
5
  require_relative "../lib/code-ruby"
@@ -9,7 +10,7 @@ OptionParser
9
10
  .new do |opts|
10
11
  opts.banner = "Usage: template [options]"
11
12
 
12
- opts.on("-v", "--version", "Version of template") do |input|
13
+ opts.on("-v", "--version", "Version of template") do |_input|
13
14
  puts Code::Version
14
15
  exit
15
16
  end
@@ -44,7 +45,7 @@ OptionParser
44
45
  "Set timeout in seconds"
45
46
  ) { |timeout| options[:timeout] = timeout.to_f }
46
47
 
47
- opts.on("--profile", "Profile Ruby code") do |timeout|
48
+ opts.on("--profile", "Profile Ruby code") do |_timeout|
48
49
  require "ruby-prof"
49
50
  options[:profile] = true
50
51
  end
data/code-ruby.gemspec CHANGED
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "English"
1
4
  require_relative "lib/code/version"
2
5
 
3
6
  Gem::Specification.new do |s|
@@ -7,14 +10,13 @@ Gem::Specification.new do |s|
7
10
  s.description = 'A programming language, like Code.evaluate("1 + 1") # => 2'
8
11
  s.authors = ["Dorian Marié"]
9
12
  s.email = "dorian@dorianmarie.fr"
10
- s.files = `git ls-files`.split($/)
11
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
13
+ s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
12
14
  s.require_paths = ["lib"]
13
15
  s.homepage = "https://github.com/dorianmariefr/code-ruby"
14
16
  s.license = "MIT"
15
17
  s.executables = "code"
16
18
 
17
- s.add_dependency "zeitwerk", "~> 2"
18
- s.add_dependency "language-ruby", "~> 0"
19
19
  s.add_dependency "bigdecimal", "~> 3"
20
+ s.add_dependency "language-ruby", "~> 0"
21
+ s.add_dependency "zeitwerk", "~> 2"
20
22
  end
@@ -3,7 +3,8 @@
3
3
  class Code
4
4
  class Node
5
5
  class Nothing < Node
6
- def initialize(parsed)
6
+ def initialize(nothing)
7
+ @nothing = nothing
7
8
  end
8
9
 
9
10
  def evaluate(**_args)
@@ -307,8 +307,8 @@ class Code
307
307
  self
308
308
  end
309
309
 
310
- def code_dig(*arguments)
311
- raw.dig(*arguments) || Nothing.new
310
+ def code_dig(*)
311
+ raw.dig(*) || Nothing.new
312
312
  end
313
313
 
314
314
  def code_each(argument, **globals)
@@ -335,8 +335,8 @@ class Code
335
335
  Boolean.new(raw.empty?)
336
336
  end
337
337
 
338
- def code_except(*arguments)
339
- self.class.new(raw.except(*arguments))
338
+ def code_except(*)
339
+ self.class.new(raw.except(*))
340
340
  end
341
341
 
342
342
  def code_fetch(*arguments, index: Integer.new(0), **globals)
@@ -394,8 +394,8 @@ class Code
394
394
  end
395
395
  end
396
396
 
397
- def code_fetch_values(*arguments)
398
- List.new(raw.fetch_values(*arguments))
397
+ def code_fetch_values(*)
398
+ List.new(raw.fetch_values(*))
399
399
  end
400
400
 
401
401
  def code_five?
@@ -33,7 +33,7 @@ class Code
33
33
  sig(args)
34
34
  code_downcase
35
35
  when "include?"
36
- sig(args) { { a: String } }
36
+ sig(args) { String }
37
37
  code_include?(value)
38
38
  when "reverse"
39
39
  sig(args)
data/lib/code/object.rb CHANGED
@@ -33,7 +33,7 @@ class Code
33
33
  other == self
34
34
  end
35
35
  end
36
- alias eql? ==
36
+ alias_method :eql?, :==
37
37
 
38
38
  def call(**args)
39
39
  operator = args.fetch(:operator, nil)
@@ -20,7 +20,7 @@ class Code
20
20
  end
21
21
 
22
22
  def backslash
23
- str('\\')
23
+ str("\\")
24
24
  end
25
25
 
26
26
  def opening_curly_bracket
@@ -11,9 +11,11 @@ class Code
11
11
 
12
12
  def valid?(argument)
13
13
  return false unless argument.is_a?(Object::Dictionary)
14
+
14
15
  argument = argument.raw
15
16
  (argument.keys + hash.keys).uniq.all? do |key|
16
17
  next false unless hash[key] && argument[key]
18
+
17
19
  valid_for?(expected: hash[key], actual: argument[key])
18
20
  end
19
21
  end
@@ -21,7 +21,7 @@ class Code
21
21
 
22
22
  def max_arguments
23
23
  max_arguments = max_arguments_of(clazz)
24
- max_arguments.nil? || maximum.nil? ? nil : maximum * max_arguments
24
+ (max_arguments.nil? || maximum.nil?) ? nil : maximum * max_arguments
25
25
  end
26
26
 
27
27
  def name
data/lib/code/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "../code"
2
4
 
3
- Code::Version = Gem::Version.new("0.6.3")
5
+ Code::Version = Gem::Version.new("0.6.4")
data/lib/code-ruby.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bigdecimal"
2
4
  require "stringio"
3
5
  require "timeout"
@@ -3,37 +3,35 @@
3
3
  require "spec_helper"
4
4
 
5
5
  RSpec.describe Code::Node::Call do
6
- =begin
7
- let(:context) { <<~CONTEXT }
8
- render = (*args, **kargs, &block) => {
9
- [args, kargs, block&.call(:dorian)]
10
- }
11
-
12
- { render:, user: { name: :Dorian } }"
13
- CONTEXT
14
-
15
- [
16
- ["render", "[[], {}, nothing]"],
17
- ["render()", "[[], {}, nothing]"],
18
- ["render(user)", "[[user], {}, nothing]"],
19
- [
20
- "render(user, first_name: :Dorian)",
21
- "[[user], { first_name: :Dorian }, nothing]"
22
- ],
23
- ["render { }", "[[], {}, nothing]"],
24
- ["render do end", "[[], {}, nothing]"],
25
- ["render { |name| name.upcase }", "[[], {}, :Dorian]"],
26
- ["render(user) { |name| name.upcase }", "[[user], {}, :Dorian]"],
27
- ["render(user) do |name| name.upcase end", "[[user], {}, :Dorian]"],
28
- ["render { :Dorian }", "[[], {}, :Dorian]"],
29
- ["render(user) { :Dorian }", "[[user], {}, :Dorian]"],
30
- ["render(user) do :Dorian end", "[[user], {}, :Dorian]"]
31
- ].each do |input, expected|
32
- it "#{input} == #{expected}" do
33
- expect(Code.evaluate(input, context)).to eq(
34
- Code.evaluate(expected, context)
35
- )
36
- end
37
- end
38
- =end
6
+ # let(:context) { <<~CONTEXT }
7
+ # render = (*args, **kargs, &block) => {
8
+ # [args, kargs, block&.call(:dorian)]
9
+ # }
10
+ #
11
+ # { render:, user: { name: :Dorian } }"
12
+ # CONTEXT
13
+ #
14
+ # [
15
+ # ["render", "[[], {}, nothing]"],
16
+ # ["render()", "[[], {}, nothing]"],
17
+ # ["render(user)", "[[user], {}, nothing]"],
18
+ # [
19
+ # "render(user, first_name: :Dorian)",
20
+ # "[[user], { first_name: :Dorian }, nothing]"
21
+ # ],
22
+ # ["render { }", "[[], {}, nothing]"],
23
+ # ["render do end", "[[], {}, nothing]"],
24
+ # ["render { |name| name.upcase }", "[[], {}, :Dorian]"],
25
+ # ["render(user) { |name| name.upcase }", "[[user], {}, :Dorian]"],
26
+ # ["render(user) do |name| name.upcase end", "[[user], {}, :Dorian]"],
27
+ # ["render { :Dorian }", "[[], {}, :Dorian]"],
28
+ # ["render(user) { :Dorian }", "[[user], {}, :Dorian]"],
29
+ # ["render(user) do :Dorian end", "[[user], {}, :Dorian]"]
30
+ # ].each do |input, expected|
31
+ # it "#{input} == #{expected}" do
32
+ # expect(Code.evaluate(input, context)).to eq(
33
+ # Code.evaluate(expected, context)
34
+ # )
35
+ # end
36
+ # end
39
37
  end
@@ -3,18 +3,16 @@
3
3
  require "spec_helper"
4
4
 
5
5
  RSpec.describe Code::Object::Function do
6
- =begin
7
- [
8
- ["even? = (i) => { i.even? } even?(2)", "true"],
9
- ["even? = (i:) => { i.even? } even?(i: 2)", "true"],
10
- ["add = (a, b) => { a + b } add(1, 2)", "3"],
11
- ["minus = (a:, b:) => { a - b } minus(b: 1, a: 2)", "1"]
12
- ].each do |input, expected|
13
- it "#{input} == #{expected}" do
14
- expect(Code.evaluate(input)).to eq(Code.evaluate(expected))
15
- end
16
- end
17
- =end
6
+ # [
7
+ # ["even? = (i) => { i.even? } even?(2)", "true"],
8
+ # ["even? = (i:) => { i.even? } even?(i: 2)", "true"],
9
+ # ["add = (a, b) => { a + b } add(1, 2)", "3"],
10
+ # ["minus = (a:, b:) => { a - b } minus(b: 1, a: 2)", "1"]
11
+ # ].each do |input, expected|
12
+ # it "#{input} == #{expected}" do
13
+ # expect(Code.evaluate(input)).to eq(Code.evaluate(expected))
14
+ # end
15
+ # end
18
16
 
19
17
  context "valid" do
20
18
  [
data/spec/code_spec.rb CHANGED
@@ -109,7 +109,7 @@ RSpec.describe Code do
109
109
  ['"Hello \\{name}"', '"Hello \\{" + "name}"'],
110
110
  ["'Hello {1}'", '"Hello 1"'],
111
111
  ['"Hello {1}"', '"Hello 1"'],
112
- [":Hello.include?(a: :H)", true],
112
+ %w[:Hello.include?(:H) true],
113
113
  %w["Hello".downcase :hello],
114
114
  ["true ? 1", "1"],
115
115
  ["false ? 1", ""],
data/spec/spec_helper.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "../lib/code-ruby"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
@@ -11,19 +11,19 @@ cert_chain: []
11
11
  date: 2024-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: zeitwerk
14
+ name: bigdecimal
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2'
19
+ version: '3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2'
26
+ version: '3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: language-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bigdecimal
42
+ name: zeitwerk
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3'
47
+ version: '2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3'
54
+ version: '2'
55
55
  description: 'A programming language, like Code.evaluate("1 + 1") # => 2'
56
56
  email: dorian@dorianmarie.fr
57
57
  executables:
@@ -206,30 +206,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  - !ruby/object:Gem::Version
207
207
  version: '0'
208
208
  requirements: []
209
- rubygems_version: 3.5.5
209
+ rubygems_version: 3.5.3
210
210
  signing_key:
211
211
  specification_version: 4
212
212
  summary: A programming language
213
- test_files:
214
- - spec/code/node/call_spec.rb
215
- - spec/code/object/boolean_spec.rb
216
- - spec/code/object/decimal_spec.rb
217
- - spec/code/object/dictionary_spec.rb
218
- - spec/code/object/function_spec.rb
219
- - spec/code/object/integer_spec.rb
220
- - spec/code/object/list_spec.rb
221
- - spec/code/object/nothing_spec.rb
222
- - spec/code/object/range_spec.rb
223
- - spec/code/parser/boolean_spec.rb
224
- - spec/code/parser/chained_call.rb
225
- - spec/code/parser/dictionary_spec.rb
226
- - spec/code/parser/function_spec.rb
227
- - spec/code/parser/group_spec.rb
228
- - spec/code/parser/if_modifier_spec.rb
229
- - spec/code/parser/list_spec.rb
230
- - spec/code/parser/number_spec.rb
231
- - spec/code/parser/string_spec.rb
232
- - spec/code/parser_spec.rb
233
- - spec/code/type_spec.rb
234
- - spec/code_spec.rb
235
- - spec/spec_helper.rb
213
+ test_files: []