safemode 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of safemode might be problematic. Click here for more details.

data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "ruby2ruby"
4
+ gem "ruby_parser"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "shoulda", ">= 0"
10
+ gem "rdoc", "~> 3.12"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.8.3"
13
+ gem "rcov", ">= 0"
14
+ gem "rake"
15
+ end
@@ -0,0 +1,38 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ git (1.2.5)
5
+ jeweler (1.8.3)
6
+ bundler (~> 1.0)
7
+ git (>= 1.2.5)
8
+ rake
9
+ rdoc
10
+ json (1.6.5)
11
+ rake (0.9.2.2)
12
+ rcov (1.0.0)
13
+ rdoc (3.12)
14
+ json (~> 1.4)
15
+ ruby2ruby (1.3.1)
16
+ ruby_parser (~> 2.0)
17
+ sexp_processor (~> 3.0)
18
+ ruby_parser (2.3.1)
19
+ sexp_processor (~> 3.0)
20
+ sexp_processor (3.1.0)
21
+ shoulda (3.0.1)
22
+ shoulda-context (~> 1.0.0)
23
+ shoulda-matchers (~> 1.0.0)
24
+ shoulda-context (1.0.0)
25
+ shoulda-matchers (1.0.0)
26
+
27
+ PLATFORMS
28
+ ruby
29
+
30
+ DEPENDENCIES
31
+ bundler (~> 1.0.0)
32
+ jeweler (~> 1.8.3)
33
+ rake
34
+ rcov
35
+ rdoc (~> 3.12)
36
+ ruby2ruby
37
+ ruby_parser
38
+ shoulda
@@ -11,6 +11,11 @@ anything beyond experiments and playing.
11
11
  That said, please **do** play with it, read and run the unit tests and provide
12
12
  feedback to help make it waterproof and finally suitable for serious purposes.
13
13
 
14
+ ### Installation
15
+
16
+ safemode is available as gem, therefore you can use bundler or gem install to the
17
+ tool. The above warning still applies.
18
+
14
19
  ### Usage
15
20
 
16
21
  For manual evaluation of Ruby code and ERB templates see demo.rb
@@ -35,8 +40,8 @@ can do that by defining a Safemode::Jail class for your classes, like so:
35
40
  class Jail < Safemode::Jail
36
41
  allow :name
37
42
  end
38
- end
39
-
43
+ end
44
+
40
45
  This will allow your template users to access the name method on your User
41
46
  objects.
42
47
 
