Class: GEDCOM::Date
- Inherits:
-
GEDCOM_DATE_PARSER::GEDDateValue
- Object
- GEDCOM_DATE_PARSER::GEDDateValue
- GEDCOM::Date
- Defined in:
- lib/gedcom_ruby/date.rb
Overview
/ DatePart
Constant Summary collapse
- NONE =
Calendar types
GEDCOM_DATE_PARSER::GCNONE
- ABOUT =
GEDCOM_DATE_PARSER::GCABOUT
- CALCULATED =
GEDCOM_DATE_PARSER::GCCALCULATED
- ESTIMATED =
GEDCOM_DATE_PARSER::GCESTIMATED
- BEFORE =
GEDCOM_DATE_PARSER::GCBEFORE
- AFTER =
GEDCOM_DATE_PARSER::GCAFTER
- BETWEEN =
GEDCOM_DATE_PARSER::GCBETWEEN
- FROM =
GEDCOM_DATE_PARSER::GCFROM
- TO =
GEDCOM_DATE_PARSER::GCTO
- FROMTO =
GEDCOM_DATE_PARSER::GCFROMTO
- INTERPRETED =
GEDCOM_DATE_PARSER::GCINTERPRETED
- CHILD =
GEDCOM_DATE_PARSER::GCCHILD
- CLEARED =
GEDCOM_DATE_PARSER::GCCLEARED
- COMPLETED =
GEDCOM_DATE_PARSER::GCCOMPLETED
- INFANT =
GEDCOM_DATE_PARSER::GCINFANT
- PRE1970 =
GEDCOM_DATE_PARSER::GCPRE1970
- QUALIFIED =
GEDCOM_DATE_PARSER::GCQUALIFIED
- STILLBORN =
GEDCOM_DATE_PARSER::GCSTILLBORN
- SUBMITTED =
GEDCOM_DATE_PARSER::GCSUBMITTED
- UNCLEARED =
GEDCOM_DATE_PARSER::GCUNCLEARED
- BIC =
GEDCOM_DATE_PARSER::GCBIC
- DNS =
GEDCOM_DATE_PARSER::GCDNS
- DNSCAN =
GEDCOM_DATE_PARSER::GCDNSCAN
- DEAD =
GEDCOM_DATE_PARSER::GCDEAD
Instance Attribute Summary
Attributes inherited from GEDCOM_DATE_PARSER::GEDDateValue
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(d) ⇒ Object
- #first ⇒ Object
- #format ⇒ Object
-
#initialize(date_str, calendar = DateType::DEFAULT) ⇒ Date
constructor
A new instance of Date.
- #is_date? ⇒ Boolean
- #is_range? ⇒ Boolean
- #last ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(date_str, calendar = DateType::DEFAULT) ⇒ Date
Returns a new instance of Date.
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/gedcom_ruby/date.rb', line 161 def initialize ( date_str, calendar=DateType::DEFAULT ) begin @date1 = DatePart.new @date2 = DatePart.new super(GEDCOM_DATE_PARSER::DateParser::GEDFNONE, @date1, @date2) GEDCOM_DATE_PARSER::DateParser.parse_gedcom_date( date_str, self, calendar ) rescue GEDCOM_DATE_PARSER::DateParseException err_msg = "format error at '" if (@date1 && (@date1.flags & DatePart::NONSTANDARD)) err_msg += @date1.data.to_s elsif (@date2) err_msg += @date2.data.to_s end err_msg += "'" if (block_given?) yield( err_msg ) else raise DateFormatException, err_msg end end end |
Class Method Details
.safe_new(parm) ⇒ Object
157 158 159 |
# File 'lib/gedcom_ruby/date.rb', line 157 def Date.safe_new( parm ) Date.new( parm ) { |errmsg| } end |
Instance Method Details
#<=>(d) ⇒ Object
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 |
# File 'lib/gedcom_ruby/date.rb', line 208 def <=>( d ) if is_date? and d.is_date? rc = ( first <=> d.first ) return rc unless rc == 0 if is_range? and d.is_range? return ( last <=> d.last ) elsif is_range? return 1 elsif d.is_range? return -1 end return 0 elsif is_date? return -1 elsif d.is_date? return 1 end return format <=> d.format end |
#first ⇒ Object
187 188 189 |
# File 'lib/gedcom_ruby/date.rb', line 187 def first @date1 end |
#format ⇒ Object
183 184 185 |
# File 'lib/gedcom_ruby/date.rb', line 183 def format @flags end |
#is_date? ⇒ Boolean
199 200 201 202 |
# File 'lib/gedcom_ruby/date.rb', line 199 def is_date? (@flags & (NONE | ABOUT | CALCULATED | ESTIMATED | BEFORE | AFTER | BETWEEN \ | FROM | TO | FROMTO | INTERPRETED)) != 0 ? false : true end |
#is_range? ⇒ Boolean
204 205 206 |
# File 'lib/gedcom_ruby/date.rb', line 204 def is_range? (@flags & (BETWEEN | FROMTO)) != 0 ? true : false end |
#last ⇒ Object
191 192 193 |
# File 'lib/gedcom_ruby/date.rb', line 191 def last @date2 end |
#to_s ⇒ Object
195 196 197 |
# File 'lib/gedcom_ruby/date.rb', line 195 def to_s GEDCOM_DATE_PARSER::DateParser.build_gedcom_date_string( self ) end |