ceml 0.6.2 → 0.6.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.2
1
+ 0.6.3
data/ceml.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ceml}
8
- s.version = "0.6.2"
8
+ s.version = "0.6.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joe Edelman"]
12
- s.date = %q{2011-01-30}
12
+ s.date = %q{2011-01-31}
13
13
  s.description = %q{a language for coordinating real world events}
14
14
  s.email = %q{joe@citizenlogistics.com}
15
15
  s.extra_rdoc_files = [
data/lib/ceml/incident.rb CHANGED
@@ -56,8 +56,10 @@ module CEML
56
56
  bytecode << [:complete_delay]
57
57
  end
58
58
  case inst.cmd
59
- when :register
59
+ when :record
60
60
  bytecode << [:answered_q, {:key => inst.key}]
61
+ when :set
62
+ bytecode << [:set, {:key => inst.key, :value => inst.text}]
61
63
  when :ask
62
64
  bytecode << [:ask_q, {:text => inst.text}]
63
65
  bytecode << [:answered_q, {:key => inst.key}]
@@ -145,6 +147,11 @@ module CEML
145
147
  true
146
148
  end
147
149
 
150
+ def set q
151
+ qs_answers[q[:key]] = q[:value]
152
+ true
153
+ end
154
+
148
155
  def send_msg a
149
156
  text = interpolate(a[:text]) or return false
150
157
  say :message, :msg => text
@@ -3,7 +3,7 @@ grammar Instructions
3
3
  include Lexer
4
4
 
5
5
  rule basic_statement
6
- (ask_stmt / tell_stmt / assign_stmt / register_stmt) {
6
+ (ask_stmt / tell_stmt / assign_stmt / record_stmt / set_stmt) {
7
7
 
8
8
  def delay
9
9
  if parent.respond_to? :later and not parent.later.empty?
@@ -14,7 +14,7 @@ grammar Instructions
14
14
  def role; id.text_value.to_sym; end
15
15
  def text; super.text_value; end
16
16
  def var
17
- return varname.text_value if cmd == :register
17
+ return varname.text_value if cmd == :record or cmd == :set
18
18
  (!defined?(:about) || about.empty?) ? nil : about.varname.text_value;
19
19
  end
20
20
  def key; var || text; end
@@ -22,7 +22,8 @@ grammar Instructions
22
22
  text_value =~ /^ask/ and return :ask
23
23
  text_value =~ /^tell/ and return :tell
24
24
  text_value =~ /^assign/ and return :assign
25
- text_value =~ /^register/ and return :register
25
+ text_value =~ /^record/ and return :record
26
+ text_value =~ /^set/ and return :set
26
27
  end
27
28
  }
28
29
  end
@@ -35,8 +36,8 @@ grammar Instructions
35
36
  duration ws 'later' ws
36
37
  end
37
38
 
38
- rule register_stmt
39
- 'register' ws id ws varname:id
39
+ rule record_stmt
40
+ 'record' ws id ws varname:id
40
41
  end
41
42
 
42
43
  rule tell_stmt
@@ -51,5 +52,8 @@ grammar Instructions
51
52
  'ask' ws id about:(ws 're' ws varname:id)? ':' ws? text
52
53
  end
53
54
 
55
+ rule set_stmt
56
+ 'set' ws id ws varname:id ':' ws? text
57
+ end
54
58
  end
55
59
  end
data/lib/ceml.rb CHANGED
@@ -23,6 +23,7 @@ end
23
23
 
24
24
  module CEML
25
25
  def parse(what, string)
26
+ string = string.dup
26
27
  string.gsub!(/\n +/, ' ')
27
28
  what = case what
28
29
  when :script then :free_script
@@ -11,7 +11,7 @@ XXX
11
11
  JANE_SCRIPT = <<XXX
12
12
 
13
13
  await 1 new signup
14
- register signup first_name
14
+ record signup first_name
15
15
  ask signup re shoeless:
16
16
  Hello |his.first_name|. You are Level Zero. Lowly level zero.
17
17
  To advance to Level 1, please remove a shoe. Keep it off,
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 6
8
- - 2
9
- version: 0.6.2
8
+ - 3
9
+ version: 0.6.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Joe Edelman
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-30 00:00:00 -07:00
17
+ date: 2011-01-31 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency