security_guard 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,5 +1,5 @@
1
1
  module SecurityGuard
2
- module Utils
2
+ module Concerns
3
3
  module AcceptsFromFile
4
4
  def self.included(klass)
5
5
  klass.extend ClassMethods
@@ -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
@@ -1,6 +1,6 @@
1
1
  module SecurityGuard
2
2
  class CountryIps
3
- include Utils::AcceptsFromFile
3
+ include Concerns::AcceptsFromFile
4
4
 
5
5
  accepts_from_file :countries, :ips
6
6
 
@@ -1,3 +1,3 @@
1
1
  module SecurityGuard
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -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.2
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-18 00:00:00.000000000 Z
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: &70244890970620 !ruby/object:Gem::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: *70244890970620
24
+ version_requirements: *70250519727080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: awesome_print
27
- requirement: &70244890967900 !ruby/object:Gem::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: *70244890967900
35
+ version_requirements: *70250519724280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: geoip
38
- requirement: &70244890966500 !ruby/object:Gem::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: *70244890966500
46
+ version_requirements: *70250519722640
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70244890962180 !ruby/object:Gem::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: *70244890962180
57
+ version_requirements: *70250519721680
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest-colorize
60
- requirement: &70244890958840 !ruby/object:Gem::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: *70244890958840
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