rcap 1.0.0.rc.1 → 1.0.0.rc.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -8,7 +8,7 @@ RCAP currently supports CAP 1.1 and 1.2.
8
8
 
9
9
  == Version
10
10
 
11
- 1.0
11
+ 1.0.0 RC 1
12
12
 
13
13
  == Dependencies
14
14
 
@@ -47,10 +47,12 @@ All RCAP classes reside in the RCAP namespace but including the RCAP module make
47
47
 
48
48
  === Creating an Alert
49
49
 
50
- alert = Alert.new( sender: 'cape_town_disaster_relief@capetown.municipal.za',
51
- status: Alert::STATUS_ACTUAL,
52
- msg_type: Alert::MSG_TYPE_ALERT,
53
- scope: Alert::SCOPE_PUBLIC )
50
+ alert = Alert.new( identifier: RCAP.generate_identifier,
51
+ sent: DateTime.now,
52
+ sender: 'cape_town_disaster_relief@capetown.municipal.za',
53
+ status: Alert::STATUS_ACTUAL,
54
+ msg_type: Alert::MSG_TYPE_ALERT,
55
+ scope: Alert::SCOPE_PUBLIC )
54
56
 
55
57
  alert.add_info( event: 'Liquid Petroleoum Tanker Fire',
56
58
  language: 'en-ZA',
@@ -70,7 +72,7 @@ All RCAP classes reside in the RCAP namespace but including the RCAP module make
70
72
  alert.status # "Actual"
71
73
  alert.infos[0].language # "en-ZA"
72
74
  alert.infos[0].categories.join( ', ' ) # "Transport, Fire"
73
- alert.infos[0].areas[0].first # "N2 Highway/R300 Interchange"
75
+ alert.infos[0].areas[0] # "N2 Highway/R300 Interchange"
74
76
 
75
77
  === Parsing an Alert From An External Source
76
78
 
@@ -86,7 +88,7 @@ RCAP allows for the parsing of a CAP XML string
86
88
 
87
89
  ==== From YAML
88
90
 
89
- Alert messgaes can be read in from text files containing data formatted in YAML[http://yaml.org] as generated by Alert#to_yaml.
91
+ Alert messgaes can be read in from text files containing data formatted in YAML[http://yaml.org] as generated by RCAP::CAP_1_2::Alert#to_yaml.
90
92
 
91
93
  alert = RCAP::Alert.from_yaml( yaml_string )
92
94
 
@@ -110,7 +112,7 @@ The RCAP API aims to codify as many of the rules of the CAP XML format into vali
110
112
  puts "Is info valid: #{ info.valid? }"
111
113
  info.errors.full_messages.each{ |message| puts "Error: #{ message }" }
112
114
 
113
- Will produce the folling output:
115
+ Will produce the following output:
114
116
 
115
117
  Is info valid: false
116
118
  Error: severity is not present
@@ -10,7 +10,7 @@ module RCAP
10
10
  attr_accessor( :radius )
11
11
 
12
12
  validates_presence_of( :radius )
13
- validates_numericality_of( :radius , :greater_than => 0 )
13
+ validates_numericality_of( :radius , :greater_than_or_equal: 0 )
14
14
 
15
15
  XML_ELEMENT_NAME = 'circle' # :nodoc:
16
16
 
@@ -38,8 +38,8 @@ module RCAP
38
38
  [ self.lattitude, self.longitude ] == [ other.lattitude, other.longitude ]
39
39
  end
40
40
 
41
- LATTITUDE_KEY = 'lattitude_hash' # :nodoc:
42
- LONGITUDE_KEY = 'longitude_hash' # :nodoc:
41
+ LATTITUDE_KEY = 'lattitude' # :nodoc:
42
+ LONGITUDE_KEY = 'longitude' # :nodoc:
43
43
 
44
44
  def to_h # :nodoc:
45
45
  RCAP.attribute_values_to_hash(
@@ -10,7 +10,7 @@ module RCAP
10
10
  attr_accessor( :radius )
11
11
 
12
12
  validates_presence_of( :radius )
13
- validates_numericality_of( :radius , :greater_than => 0 )
13
+ validates_numericality_of( :radius , :greater_than_or_equal: 0 )
14
14
 
15
15
  XML_ELEMENT_NAME = 'circle' # :nodoc:
16
16
 
@@ -38,8 +38,8 @@ module RCAP
38
38
  [ self.lattitude, self.longitude ] == [ other.lattitude, other.longitude ]
39
39
  end
40
40
 
41
- LATTITUDE_KEY = 'lattitude_hash' # :nodoc:
42
- LONGITUDE_KEY = 'longitude_hash' # :nodoc:
41
+ LATTITUDE_KEY = 'lattitude' # :nodoc:
42
+ LONGITUDE_KEY = 'longitude' # :nodoc:
43
43
 
44
44
  def to_h # :nodoc:
45
45
  RCAP.attribute_values_to_hash(
@@ -104,7 +104,7 @@ module Validation # :nodoc:
104
104
 
105
105
  def validates_numericality_of( *attributes )
106
106
  options = {
107
- :message => 'is not a number',
107
+ :message => 'is not a number or does not meet a conditional requirement',
108
108
  }.merge!(attributes.extract_options!)
109
109
 
110
110
  re = options[:only_integer] ? CAP_INTEGER_REGEX : CAP_NUMBER_REGEX
@@ -112,7 +112,8 @@ module Validation # :nodoc:
112
112
  validates_each( *attributes ) do |object, attribute, value|
113
113
  next if (value.nil? && options[ :allow_nil ]) || (value.blank? && options[ :allow_blank ])
114
114
  unless ( value.to_s =~ re ) &&
115
- ( options[ :greater_than ].nil? || value && value > options[ :greater_than ])
115
+ ( options[ :greater_than ].nil? || value && value > options[ :greater_than ]) &&
116
+ ( options[ :greater_than_or_equal ].nil? || value && value >= options[ :greater_than_or_equal])
116
117
  object.errors[ attribute ] << options[ :message ]
117
118
  end
118
119
  end
data/lib/rcap/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RCAP
2
- VERSION = '1.0.0.rc.1'
2
+ VERSION = '1.0.0.rc.2'
3
3
  end
@@ -33,6 +33,14 @@ class ConditionalPresenceIsObject
33
33
  validates_conditional_presence_of( :dependent_value, when: :contingent_value, is: 1 )
34
34
  end
35
35
 
36
+ class NumericalityObject
37
+ include Validation
38
+ attr_accessor( :gt, :gte )
39
+
40
+ validates_numericality_of( :gt, greater_than: 0 )
41
+ validates_numericality_of( :gte, greater_than_or_equal: 0 )
42
+ end
43
+
36
44
  describe( Validation::ClassMethods ) do
37
45
  describe( 'validates_collection_of' ) do
38
46
  before( :each ) do
@@ -165,4 +173,28 @@ describe( Validation::ClassMethods ) do
165
173
  end
166
174
  end
167
175
  end
176
+
177
+ describe( 'validates_numericality_of' ) do
178
+ before( :each ) do
179
+ @object = NumericalityObject.new
180
+ @object.gt = 1
181
+ @object.gte = 0
182
+ @object.should( be_valid )
183
+ end
184
+
185
+ it( 'should not be valid with a non-numerical value' ) do
186
+ @object.gt = 'one'
187
+ @object.should_not( be_valid )
188
+ end
189
+
190
+ it( 'should not be valid if set :greater_than is false' ) do
191
+ @object.gt = 0
192
+ @object.should_not( be_valid )
193
+ end
194
+
195
+ it( 'should not be valid if set :greater_than_or_equal is false' ) do
196
+ @object.gte = -1
197
+ @object.should_not( be_valid )
198
+ end
199
+ end
168
200
  end
metadata CHANGED
@@ -7,8 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 0
8
8
  - 0
9
9
  - rc
10
- - 1
11
- version: 1.0.0.rc.1
10
+ - 2
11
+ version: 1.0.0.rc.2
12
12
  platform: ruby
13
13
  authors:
14
14
  - Farrel Lifson
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-03 00:00:00 +02:00
19
+ date: 2011-04-04 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency