penetration 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +7 -0
- data/Rakefile +4 -3
- data/lib/penetration/version.rb +1 -1
- data/lib/penetration.rb +40 -11
- data/spec/dummy/app/controllers/penetrations_controller.rb +26 -3
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/requests/penetration_request_spec.rb +17 -0
- metadata +2 -5
- data/spec/dummy/app/views/penetrations/double.html.erb +0 -2
- data/spec/dummy/app/views/penetrations/dynamic.html.erb +0 -2
- data/spec/dummy/app/views/penetrations/preset.html.erb +0 -2
- data/spec/dummy/app/views/penetrations/with_param.html.erb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3e40af3e34491dc2d7890e468f05c1eb14b3081
|
4
|
+
data.tar.gz: a671ff2af62cdca648d5e33f2472a20e70459d10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eea25a0c7401a3001da97f8d9f829294a6d7c24866dc73daf2c89bafb68a5e015abf2eb92ada8e453b6d62627b36b0d45ced7e27fe442051342064c1c4d39ca5
|
7
|
+
data.tar.gz: 608d0dc8db4428bfa4a420ec208c1fbfcbf43b733981684ef3bb02b3233f8b3c4b213cc4f369373b1184186cc393503d3881ca1c77b62591d78b2fed1cd78783
|
data/Gemfile.lock
CHANGED
data/README.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
[![Build Status](https://travis-ci.org/mmmpa/penetration.svg)](https://travis-ci.org/mmmpa/penetration)
|
2
|
+
[![Coverage Status](https://coveralls.io/repos/mmmpa/penetration/badge.svg?branch=master)](https://coveralls.io/r/mmmpa/penetration?branch=master)
|
3
|
+
[![Code Climate](https://codeclimate.com/github/mmmpa/penetration/badges/gpa.svg)](https://codeclimate.com/github/mmmpa/penetration)
|
4
|
+
|
5
|
+
# Penetration
|
6
|
+
|
7
|
+
Viewの末尾にテキストを挿入する。
|
data/Rakefile
CHANGED
@@ -5,6 +5,8 @@ rescue LoadError
|
|
5
5
|
end
|
6
6
|
|
7
7
|
require 'rdoc/task'
|
8
|
+
require "bundler/gem_tasks"
|
9
|
+
require 'rspec/core/rake_task'
|
8
10
|
|
9
11
|
RDoc::Task.new(:rdoc) do |rdoc|
|
10
12
|
rdoc.rdoc_dir = 'rdoc'
|
@@ -14,8 +16,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
16
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
19
|
Bundler::GemHelper.install_tasks
|
21
20
|
|
21
|
+
task :default => :spec
|
22
|
+
RSpec::Core::RakeTask.new
|
data/lib/penetration/version.rb
CHANGED
data/lib/penetration.rb
CHANGED
@@ -4,12 +4,26 @@ module Penetration
|
|
4
4
|
end
|
5
5
|
|
6
6
|
class Caller
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
def initialize(session, session_name)
|
8
|
+
@session = session
|
9
|
+
@session_name = session_name
|
10
|
+
@session[@session_name] ||= []
|
11
|
+
end
|
12
|
+
|
13
|
+
def current_session
|
14
|
+
@session[@session_name]
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_raw(raw)
|
18
|
+
add(:raw, raw)
|
19
|
+
end
|
20
|
+
|
21
|
+
def add_preset(preset)
|
22
|
+
add(:preset, preset)
|
23
|
+
end
|
24
|
+
|
25
|
+
def add(mode, element)
|
26
|
+
current_session << [mode, element]
|
13
27
|
end
|
14
28
|
end
|
15
29
|
|
@@ -26,13 +40,15 @@ module Penetration
|
|
26
40
|
class Core
|
27
41
|
def initialize(session, text = nil, &block)
|
28
42
|
@session = session
|
29
|
-
Caller.
|
43
|
+
@caller = Caller.new(@session, :rough_penetration)
|
44
|
+
@caller.add_raw(text) if text
|
30
45
|
instance_eval(&block) if block_given?
|
31
46
|
end
|
32
47
|
|
33
48
|
def method_missing(name, *rest)
|
34
|
-
|
35
|
-
|
49
|
+
if Preset.find(name)
|
50
|
+
@caller.add_preset([name, *rest].flatten)
|
51
|
+
end
|
36
52
|
end
|
37
53
|
end
|
38
54
|
|
@@ -49,8 +65,21 @@ module Penetration
|
|
49
65
|
|
50
66
|
def render
|
51
67
|
return '' if (elements = @session.delete(:rough_penetration)).nil?
|
52
|
-
|
53
|
-
|
68
|
+
elements.map do |element|
|
69
|
+
case element.first.to_sym
|
70
|
+
when :raw
|
71
|
+
element.last
|
72
|
+
when :preset
|
73
|
+
preset = Preset.find(element.last.first)
|
74
|
+
if preset.is_a?(Proc)
|
75
|
+
element.last[1] ? preset.(element.last[1]) : preset.()
|
76
|
+
else
|
77
|
+
preset
|
78
|
+
end
|
79
|
+
else
|
80
|
+
# do nothing
|
81
|
+
end
|
82
|
+
end.compact.join.html_safe
|
54
83
|
end
|
55
84
|
end
|
56
85
|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
1
|
class PenetrationsController < ApplicationController
|
4
2
|
Penetration.configure do
|
5
3
|
preset(:notify) { 'peenetrated notification!' }
|
4
|
+
preset(:too_long) { 'peenetrated notification!' * 500 }
|
6
5
|
preset(:alert) { ->(message) { "peenetrated #{message}" } }
|
6
|
+
preset(:no_param) { -> { "peenetrated noparam!" } }
|
7
7
|
end
|
8
8
|
|
9
9
|
def index
|
@@ -11,23 +11,45 @@ class PenetrationsController < ApplicationController
|
|
11
11
|
|
12
12
|
def dynamic
|
13
13
|
penetrate 'peenetrated penetration!'
|
14
|
+
render :index
|
15
|
+
end
|
16
|
+
|
17
|
+
def dynamic_too_long
|
18
|
+
penetrate 'peenetrated penetration!' * 500
|
19
|
+
render json: {}
|
14
20
|
end
|
15
21
|
|
16
22
|
def tag
|
17
23
|
penetrate '<strong>peenetrated penetration!</strong>'
|
18
|
-
render :
|
24
|
+
render :index
|
19
25
|
end
|
20
26
|
|
21
27
|
def preset
|
22
28
|
penetrate {
|
23
29
|
notify
|
24
30
|
}
|
31
|
+
render :index
|
32
|
+
end
|
33
|
+
|
34
|
+
def preset_too_long
|
35
|
+
penetrate {
|
36
|
+
too_long
|
37
|
+
}
|
38
|
+
render json: {}
|
39
|
+
end
|
40
|
+
|
41
|
+
def with_no_param
|
42
|
+
penetrate {
|
43
|
+
no_param
|
44
|
+
}
|
45
|
+
render :index
|
25
46
|
end
|
26
47
|
|
27
48
|
def with_param
|
28
49
|
penetrate {
|
29
50
|
alert 'alert!'
|
30
51
|
}
|
52
|
+
render :index
|
31
53
|
end
|
32
54
|
|
33
55
|
def double
|
@@ -35,6 +57,7 @@ class PenetrationsController < ApplicationController
|
|
35
57
|
alert 'alert1!'
|
36
58
|
alert 'alert2!'
|
37
59
|
}
|
60
|
+
render :index
|
38
61
|
end
|
39
62
|
end
|
40
63
|
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
Dummy::Application.routes.draw do
|
2
2
|
get 'penetrations/index'
|
3
3
|
get 'penetrations/dynamic'
|
4
|
+
get 'penetrations/dynamic_too_long'
|
4
5
|
get 'penetrations/tag'
|
5
6
|
get 'penetrations/preset'
|
7
|
+
get 'penetrations/preset_too_long'
|
8
|
+
get 'penetrations/with_no_param'
|
6
9
|
get 'penetrations/with_param'
|
7
10
|
get 'penetrations/double'
|
8
11
|
end
|
@@ -15,6 +15,12 @@ describe 'Penetrations', type: :request do
|
|
15
15
|
expect(response.body).to include('peenetrated penetration!')
|
16
16
|
end
|
17
17
|
|
18
|
+
it do
|
19
|
+
expect{
|
20
|
+
get '/penetrations/dynamic_too_long'
|
21
|
+
}.to raise_exception(ActionDispatch::Cookies::CookieOverflow)
|
22
|
+
end
|
23
|
+
|
18
24
|
it do
|
19
25
|
get '/penetrations/tag'
|
20
26
|
expect(response.body).to include('<strong>peenetrated penetration!</strong>')
|
@@ -25,6 +31,17 @@ describe 'Penetrations', type: :request do
|
|
25
31
|
expect(response.body).to include('peenetrated notification!')
|
26
32
|
end
|
27
33
|
|
34
|
+
it do
|
35
|
+
get '/penetrations/preset_too_long'
|
36
|
+
get '/penetrations/index'
|
37
|
+
expect(response.body).to include('peenetrated notification!' * 10)
|
38
|
+
end
|
39
|
+
|
40
|
+
it do
|
41
|
+
get '/penetrations/with_no_param'
|
42
|
+
expect(response.body).to include('peenetrated noparam!')
|
43
|
+
end
|
44
|
+
|
28
45
|
it do
|
29
46
|
get '/penetrations/with_param'
|
30
47
|
expect(response.body).to include('peenetrated alert!')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: penetration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmmpa
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- Gemfile
|
165
165
|
- Gemfile.lock
|
166
166
|
- MIT-LICENSE
|
167
|
+
- README.md
|
167
168
|
- Rakefile
|
168
169
|
- lib/penetration.rb
|
169
170
|
- lib/penetration/version.rb
|
@@ -182,11 +183,7 @@ files:
|
|
182
183
|
- spec/dummy/app/models/.keep
|
183
184
|
- spec/dummy/app/models/concerns/.keep
|
184
185
|
- spec/dummy/app/views/layouts/application.html.erb
|
185
|
-
- spec/dummy/app/views/penetrations/double.html.erb
|
186
|
-
- spec/dummy/app/views/penetrations/dynamic.html.erb
|
187
186
|
- spec/dummy/app/views/penetrations/index.html.erb
|
188
|
-
- spec/dummy/app/views/penetrations/preset.html.erb
|
189
|
-
- spec/dummy/app/views/penetrations/with_param.html.erb
|
190
187
|
- spec/dummy/bin/bundle
|
191
188
|
- spec/dummy/bin/rails
|
192
189
|
- spec/dummy/bin/rake
|