prison_parser 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe PrisonParser::Node do
4
+ it "#add_property"
5
+ it "#create_node"
6
+ it "#write_nodes"
7
+ it "#write_properties"
8
+ it "#method_missing"
9
+ it "#inspect"
10
+ it "#allow_inline?"
11
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe PrisonParser::Prison do
4
+ it ".open"
5
+
6
+ it "#save"
7
+
8
+ it "#create_node"
9
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe PrisonParser::Utils::Parser do
4
+ let(:parser) { PrisonParser::Utils::Parser.new }
5
+
6
+ describe "#load" do
7
+ it "loads deathrow prison" do
8
+ prison = parser.load("spec/fixtures/deathrow.prison")
9
+ skip "TODO"
10
+ end
11
+
12
+ it "loads full prison" do
13
+ prison = parser.load("spec/fixtures/full.prison")
14
+ skip "TODO"
15
+ #puts prison.inspect
16
+ #puts PrisonParser::Utils::Writer.new.write_node(prison.Construction.PlanningJobs).stream.string
17
+ end
18
+ end
19
+
20
+ describe "#tokenize" do
21
+ it { expect(parser.tokenize("This is a test")).to eq %w(This is a test) }
22
+ it { expect(parser.tokenize(" This is a test")).to eq %w(This is a test) }
23
+ it { expect(parser.tokenize(" This is a test ")).to eq %w(This is a test) }
24
+ it { expect(parser.tokenize("This is a test ")).to eq %w(This is a test) }
25
+ it { expect(parser.tokenize("This \"is a\" test")).to eq ["This", "is a", "test"] }
26
+ end
27
+ end
@@ -0,0 +1,37 @@
1
+ require 'tempfile'
2
+ require 'digest'
3
+ require 'spec_helper'
4
+
5
+ describe PrisonParser::Utils::Writer do
6
+ let(:parser) { PrisonParser::Utils::Parser.new }
7
+ let(:prison) { parser.load("spec/fixtures/full.prison") }
8
+
9
+ describe "#write_prison" do
10
+ it "writes a prison that can be parsed" do
11
+ temp1 = Tempfile.new("prison1.prison")
12
+ temp2 = Tempfile.new("prison2.prison")
13
+
14
+ PrisonParser::Utils::Writer.new(temp1).write_prison(prison)
15
+ temp1.close
16
+
17
+ prison2 = parser.load(temp1.path)
18
+
19
+ PrisonParser::Utils::Writer.new(temp2).write_prison(prison2)
20
+ temp2.close
21
+
22
+ expect(Digest::MD5.file(temp1.path)).to eq Digest::MD5.file(temp2.path)
23
+
24
+ temp1.unlink
25
+ temp2.unlink
26
+ end
27
+ end
28
+
29
+ describe "#write_node" do
30
+ it "handles inlining" do
31
+ finance = prison.Objects.nodes["[i 2530]"]
32
+ puts finance.nodes.size
33
+ puts finance.properties.size
34
+ puts PrisonParser::Utils::Writer.new.write_node(finance).stream.string
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,20 @@
1
+ require "simplecov"
2
+ require "coveralls"
3
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter
6
+ ]
7
+ SimpleCov.start do
8
+ add_filter "/spec/"
9
+
10
+ add_group "Models", "prison_parser/models"
11
+ add_group "Utils", "prison_parser/utils"
12
+ end
13
+
14
+ require "prison_parser"
15
+
16
+ RSpec.configure do |config|
17
+
18
+ config.order = "random"
19
+
20
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: prison_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mitch Dempsey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: PrisonArchitect save file parser.
112
+ email:
113
+ - mrdempsey@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".yardopts"
120
+ - Gemfile
121
+ - LICENSE
122
+ - README.md
123
+ - Rakefile
124
+ - lib/prison_parser.rb
125
+ - lib/prison_parser/models.rb
126
+ - lib/prison_parser/models/base.rb
127
+ - lib/prison_parser/models/finance.rb
128
+ - lib/prison_parser/node.rb
129
+ - lib/prison_parser/prison.rb
130
+ - lib/prison_parser/utils.rb
131
+ - lib/prison_parser/utils/parser.rb
132
+ - lib/prison_parser/utils/writer.rb
133
+ - lib/prison_parser/version.rb
134
+ - prison_parser.gemspec
135
+ - spec/fixtures/deathrow.prison
136
+ - spec/fixtures/full.prison
137
+ - spec/prison_parser/node_spec.rb
138
+ - spec/prison_parser/prison_spec.rb
139
+ - spec/prison_parser/utils/parser_spec.rb
140
+ - spec/prison_parser/utils/writer_spec.rb
141
+ - spec/spec_helper.rb
142
+ homepage: https://github.com/webdestroya/prison_parser
143
+ licenses:
144
+ - MIT
145
+ metadata: {}
146
+ post_install_message:
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 2.0.0
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubyforge_project:
162
+ rubygems_version: 2.2.2
163
+ signing_key:
164
+ specification_version: 4
165
+ summary: PrisonArchitect save file parser.
166
+ test_files:
167
+ - spec/fixtures/deathrow.prison
168
+ - spec/fixtures/full.prison
169
+ - spec/prison_parser/node_spec.rb
170
+ - spec/prison_parser/prison_spec.rb
171
+ - spec/prison_parser/utils/parser_spec.rb
172
+ - spec/prison_parser/utils/writer_spec.rb
173
+ - spec/spec_helper.rb
174
+ has_rdoc: