Browse Source

Env tests

master
Dylan Baker 5 years ago
parent
commit
39d2e2b2a9
2 changed files with 29 additions and 2 deletions
  1. 14
    2
      lib/chervil/env.rb
  2. 15
    0
      spec/env_spec.rb

+ 14
- 2
lib/chervil/env.rb View File

@@ -1,7 +1,19 @@
1 1
 module Chervil
2 2
   class Env
3
-    def initialize(parent = {})
4
-      @data = parent
3
+    attr_reader :data
4
+
5
+    def initialize(parent = nil)
6
+      @data = Hash.new
7
+
8
+      Core::CORE.each do |k, v|
9
+        set(k, v)
10
+      end
11
+
12
+      unless parent.nil?
13
+        parent.data.each do |k, v|
14
+          set(k, v)
15
+        end
16
+      end
5 17
     end
6 18
 
7 19
     def get(name)

+ 15
- 0
spec/env_spec.rb View File

@@ -0,0 +1,15 @@
1
+module Chervil
2
+  RSpec.describe Env do
3
+    it 'has arithmetic from core' do
4
+      env = Env.new
5
+      expect(env.get("+").call(1, 2)).to eq(3)
6
+    end
7
+
8
+    it 'inherits from parent env' do
9
+      parent = Env.new
10
+      parent.set("x", 5)
11
+      child = Env.new(parent)
12
+      expect(child.get("x")).to eq(5)
13
+    end
14
+  end
15
+end

Loading…
Cancel
Save