ceml 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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