@@ -46,7 +51,7 @@ following blog posts until a more comprehensive writeup is available:
46
51
  * Initial reasoning: [http://www.artweb-design.de/2008/2/5/sexy-theme-templating-with-haml-safemode-finally](http://www.artweb-design.de/2008/2/5/sexy-theme-templating-with-haml-safemode-finally)
47
52
  * Refined concept: [http://www.artweb-design.de/2008/2/17/sending-ruby-to-the-jail-an-attemp-on-a-haml-safemode](http://www.artweb-design.de/2008/2/17/sending-ruby-to-the-jail-an-attemp-on-a-haml-safemode)
48
53
  * ActionView ERB handler: [http://www.artweb-design.de/2008/4/22/an-erb-safemode-handler-for-actionview](http://www.artweb-design.de/2008/4/22/an-erb-safemode-handler-for-actionview)
49
-
54
+
50
55
  ### Dependencies
51
56
 
52
57
  Requires the gems:
@@ -64,8 +69,12 @@ See lib/ruby\_parser\_string\_io\_patch.diff
64
69
 
65
70
  * Sven Fuchs - Maintainer
66
71
  * Peter Cooper
72
+ * Ohad Levy
73
+ * Matthias Viehweger
67
74
 
68
- This code and all of the Safemode library's code was initially written by
75
+ This code and all of the Safemode library's code was initially written by
69
76
  Sven Fuchs to allow Haml to have a safe mode. It was then modified and
70
77
  re-structured by Peter Cooper and Sven Fuchs to extend the idea to generic
71
78
  Ruby eval situations.
79
+
80
+ Thanks to Ohad Levy for gemifying it.
data/Rakefile CHANGED
@@ -1,3 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+
1
13
  # optional libraries
2
14
  %w[ redgreen ].each do |lib|
3
15
  begin
@@ -5,11 +17,45 @@
5
17
  rescue LoadError
6
18
  end
7
19
  end
20
+ require 'rake'
8
21
 
9
- task :default => [:test]
22
+ require 'jeweler'
23
+ Jeweler::Tasks.new do |gem|
24
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
25
+ gem.name = "safemode"
26
+ gem.homepage = "http://github.com/svenfuchs/safemode"
27
+ gem.license = "MIT"
28
+ gem.summary = %Q{A library for safe evaluation of Ruby code based on ParseTree/RubyParser and Ruby2Ruby}
29
+ gem.description = %Q{A library for safe evaluation of Ruby code based on RubyParser and Ruby2Ruby. Provides Rails ActionView template handlers for ERB and Haml.}
30
+ gem.email = "ohadlevy@gmail.com"
31
+ gem.authors = ["Sven Fuchs"]
32
+ # dependencies defined in Gemfile
33
+ end
34
+ Jeweler::RubygemsDotOrgTasks.new
10
35
 
11
- task :test do
12
- ['test/unit', 'test/test_helper', 'test/test_all'].each do |file|
13
- require file
14
- end
36
+ require 'rake/testtask'
37
+ Rake::TestTask.new(:test) do |test|
38
+ test.libs << 'lib' << 'test'
39
+ test.pattern = 'test/**/test_*.rb'
40
+ test.verbose = true
41
+ end
42
+
43
+ require 'rcov/rcovtask'
44
+ Rcov::RcovTask.new do |test|
45
+ test.libs << 'test'
46
+ test.pattern = 'test/**/test_*.rb'
47
+ test.verbose = true
48
+ test.rcov_opts << '--exclude "gems/*"'
49
+ end
50
+
51
+ task :default => :test
52
+
53
+ require 'rdoc/task'
54
+ Rake::RDocTask.new do |rdoc|
55
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
56
+
57
+ rdoc.rdoc_dir = 'rdoc'
58
+ rdoc.title = "safemode #{version}"
59
+ rdoc.rdoc_files.include('README*')
60
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
61
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,194 @@
1
+ --- lib/ruby_lexer.rb 2008-04-27 01:07:24.000000000 +0200
2
+ +++ lib/ruby_lexer.rb 2008-04-27 01:07:03.000000000 +0200
3
+ @@ -45,7 +45,7 @@
4
+ raise "bad val: #{str.inspect}" unless String === str
5
+
6
+ self.file = file
7
+ - self.lexer.src = StringIO.new(str)
8
+ + self.lexer.src = RubyParser::StringIO.new(str)
9
+
10
+ @yydebug = ENV.has_key? 'DEBUG'
11
+
12
+ @@ -2604,104 +2604,106 @@
13
+ end
14
+ end
15
+
16
+ -class StringIO # HACK: everything in here is a hack
17
+ - attr_accessor :begin_of_line, :was_begin_of_line
18
+ - alias :begin_of_line? :begin_of_line
19
+ - alias :read_all :read
20
+ +class RubyParser
21
+ + class StringIO < StringIO # HACK: everything in here is a hack
22
+ + attr_accessor :begin_of_line, :was_begin_of_line
23
+ + alias :begin_of_line? :begin_of_line
24
+ + alias :read_all :read
25
+
26
+ - alias :old_initialize :initialize
27
+ + alias :old_initialize :initialize
28
+
29
+ - def initialize(*args)
30
+ - self.begin_of_line = true
31
+ - self.was_begin_of_line = false
32
+ - old_initialize(*args)
33
+ - @original_string = self.string.dup
34
+ - end
35
+ + def initialize(*args)
36
+ + self.begin_of_line = true
37
+ + self.was_begin_of_line = false
38
+ + old_initialize(*args)
39
+ + @original_string = self.string.dup
40
+ + end
41
+
42
+ - def rest
43
+ - self.string[self.pos..-1]
44
+ - end
45
+ + def rest
46
+ + self.string[self.pos..-1]
47
+ + end
48
+
49
+ - def current_line # HAHA fuck you
50
+ - @original_string[0..self.pos][/\A.*__LINE__/m].split(/\n/).size
51
+ - end
52
+ + def current_line # HAHA fuck you
53
+ + @original_string[0..self.pos][/\A.*__LINE__/m].split(/\n/).size
54
+ + end
55
+
56
+ - def read
57
+ - c = self.getc
58
+ + def read
59
+ + c = self.getc
60
+
61
+ - if c == ?\r then
62
+ - d = self.getc
63
+ - self.ungetc d if d and d != ?\n
64
+ - c = ?\n
65
+ - end
66
+ + if c == ?\r then
67
+ + d = self.getc
68
+ + self.ungetc d if d and d != ?\n
69
+ + c = ?\n
70
+ + end
71
+
72
+ - self.was_begin_of_line = self.begin_of_line
73
+ - self.begin_of_line = c == ?\n
74
+ - if c and c != 0 then
75
+ - c.chr
76
+ - else
77
+ - ::RubyLexer::EOF
78
+ + self.was_begin_of_line = self.begin_of_line
79
+ + self.begin_of_line = c == ?\n
80
+ + if c and c != 0 then
81
+ + c.chr
82
+ + else
83
+ + ::RubyLexer::EOF
84
+ + end
85
+ end
86
+ - end
87
+
88
+ - def match_string term, indent=false # TODO: add case insensitivity, or just remove
89
+ - buffer = []
90
+ + def match_string term, indent=false # TODO: add case insensitivity, or just remove
91
+ + buffer = []
92
+
93
+ - if indent
94
+ - while c = self.read do
95
+ - if c !~ /\s/ or c == "\n" or c == "\r" then
96
+ - self.unread c
97
+ - break
98
+ + if indent
99
+ + while c = self.read do
100
+ + if c !~ /\s/ or c == "\n" or c == "\r" then
101
+ + self.unread c
102
+ + break
103
+ + end
104
+ + buffer << c
105
+ end
106
+ - buffer << c
107
+ end
108
+ - end
109
+
110
+ - term.each_byte do |c2|
111
+ - c = self.read
112
+ - c = self.read if c and c == "\r"
113
+ - buffer << c
114
+ - if c and c2 != c[0] then
115
+ - self.unread_many buffer.join # HACK omg
116
+ - return false
117
+ + term.each_byte do |c2|
118
+ + c = self.read
119
+ + c = self.read if c and c == "\r"
120
+ + buffer << c
121
+ + if c and c2 != c[0] then
122
+ + self.unread_many buffer.join # HACK omg
123
+ + return false
124
+ + end
125
+ end
126
+ +
127
+ + return true
128
+ end
129
+
130
+ - return true
131
+ - end
132
+ + def read_line
133
+ + self.begin_of_line = true
134
+ + self.was_begin_of_line = false
135
+ + gets.sub(/\r\n?$/, "\n") # HACK
136
+ + end
137
+
138
+ - def read_line
139
+ - self.begin_of_line = true
140
+ - self.was_begin_of_line = false
141
+ - gets.sub(/\r\n?$/, "\n") # HACK
142
+ - end
143
+ -
144
+ - def peek expected = nil # FIX: barf
145
+ - c = self.getc
146
+ - return RubyLexer::EOF if c.nil?
147
+ - self.ungetc c if c
148
+ - c = c.chr if c
149
+ - if expected then
150
+ - c == expected
151
+ - else
152
+ - c
153
+ + def peek expected = nil # FIX: barf
154
+ + c = self.getc
155
+ + return RubyLexer::EOF if c.nil?
156
+ + self.ungetc c if c
157
+ + c = c.chr if c
158
+ + if expected then
159
+ + c == expected
160
+ + else
161
+ + c
162
+ + end
163
+ end
164
+ - end
165
+
166
+ - def unread(c)
167
+ - return if c.nil? # UGH
168
+ + def unread(c)
169
+ + return if c.nil? # UGH
170
+
171
+ - # HACK: only depth is 2... who cares? really I want to remove all of this
172
+ - self.begin_of_line = self.was_begin_of_line || true
173
+ - self.was_begin_of_line = nil
174
+ + # HACK: only depth is 2... who cares? really I want to remove all of this
175
+ + self.begin_of_line = self.was_begin_of_line || true
176
+ + self.was_begin_of_line = nil
177
+
178
+ - c = c[0] if String === c
179
+ - self.ungetc c
180
+ - end
181
+ + c = c[0] if String === c
182
+ + self.ungetc c
183
+ + end
184
+
185
+ - def unread_many str
186
+ - str.split(//).reverse.each do |c|
187
+ - unread c
188
+ + def unread_many str
189
+ + str.split(//).reverse.each do |c|
190
+ + unread c
191
+ + end
192
+ end
193
+ end
194
+ end
@@ -1,14 +1,88 @@
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
+
1
6
  Gem::Specification.new do |s|
2
- s.name = %q{safemode}
3
- s.version = "0.0.2"
4
- s.date = %q{2011-12-17}
5
- s.authors = ["sven fuchs, peter cooper, kingsley hendrickse"]
6
- s.email = %q{kingsley@mindflowsolutions.com}
7
- s.summary = %q{Safemode provides a simple sandbox for executing eval ruby code, as well as erb and haml}
8
- s.homepage = %q{https://github.com/svenfuchs/safemode}
9
- s.description = %q{Safemode provides a simple sandbox for executing eval ruby code, as well as erb and haml. Written by Sven Fuchs and Peter Cooper and packaged into a gem by Kingsley Hendrickse}
10
- s.add_dependency('ruby2ruby')
11
- s.files = Dir['lib/**/*.rb'] + Dir['*']
12
- s.files += Dir['test/**/*.rb']
13
- s.rubyforge_project = 'safemode'
14
- end
7
+ s.name = "safemode"
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Sven Fuchs"]
12
+ s.date = "2012-03-15"
13
+ s.description = "A library for safe evaluation of Ruby code based on RubyParser and Ruby2Ruby. Provides Rails ActionView template handlers for ERB and Haml."
14
+ s.email = "ohadlevy@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "README.markdown"
17
+ ]
18
+ s.files = [
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "LICENCSE",
22
+ "README.markdown",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "demo.rb",
26
+ "init.rb",
27
+ "lib/action_view/template_handlers/safe_erb.rb",
28
+ "lib/action_view/template_handlers/safe_haml.rb",
29
+ "lib/action_view/template_handlers/safemode_handler.rb",
30
+ "lib/haml/safemode.rb",
31
+ "lib/ruby_parser_string_io_patch.diff",
32
+ "lib/rubyparser_bug.rb",
33
+ "lib/safemode.rb",
34
+ "lib/safemode/blankslate.rb",
35
+ "lib/safemode/core_ext.rb",
36
+ "lib/safemode/core_jails.rb",
37
+ "lib/safemode/exceptions.rb",
38
+ "lib/safemode/jail.rb",
39
+ "lib/safemode/parser.rb",
40
+ "lib/safemode/scope.rb",
41
+ "safemode.gemspec",
42
+ "test/test_all.rb",
43
+ "test/test_erb_eval.rb",
44
+ "test/test_helper.rb",
45
+ "test/test_jail.rb",
46
+ "test/test_safemode_eval.rb",
47
+ "test/test_safemode_parser.rb"
48
+ ]
49
+ s.homepage = "http://github.com/svenfuchs/safemode"
50
+ s.licenses = ["MIT"]
51
+ s.require_paths = ["lib"]
52
+ s.rubygems_version = "1.8.19"
53
+ s.summary = "A library for safe evaluation of Ruby code based on ParseTree/RubyParser and Ruby2Ruby"
54
+
55
+ if s.respond_to? :specification_version then
56
+ s.specification_version = 3
57
+
58
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
+ s.add_runtime_dependency(%q<ruby2ruby>, [">= 0"])
60
+ s.add_runtime_dependency(%q<ruby_parser>, [">= 0"])
61
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
62
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
63
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
64
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
65
+ s.add_development_dependency(%q<rcov>, [">= 0"])
66
+ s.add_development_dependency(%q<rake>, [">= 0"])
67
+ else
68
+ s.add_dependency(%q<ruby2ruby>, [">= 0"])
69
+ s.add_dependency(%q<ruby_parser>, [">= 0"])
70
+ s.add_dependency(%q<shoulda>, [">= 0"])
71
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
72
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
74
+ s.add_dependency(%q<rcov>, [">= 0"])
75
+ s.add_dependency(%q<rake>, [">= 0"])
76
+ end
77
+ else
78
+ s.add_dependency(%q<ruby2ruby>, [">= 0"])
79
+ s.add_dependency(%q<ruby_parser>, [">= 0"])
80
+ s.add_dependency(%q<shoulda>, [">= 0"])
81
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
82
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
83
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
84
+ s.add_dependency(%q<rcov>, [">= 0"])
85
+ s.add_dependency(%q<rake>, [">= 0"])
86
+ end
87
+ end
88
+
metadata CHANGED
@@ -1,48 +1,163 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safemode
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 23
5
+ prerelease:
5
6
  segments:
7
+ - 1
6
8
  - 0
7
9
  - 0
8
- - 2
9
- version: 0.0.2
10
+ version: 1.0.0
10
11
  platform: ruby
11
12
  authors:
12
- - sven fuchs, peter cooper, kingsley hendrickse
13
+ - Sven Fuchs
13
14
  autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2011-12-17 00:00:00 +00:00
18
- default_executable:
18
+ date: 2012-03-15 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: ruby2ruby
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
28
+ hash: 3
27
29
  segments:
28
30
  - 0
29
31
  version: "0"
30
32
  type: :runtime
31
33
  version_requirements: *id001
32
- description: Safemode provides a simple sandbox for executing eval ruby code, as well as erb and haml. Written by Sven Fuchs and Peter Cooper and packaged into a gem by Kingsley Hendrickse
33
- email: kingsley@mindflowsolutions.com
34
+ - !ruby/object:Gem::Dependency
35
+ name: ruby_parser
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: shoulda
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :development
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: rdoc
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ hash: 31
71
+ segments:
72
+ - 3
73
+ - 12
74
+ version: "3.12"
75
+ type: :development
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: bundler
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ hash: 23
86
+ segments:
87
+ - 1
88
+ - 0
89
+ - 0
90
+ version: 1.0.0
91
+ type: :development
92
+ version_requirements: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ name: jeweler
95
+ prerelease: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ hash: 49
102
+ segments:
103
+ - 1
104
+ - 8
105
+ - 3
106
+ version: 1.8.3
107
+ type: :development
108
+ version_requirements: *id006
109
+ - !ruby/object:Gem::Dependency
110
+ name: rcov
111
+ prerelease: false
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :development
122
+ version_requirements: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ name: rake
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 3
132
+ segments:
133
+ - 0
134
+ version: "0"
135
+ type: :development
136
+ version_requirements: *id008
137
+ description: A library for safe evaluation of Ruby code based on RubyParser and Ruby2Ruby. Provides Rails ActionView template handlers for ERB and Haml.
138
+ email: ohadlevy@gmail.com
34
139
  executables: []
35
140
 
36
141
  extensions: []
37
142
 
38
- extra_rdoc_files: []
39
-
143
+ extra_rdoc_files:
144
+ - README.markdown
40
145
  files:
146
+ - Gemfile
147
+ - Gemfile.lock
148
+ - LICENCSE
149
+ - README.markdown
150
+ - Rakefile
151
+ - VERSION
152
+ - demo.rb
153
+ - init.rb
41
154
  - lib/action_view/template_handlers/safe_erb.rb
42
155
  - lib/action_view/template_handlers/safe_haml.rb
43
156
  - lib/action_view/template_handlers/safemode_handler.rb
44
157
  - lib/haml/safemode.rb
158
+ - lib/ruby_parser_string_io_patch.diff
45
159
  - lib/rubyparser_bug.rb
160
+ - lib/safemode.rb
46
161
  - lib/safemode/blankslate.rb
47
162
  - lib/safemode/core_ext.rb
48
163
  - lib/safemode/core_jails.rb
@@ -50,49 +165,45 @@ files:
50
165
  - lib/safemode/jail.rb
51
166
  - lib/safemode/parser.rb
52
167
  - lib/safemode/scope.rb
53
- - lib/safemode.rb
54
- - demo.rb
55
- - init.rb
56
- - LICENCSE
57
- - Rakefile
58
- - README.markdown
59
168
  - safemode.gemspec
60
- - safemode.rb
61
169
  - test/test_all.rb
62
170
  - test/test_erb_eval.rb
63
171
  - test/test_helper.rb
64
172
  - test/test_jail.rb
65
173
  - test/test_safemode_eval.rb
66
174
  - test/test_safemode_parser.rb
67
- has_rdoc: true
68
- homepage: https://github.com/svenfuchs/safemode
69
- licenses: []
70
-
175
+ homepage: http://github.com/svenfuchs/safemode
176
+ licenses:
177
+ - MIT
71
178
  post_install_message:
72
179
  rdoc_options: []
73
180
 
74
181
  require_paths:
75
182
  - lib
76
183
  required_ruby_version: !ruby/object:Gem::Requirement
184
+ none: false
77
185
  requirements:
78
186
  - - ">="
79
187
  - !ruby/object:Gem::Version
188
+ hash: 3
80
189
  segments:
81
190
  - 0
82
191
  version: "0"
83
192
  required_rubygems_version: !ruby/object:Gem::Requirement
193
+ none: false
84
194
  requirements:
85
195
  - - ">="
86
196
  - !ruby/object:Gem::Version
197
+ hash: 3
87
198
  segments:
88
199
  - 0
89
200
  version: "0"
90
201
  requirements: []
91
202
 
92
- rubyforge_project: safemode
93
- rubygems_version: 1.3.6
203
+ rubyforge_project:
204
+ rubygems_version: 1.8.19
94
205
  signing_key:
95
206
  specification_version: 3
96
- summary: Safemode provides a simple sandbox for executing eval ruby code, as well as erb and haml
207
+ summary: A library for safe evaluation of Ruby code based on ParseTree/RubyParser and Ruby2Ruby
97
208
  test_files: []
98
209
 
@@ -1 +0,0 @@
1
- require File.dirname(__FILE__) + '/lib/safemode.rb'