tickly 0.0.1 → 0.0.2

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/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.3
data/lib/tickly/parser.rb CHANGED
@@ -7,12 +7,14 @@ module Tickly
7
7
  # Parses a piece of TCL and returns it converted into internal expression
8
8
  # structures (nested StringExpr or LiteralExp objects).
9
9
  def parse(io_or_str)
10
- io = io_or_str.respond_to?(:readchar) ? io_or_str : StringIO.new(io_or_str)
10
+ io = io_or_str.respond_to?(:read) ? io_or_str : StringIO.new(io_or_str)
11
11
  sub_parse(io)
12
12
  end
13
13
 
14
14
  private
15
15
 
16
+ LAST_CHAR = -1..-1 # If we were 1.9 only we could use -1
17
+
16
18
  # Parse from a passed IO object either until an unescaped stop_char is reached
17
19
  # or until the IO is exhausted. The last argument is the class used to
18
20
  # compose the subexpression being parsed. The subparser is reentrant and not
@@ -22,9 +24,9 @@ module Tickly
22
24
  stack = expr_class.new
23
25
  buf = ''
24
26
  until io.eof?
25
- char = io.readchar
27
+ char = io.read(1)
26
28
 
27
- if buf[-1] != ESC
29
+ if buf[LAST_CHAR] != ESC
28
30
  if char == stop_char # Bail out of a subexpr
29
31
  stack << buf if (buf.length > 0)
30
32
  return cleanup(stack)
@@ -69,10 +71,10 @@ module Tickly
69
71
  def parse_str(io, stop_char)
70
72
  buf = ''
71
73
  until io.eof?
72
- c = io.readchar
73
- if c == stop_char && buf[-1] != ESC
74
+ c = io.read(1)
75
+ if c == stop_char && buf[LAST_CHAR] != ESC
74
76
  return buf
75
- elsif buf[-1] == ESC # Eat out the escape char
77
+ elsif buf[LAST_CHAR] == ESC # Eat out the escape char
76
78
  buf = buf[0..-2] # Trim the escape character at the end of the buffer
77
79
  buf << c
78
80
  else
data/lib/tickly.rb CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/tickly/evaluator"
3
3
  require 'forwardable'
4
4
 
5
5
  module Tickly
6
- VERSION = '0.0.1'
6
+ VERSION = '0.0.2'
7
7
 
8
8
  # Represents a TCL expression with it's arguments (in curly or square braces)
9
9
  class Expr
