security_guard 0.0.2 → 0.0.3
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/README.md +21 -0
- data/lib/security_guard/{utils → concerns}/accepts_from_file.rb +1 -1
- data/lib/security_guard/concerns/initializable.rb +29 -0
- data/lib/security_guard/country_ips.rb +1 -1
- data/lib/security_guard/version.rb +1 -1
- data/lib/security_guard.rb +2 -1
- data/specs/concerns/accepts_from_file_spec.rb +24 -0
- data/specs/concerns/initializable_spec.rb +24 -0
- metadata +16 -14
- data/specs/utils/accepts_from_file_spec.rb +0 -22
data/README.md
CHANGED
@@ -24,6 +24,23 @@ There is an `sguard` command if you intend to use security_guard as a command li
|
|
24
24
|
|
25
25
|
sguard -h
|
26
26
|
|
27
|
+
### Tips
|
28
|
+
|
29
|
+
You can pass in setters during initialisation, for example:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
country_ips = SecurityGuard::CountryIps.new
|
33
|
+
country_ips.countries = ['Australia', 'United Kingdom']
|
34
|
+
country_ips.ips = ['4.4.4.4', '8.8.8.8', '203.206.0.1']
|
35
|
+
|
36
|
+
# the above is equivalent to:
|
37
|
+
|
38
|
+
country_ips = SecurityGuard::CountryIps.new(
|
39
|
+
:countries => ['Australia', 'United Kingdom']
|
40
|
+
:ips => ['4.4.4.4', '8.8.8.8', '203.206.0.1']
|
41
|
+
)
|
42
|
+
```
|
43
|
+
|
27
44
|
### Country IPs
|
28
45
|
|
29
46
|
Returns a list of the IPs from given country and IP dictionaries. Useful for auditing IPs from higher risk nations.
|
@@ -44,6 +61,10 @@ country_ips.ips_from_file = '/path/to/the/file'
|
|
44
61
|
|
45
62
|
## Changelog
|
46
63
|
|
64
|
+
### v0.0.3 [2012-01-20]
|
65
|
+
|
66
|
+
- Added Concerns::Initializable
|
67
|
+
|
47
68
|
### v0.0.2 [2012-01-19]
|
48
69
|
|
49
70
|
- Added IP address sanity check
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module SecurityGuard
|
2
|
+
module Concerns
|
3
|
+
module Initializable
|
4
|
+
def self.included(klass)
|
5
|
+
klass.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
def initializable_attrs(attributes)
|
9
|
+
attributes.each do |name, value|
|
10
|
+
self.send "#{name}=", value
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
def initializable(*attributes)
|
16
|
+
attributes.each do |name|
|
17
|
+
self.send :attr_accessor, name
|
18
|
+
end
|
19
|
+
|
20
|
+
unless self.method_defined?(:initialize)
|
21
|
+
self.send :define_method, :initialize, lambda { |args|
|
22
|
+
initializable_attrs args
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/security_guard.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'security_guard/version'
|
2
2
|
require 'security_guard/utils/files'
|
3
|
-
require 'security_guard/utils/accepts_from_file'
|
4
3
|
require 'security_guard/utils/geo_ips'
|
4
|
+
require 'security_guard/concerns/accepts_from_file'
|
5
|
+
require 'security_guard/concerns/initializable'
|
5
6
|
require 'security_guard/country_ips'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
class TestAcceptsFromFile
|
4
|
+
include SecurityGuard::Concerns::AcceptsFromFile
|
5
|
+
accepts_from_file :attr1, :attr2
|
6
|
+
end
|
7
|
+
|
8
|
+
describe SecurityGuard::Concerns::AcceptsFromFile do
|
9
|
+
before do
|
10
|
+
@test = TestAcceptsFromFile.new
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'has #attr1 as an accessor' do
|
14
|
+
@test.attr1 = 'test1'
|
15
|
+
@test.attr2 = 'test2'
|
16
|
+
@test.attr1.must_equal 'test1'
|
17
|
+
@test.attr2.must_equal 'test2'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'converts data from a file into an array' do
|
21
|
+
@test.attr1_from_file = fixture_file('countries.txt')
|
22
|
+
@test.attr1.must_equal ['Australia', 'United States', 'United Kingdom']
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
class TestInitializableWithInitializer
|
4
|
+
include SecurityGuard::Concerns::Initializable
|
5
|
+
initializable :attr1, :attr2
|
6
|
+
def initialize(args)
|
7
|
+
initializable_attrs args
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class TestInitializableWithoutInitializer
|
12
|
+
include SecurityGuard::Concerns::Initializable
|
13
|
+
initializable :attr1, :attr2
|
14
|
+
end
|
15
|
+
|
16
|
+
describe SecurityGuard::Concerns::Initializable do
|
17
|
+
[TestInitializableWithInitializer, TestInitializableWithoutInitializer].each do |klass|
|
18
|
+
it "#{klass}: initialises with some attributes" do
|
19
|
+
test = klass.new :attr1 => 'test1', :attr2 => 'test2'
|
20
|
+
test.attr1.must_equal 'test1'
|
21
|
+
test.attr2.must_equal 'test2'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: security_guard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: clamp
|
16
|
-
requirement: &
|
16
|
+
requirement: &70250519727080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70250519727080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: awesome_print
|
27
|
-
requirement: &
|
27
|
+
requirement: &70250519724280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70250519724280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: geoip
|
38
|
-
requirement: &
|
38
|
+
requirement: &70250519722640 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70250519722640
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &70250519721680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70250519721680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest-colorize
|
60
|
-
requirement: &
|
60
|
+
requirement: &70250519715500 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70250519715500
|
69
69
|
description: A collection of useful tools for auditing data and performing security
|
70
70
|
checks.
|
71
71
|
email:
|
@@ -83,17 +83,19 @@ files:
|
|
83
83
|
- bin/sguard
|
84
84
|
- data/GeoIP.dat
|
85
85
|
- lib/security_guard.rb
|
86
|
+
- lib/security_guard/concerns/accepts_from_file.rb
|
87
|
+
- lib/security_guard/concerns/initializable.rb
|
86
88
|
- lib/security_guard/country_ips.rb
|
87
|
-
- lib/security_guard/utils/accepts_from_file.rb
|
88
89
|
- lib/security_guard/utils/files.rb
|
89
90
|
- lib/security_guard/utils/geo_ips.rb
|
90
91
|
- lib/security_guard/version.rb
|
91
92
|
- security_guard.gemspec
|
93
|
+
- specs/concerns/accepts_from_file_spec.rb
|
94
|
+
- specs/concerns/initializable_spec.rb
|
92
95
|
- specs/country_ips_spec.rb
|
93
96
|
- specs/fixtures/countries.txt
|
94
97
|
- specs/fixtures/ip_addresses.txt
|
95
98
|
- specs/spec_helper.rb
|
96
|
-
- specs/utils/accepts_from_file_spec.rb
|
97
99
|
- specs/utils/files_spec.rb
|
98
100
|
- specs/utils/geo_ips_spec.rb
|
99
101
|
homepage: https://github.com/sitepoint/security_guard
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
class TestA
|
4
|
-
include SecurityGuard::Utils::AcceptsFromFile
|
5
|
-
accepts_from_file :test_attribute
|
6
|
-
end
|
7
|
-
|
8
|
-
describe SecurityGuard::Utils::AcceptsFromFile do
|
9
|
-
before do
|
10
|
-
@test = TestA.new
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'has #test_attribute as an accessor' do
|
14
|
-
@test.test_attribute = 'test'
|
15
|
-
@test.test_attribute.must_equal 'test'
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'converts data from a file into an array' do
|
19
|
-
@test.test_attribute_from_file = fixture_file('countries.txt')
|
20
|
-
@test.test_attribute.must_equal ['Australia', 'United States', 'United Kingdom']
|
21
|
-
end
|
22
|
-
end
|