spf 0.0.22 → 0.0.23
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/spf/model.rb +15 -2
- data/lib/spf/version.rb +1 -1
- data/spf.gemspec +1 -1
- metadata +1 -1
data/lib/spf/model.rb
CHANGED
@@ -85,15 +85,17 @@ class SPF::Term
|
|
85
85
|
::
|
86
86
|
"
|
87
87
|
|
88
|
-
attr_reader :errors, :ip_netblocks, :ip_address, :ip_network, :ipv4_prefix_length, :ipv6_prefix_length, :domain_spec
|
88
|
+
attr_reader :errors, :ip_netblocks, :ip_address, :ip_network, :ipv4_prefix_length, :ipv6_prefix_length, :domain_spec, :raw_params
|
89
89
|
|
90
90
|
def initialize(options = {})
|
91
91
|
@ip_address = nil
|
92
92
|
@ip_network = nil
|
93
93
|
@ipv4_prefix_length = nil
|
94
94
|
@ipv6_prefix_length = nil
|
95
|
+
@raw_params = nil
|
95
96
|
@errors = []
|
96
97
|
@ip_netblocks = []
|
98
|
+
@text = options[:text]
|
97
99
|
@raise_exceptions = options.has_key?(:raise_exceptions) ? options[:raise_exceptions] : true
|
98
100
|
end
|
99
101
|
|
@@ -103,7 +105,6 @@ class SPF::Term
|
|
103
105
|
end
|
104
106
|
|
105
107
|
def self.new_from_string(text, options = {})
|
106
|
-
#term = SPF::Term.new(options, {:text => text})
|
107
108
|
options[:text] = text
|
108
109
|
term = self.new(options)
|
109
110
|
term.parse
|
@@ -122,6 +123,7 @@ class SPF::Term
|
|
122
123
|
end
|
123
124
|
|
124
125
|
def parse_ipv4_address(required = false)
|
126
|
+
@raw_params = @parse_text.dup
|
125
127
|
if @parse_text.sub!(/^(#{IPV4_ADDRESS_PATTERN})/x, '')
|
126
128
|
@ip_address = $1
|
127
129
|
elsif required
|
@@ -151,6 +153,7 @@ class SPF::Term
|
|
151
153
|
end
|
152
154
|
|
153
155
|
def parse_ipv4_network(required = false)
|
156
|
+
@raw_params = @parse_text.dup
|
154
157
|
self.parse_ipv4_address(required)
|
155
158
|
self.parse_ipv4_prefix_length
|
156
159
|
begin
|
@@ -189,6 +192,7 @@ class SPF::Term
|
|
189
192
|
end
|
190
193
|
|
191
194
|
def parse_ipv6_network(required = false)
|
195
|
+
@raw_params = @parse_text.dup
|
192
196
|
self.parse_ipv6_address(required)
|
193
197
|
self.parse_ipv6_prefix_length
|
194
198
|
begin
|
@@ -285,9 +289,11 @@ class SPF::Mech < SPF::Term
|
|
285
289
|
end
|
286
290
|
|
287
291
|
def parse_params(required = true)
|
292
|
+
@raw_params = @parse_text.dup
|
288
293
|
# Parse generic string of parameters text (should be overridden in sub-classes):
|
289
294
|
if @parse_text.sub!(/^(.*)/, '')
|
290
295
|
@params_text = $1
|
296
|
+
@raw_params = @params_text.dup
|
291
297
|
end
|
292
298
|
end
|
293
299
|
|
@@ -366,6 +372,7 @@ class SPF::Mech < SPF::Term
|
|
366
372
|
NAME = 'a'
|
367
373
|
|
368
374
|
def parse_params(required = true)
|
375
|
+
@raw_params = @parse_text.dup
|
369
376
|
self.parse_domain_spec
|
370
377
|
self.parse_ipv4_ipv6_prefix_lengths
|
371
378
|
end
|
@@ -410,6 +417,7 @@ class SPF::Mech < SPF::Term
|
|
410
417
|
NAME = 'exists'
|
411
418
|
|
412
419
|
def parse_params(required = true)
|
420
|
+
@raw_params = @raw_text.dup
|
413
421
|
self.parse_domain_spec(required)
|
414
422
|
# Other method of denoting "potentially ~infinite" netblocks?
|
415
423
|
@ip_netblocks << nil
|
@@ -486,6 +494,8 @@ class SPF::Mech < SPF::Term
|
|
486
494
|
params = @ip_network.to_addr
|
487
495
|
params += '/' + @ip_network.pfxlen.to_s if
|
488
496
|
@ip_network.pfxlen != self.default_ipv6_prefix_length
|
497
|
+
puts "params: #{params}"
|
498
|
+
puts self.inspect
|
489
499
|
return params
|
490
500
|
end
|
491
501
|
|
@@ -505,6 +515,7 @@ class SPF::Mech < SPF::Term
|
|
505
515
|
end
|
506
516
|
|
507
517
|
def parse_params(required = true)
|
518
|
+
@raw_params = @parse_text.dup
|
508
519
|
self.parse_domain_spec(required)
|
509
520
|
end
|
510
521
|
|
@@ -557,6 +568,7 @@ class SPF::Mech < SPF::Term
|
|
557
568
|
NAME = 'mx'
|
558
569
|
|
559
570
|
def parse_params(required = true)
|
571
|
+
@raw_params = @parse_text.dup
|
560
572
|
self.parse_domain_spec
|
561
573
|
self.parse_ipv4_ipv6_prefix_lengths
|
562
574
|
end
|
@@ -609,6 +621,7 @@ class SPF::Mech < SPF::Term
|
|
609
621
|
NAME = 'ptr'
|
610
622
|
|
611
623
|
def parse_params(required = true)
|
624
|
+
@raw_params = @parse_text.dup
|
612
625
|
self.parse_domain_spec
|
613
626
|
end
|
614
627
|
|
data/lib/spf/version.rb
CHANGED
data/spf.gemspec
CHANGED