data/tickly.gemspec ADDED
@@ -0,0 +1,70 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "tickly"
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Julik Tarkhanov"]
12
+ s.date = "2013-03-02"
13
+ s.description = "Parses the subset of the TCL grammar needed for Nuke scripts"
14
+ s.email = "me@julik.nl"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".travis.yml",
22
+ "Gemfile",
23
+ "LICENSE.txt",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "lib/tickly.rb",
27
+ "lib/tickly/evaluator.rb",
28
+ "lib/tickly/parser.rb",
29
+ "test/helper.rb",
30
+ "test/nuke7_tracker_2tracks.nk",
31
+ "test/nuke_group.txt",
32
+ "test/nukenode.txt",
33
+ "test/one_tracker_with_break.nk",
34
+ "test/one_tracker_with_break_in_grp.nk",
35
+ "test/test_evaluator.rb",
36
+ "test/test_parser.rb",
37
+ "test/test_split_array.rb",
38
+ "test/three_nodes_and_roto.txt",
39
+ "test/tracker_with_differing_gaps.nk",
40
+ "test/tracker_with_repeating_gaps.nk",
41
+ "tickly.gemspec"
42
+ ]
43
+ s.homepage = "http://github.com/julik/tickly"
44
+ s.licenses = ["MIT"]
45
+ s.require_paths = ["lib"]
46
+ s.rubygems_version = "1.8.25"
47
+ s.summary = "Assists in parsing Nuke scripts in TCL"
48
+
49
+ if s.respond_to? :specification_version then
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
54
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
55
+ s.add_development_dependency(%q<bundler>, [">= 0"])
56
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
57
+ else
58
+ s.add_dependency(%q<shoulda>, [">= 0"])
59
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
60
+ s.add_dependency(%q<bundler>, [">= 0"])
61
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<shoulda>, [">= 0"])
65
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
66
+ s.add_dependency(%q<bundler>, [">= 0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
68
+ end
69
+ end
70
+
metadata CHANGED
@@ -1,89 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: tickly
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Julik Tarkhanov
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-03-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-03-02 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: shoulda
16
- requirement: !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
23
31
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
32
+ type: :development
33
+ requirement: *id001
34
+ - !ruby/object:Gem::Dependency
31
35
  name: rdoc
32
- requirement: !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
33
37
  none: false
34
- requirements:
38
+ requirements:
35
39
  - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '3.12'
38
- type: :development
40
+ - !ruby/object:Gem::Version
41
+ hash: 31
42
+ segments:
43
+ - 3
44
+ - 12
45
+ version: "3.12"
39
46
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '3.12'
46
- - !ruby/object:Gem::Dependency
47
+ type: :development
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
47
50
  name: bundler
48
- requirement: !ruby/object:Gem::Requirement
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
49
52
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
55
60
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
61
+ type: :development
62
+ requirement: *id003
63
+ - !ruby/object:Gem::Dependency
63
64
  name: jeweler
64
- requirement: !ruby/object:Gem::Requirement
65
+ version_requirements: &id004 !ruby/object:Gem::Requirement
65
66
  none: false
66
- requirements:
67
+ requirements:
67
68
  - - ~>
68
- - !ruby/object:Gem::Version
69
+ - !ruby/object:Gem::Version
70
+ hash: 49
71
+ segments:
72
+ - 1
73
+ - 8
74
+ - 3
69
75
  version: 1.8.3
70
- type: :development
71
76
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 1.8.3
77
+ type: :development
78
+ requirement: *id004
78
79
  description: Parses the subset of the TCL grammar needed for Nuke scripts
79
80
  email: me@julik.nl
80
81
  executables: []
82
+
81
83
  extensions: []
82
- extra_rdoc_files:
84
+
85
+ extra_rdoc_files:
83
86
  - LICENSE.txt
84
87
  - README.rdoc
85
- files:
88
+ files:
86
89
  - .document
90
+ - .travis.yml
87
91
  - Gemfile
88
92
  - LICENSE.txt
89
93
  - README.rdoc
@@ -103,32 +107,39 @@ files:
103
107
  - test/three_nodes_and_roto.txt
104
108
  - test/tracker_with_differing_gaps.nk
105
109
  - test/tracker_with_repeating_gaps.nk
110
+ - tickly.gemspec
106
111
  homepage: http://github.com/julik/tickly
107
- licenses:
112
+ licenses:
108
113
  - MIT
109
114
  post_install_message:
110
115
  rdoc_options: []
111
- require_paths:
116
+
117
+ require_paths:
112
118
  - lib
113
- required_ruby_version: !ruby/object:Gem::Requirement
119
+ required_ruby_version: !ruby/object:Gem::Requirement
114
120
  none: false
115
- requirements:
116
- - - ! '>='
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- segments:
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
120
126
  - 0
121
- hash: -3881892143211988840
122
- required_rubygems_version: !ruby/object:Gem::Requirement
127
+ version: "0"
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
129
  none: false
124
- requirements:
125
- - - ! '>='
126
- - !ruby/object:Gem::Version
127
- version: '0'
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
136
+ version: "0"
128
137
  requirements: []
138
+
129
139
  rubyforge_project:
130
- rubygems_version: 1.8.24
140
+ rubygems_version: 1.8.25
131
141
  signing_key:
132
142
  specification_version: 3
133
143
  summary: Assists in parsing Nuke scripts in TCL
134
144
  test_files: []
145
+