kolom 1.0.1 → 1.0.3

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: f59218c1ac5efe36f71a48e2cd74b93e5e46a05f5393183f6fcec732bd7ed9c1
4
- data.tar.gz: b452273e5a8fa91a50bf502a4ab0e90069abe132da2d75254165987b4db4b587
3
+ metadata.gz: c2aaecbce1fbf2096db3622cb8b2e7a65d1816b58e1118b8ea0e224c6ae7a63e
4
+ data.tar.gz: 8eead5f976085e8140f3d092423962e36b7c28a399cee182738acb4e345df4f3
5
5
  SHA512:
6
- metadata.gz: dbb83c8e603297f34be662963c0c89f20c94bb3763fb9d5f49c487adc73c39ee3006799a696ea356b4b421e5a505efaf3fef2fc70a5574e1a416d2d2e932a003
7
- data.tar.gz: 1a1997e76201915e209dd07db8176d758432ae71ee61eab9439a579adee4b4f622f17d5f9d440bfbe87ade5a37d94ee950335de42236439a88fb018c293328a4
6
+ metadata.gz: dddb3524ea287d2052e8be1123884c6009f45b0ecc17b295c05910f10374f4eea69178ee5599c865c3eb64f8d3110f9c9d0348bf28270c6a613abfb976a88d8c
7
+ data.tar.gz: '080df32d78187c4023a309405372f144f60e34b3668fdc42b957f9bd2ee2b255b56c299290b1fba0999fd3ad152e59977d59d6d2e451d35b34423e64b95940c8'
data/bin/kolom CHANGED
@@ -7,7 +7,7 @@ require "kolom/repl"
7
7
  interpreter = Kolom::Interpreter.new
8
8
  if ARGV.empty?
9
9
  # Simple REPL (Read-Eval-Print Loop)
10
- puts "কলম v#{ENV["KOLOM_VERSION"]} - Bengali Scripting REPL"
10
+ puts "কলম v#{Kolom::VERSION} - Bengali Scripting REPL"
11
11
  puts "Type 'বাহির' or Ctrl+D to exit."
12
12
  repl = Kolom::REPL.new
13
13
  repl.start
data/lib/kolom/repl.rb CHANGED
@@ -1,17 +1,16 @@
1
- require 'readline'
1
+ require "readline"
2
2
 
3
3
  module Kolom
4
4
  class REPL
5
5
 
6
6
  def initialize
7
7
  @interpreter = Interpreter.new
8
- @history = []
9
8
  end
10
9
 
11
10
  def start
12
11
  loop do
13
12
  line = Readline.readline("কলম> ", true)
14
- break if line.nil? || line.strip == 'বাহির'
13
+ break if line.nil? || line.strip == "বাহির"
15
14
 
16
15
  begin
17
16
  result, output = @interpreter.evaluate(line)
@@ -21,10 +20,7 @@ module Kolom
21
20
  puts "Error: #{e.message}"
22
21
  puts e.backtrace.join("\n")
23
22
  end
24
-
25
- @history << line
26
23
  end
27
-
28
24
  puts "ধন্যবাদ!"
29
25
  end
30
26
  end
data/lib/kolom/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kolom
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.3"
5
5
  end
data/lib/kolom.rb CHANGED
@@ -6,8 +6,7 @@ require_relative "kolom/version"
6
6
  module Kolom
7
7
  # Bengali translations of Ruby keywords
8
8
  keymap_filepath = File.join(File.dirname(__FILE__), "kolom/keymap.json")
9
- keymap_file = File.open(keymap_filepath)
10
- KEYWORDS = JSON.load(keymap_file).freeze
9
+ KEYWORDS = JSON.parse(File.read(keymap_filepath)).freeze
11
10
 
12
11
  # Inverse mapping for translating back
13
12
  RUBY_KEYWORDS = KEYWORDS.invert
@@ -51,7 +50,7 @@ module Kolom
51
50
  # Replace Bengali keywords with Ruby keywords
52
51
  KEYWORDS.each do |bengali, ruby|
53
52
  # We need to be careful with word boundaries
54
- code = code.gsub(/\b#{bengali}\b/, ruby)
53
+ code = code.gsub(/(?<![[:alpha:]])#{Regexp.escape(bengali)}(?![[:alpha:]])/, ruby)
55
54
  end
56
55
 
57
56
  code
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kolom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - smakthe
@@ -42,7 +42,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 3.1.0
45
+ version: 3.2.0
46
46
  required_rubygems_version: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="