codesake-commons 0.89.0 → 0.90.0

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.
@@ -1,5 +1,5 @@
1
1
  module Codesake
2
2
  module Commons
3
- VERSION = "0.89.0"
3
+ VERSION = "0.90.0"
4
4
  end
5
5
  end
@@ -1,10 +1,15 @@
1
+ require 'mechanize'
2
+ require 'codesake/commons/logging'
3
+
1
4
  module Codesake
2
- module Commons
5
+ module Core
3
6
  class Target
4
7
  attr_reader :url
5
8
  attr_reader :username
6
9
  attr_reader :password
7
10
 
11
+ attr_reader :page
12
+
8
13
 
9
14
  # This will be fed by codesake-gengiscan
10
15
  attr_reader :webserver
@@ -26,12 +31,31 @@ module Codesake
26
31
  def initialize(options={})
27
32
  $logger = Codesake::Commons::Logging.instance
28
33
  @agent = Mechanize.new
34
+ @page = nil
29
35
 
30
36
  @url ||= options[:url]
31
37
  @username ||= options[:username]
32
38
  @password ||= options[:password]
33
39
  end
34
40
 
41
+ def has_page?
42
+ ! @page.nil?
43
+ end
44
+
45
+ def get_page(url = nil)
46
+ url = @url if url.nil?
47
+
48
+ begin
49
+ @page = @agent.get(url)
50
+ @cookies = @agent.cookies
51
+ rescue => e
52
+ $logger.err "get_page(): #{e.message}"
53
+ @page = nil
54
+ end
55
+
56
+ @page
57
+ end
58
+
35
59
  def is_alive?
36
60
  return false unless url
37
61
  return false unless @agent
@@ -0,0 +1,77 @@
1
+ module Codesake
2
+ module Core
3
+ class Url
4
+
5
+ attr_reader :url
6
+ attr_reader :base_url
7
+ attr_reader :params
8
+ attr_reader :original_params
9
+
10
+ def initialize(url)
11
+ @url = url
12
+ @params = []
13
+ @original_params = []
14
+ @base_url = url.split('?')[0]
15
+ if has_params?
16
+ p_array = url.split('?')[1].split('&')
17
+ p_array.each do |p|
18
+ pp = p.split('=')
19
+ param = {}
20
+ param[:name] = pp[0]
21
+ param[:value] = pp[1] unless pp[1].nil?
22
+
23
+ @params << param
24
+ @original_params << param.dup
25
+ end
26
+ @original_params.freeze
27
+ end
28
+ end
29
+
30
+ def to_s
31
+ "#{@base_url}?#{params_to_url}"
32
+ end
33
+
34
+ def fuzz(name, value)
35
+ set(name, value)
36
+ "#{@base_url}?#{params_to_url}"
37
+ end
38
+
39
+ def get(name)
40
+ value = nil
41
+ @params.each do |p|
42
+ value = p[:value] if p[:name] == name
43
+ end
44
+ value
45
+ end
46
+
47
+ def set(name, value)
48
+ @params.each do |p|
49
+ p[:value] = value if p[:name] == name
50
+ end
51
+ end
52
+
53
+ def reset
54
+ @params = []
55
+ @original_params.each do |p|
56
+ @params << p.dup
57
+ end
58
+ end
59
+
60
+ def has_params?
61
+ ! @url.split('?')[1].nil?
62
+ end
63
+ def params_to_url
64
+ ret = ""
65
+ @params.each do |p|
66
+ ret += "#{p[:name]}=#{p[:value]}"
67
+ if !(p == @params.last)
68
+ ret +="&"
69
+ end
70
+ end
71
+ ret
72
+
73
+ end
74
+ end
75
+
76
+ end
77
+ end
@@ -1,3 +1,5 @@
1
1
  require "codesake/commons/version"
2
2
  require "codesake/commons/logging"
3
3
  require "codesake/commons/io"
4
+ require "codesake/core/target"
5
+ require "codesake/core/url"
metadata CHANGED
@@ -1,55 +1,62 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codesake-commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.89.0
4
+ version: 0.90.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Paolo Perego
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-17 00:00:00.000000000 Z
12
+ date: 2013-11-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rainbow
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mechanize
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: nokogiri
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  description: codesake.com is an application security startup providing code review
@@ -74,33 +81,35 @@ files:
74
81
  - lib/codesake-commons.rb
75
82
  - lib/codesake/commons/io.rb
76
83
  - lib/codesake/commons/logging.rb
77
- - lib/codesake/commons/target.rb
78
84
  - lib/codesake/commons/version.rb
85
+ - lib/codesake/core/target.rb
86
+ - lib/codesake/core/url.rb
79
87
  - spec/codesake_commons_spec.rb
80
88
  - spec/logging_spec.rb
81
89
  - spec/spec_helper.rb
82
90
  homepage: http://codesake.com
83
91
  licenses: []
84
- metadata: {}
85
92
  post_install_message:
86
93
  rdoc_options: []
87
94
  require_paths:
88
95
  - lib
89
96
  required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
90
98
  requirements:
91
- - - '>='
99
+ - - ! '>='
92
100
  - !ruby/object:Gem::Version
93
101
  version: '0'
94
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
95
104
  requirements:
96
- - - '>='
105
+ - - ! '>='
97
106
  - !ruby/object:Gem::Version
98
107
  version: '0'
99
108
  requirements: []
100
109
  rubyforge_project:
101
- rubygems_version: 2.0.4
110
+ rubygems_version: 1.8.25
102
111
  signing_key:
103
- specification_version: 4
112
+ specification_version: 3
104
113
  summary: codesake_commons is the gem containing common ground routines useful across
105
114
  the codesake.com project
106
115
  test_files:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 7328c2346d57c68bc3abe8a58a9dffa6b6b9f7f8
4
- data.tar.gz: 064907b7e12daa8d415a3f82bd6d034d348314d7
5
- SHA512:
6
- metadata.gz: 42f8865a54fa068fcfef189956df0c3bfe998d40a8f60512c4cb36da46323c6bdd71cfe223048a7ac22707724ca873755e3d450c9ff441f84864e8a70df45299
7
- data.tar.gz: 19a6b0a0dc9541733cea36c288406b800cbbbe1b6e82080bcc6792c2212286dbe4120c6b6f93fe428c4da3056f874915eff46b2375a71678029f3038b5a08b8d