Changeset 125


Ignore:
Timestamp:
May 22, 2009, 4:51:42 PM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #36

Location:
ruby/trunk/lib/models
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/assumed_library_types.rb

    r124 r125  
    119119        @month = month
    120120      end
     121
    121122      def day=(day)
    122123        raise ArgumentError, "Day is not valid" unless day.nil? or ISO8601_DATE.valid_day?(@year, @month, day)
    123124        @day = day
    124125      end
     126
    125127      def as_string
    126128        if (!@year.nil? and !@month.nil? and !@day.nil?)
     
    132134        end         
    133135      end
     136
    134137      def month_unknown?
    135138        @month.nil?
    136139      end
     140
    137141      def day_unknown?
    138142        @day.nil?
    139143      end
     144
    140145      def is_extended?
    141146        true
    142147      end
     148
    143149      def is_partial?
    144150        month_unknown? or day_unknown?
     
    241247        second_unknown? or minute_unknown?
    242248      end
     249
    243250      def as_string
    244251        s = sprintf("%02d", @hour)
     
    248255            s += ":" + sprintf("%02d", @second)
    249256            if !@fractional_second.nil?
    250               s += "," + @fractional_second.to_s[2..-1]
     257              s += "." + @fractional_second.to_s[2..-1]
    251258              if !@timezone.nil?
    252259                s += @timezone
     
    255262          end
    256263        end
    257         s
     264        return s
    258265      end
    259266    end
     
    332339
    333340    class ISO8601_DATE_TIME < ISO8601_DATE
    334       include ISO8601_DATE_MODULE, ISO8601_TIME_MODULE
     341      include ISO8601_TIME_MODULE, ISO8601_DATE_MODULE
    335342      def initialize(string)
    336343        /(\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|([+-]\d{2}):?(\d{2}))?)?)?)?/ =~ string
     
    376383        end
    377384      end
     385
     386      def as_string
     387        if (!@year.nil? and !@month.nil? and !@day.nil?)
     388          s = Date.new(@year, @month, @day).to_s
     389        elsif (!@year.nil? and !@month.nil? and @day.nil?)
     390          return Date.new(@year, @month).to_s[0,7]
     391        elsif (!@year.nil? and @month.nil? and @day.nil?)
     392          return Date.new(@year).to_s[0,4]
     393        end         
     394        s += sprintf("T%02d", @hour)
     395        if !@minute.nil?
     396          s += ":" + sprintf("%02d",@minute)
     397          if !@second.nil?
     398            s += ":" + sprintf("%02d", @second)
     399            if !@fractional_second.nil?
     400              s += "." + @fractional_second.to_s[2..-1]
     401              if !@timezone.nil?
     402                s += @timezone
     403              end
     404            end
     405          end
     406        end
     407        return s
     408      end
     409
    378410    end
    379411
  • ruby/trunk/lib/models/tests/test_assumed_library_types.rb

    r124 r125  
    248248    assert @iso8601_time.has_fractional_second?
    249249    assert_equal 0.23, @iso8601_time.fractional_second
    250     assert_equal "23:59:59,23", @iso8601_time.as_string
     250    assert_equal "23:59:59.23", @iso8601_time.as_string
    251251    assert @iso8601_time.is_extended?
    252252    assert @iso8601_time.is_decimal_sign_comma?
     
    269269    assert_equal 0.32, @iso8601_date_time.fractional_second
    270270    assert_equal '+0900', @iso8601_date_time.timezone
     271    assert_equal '2009-04-27T15:55:37.32+0900', @iso8601_date_time.as_string
    271272    assert_nothing_raised(Exception){
    272273      @iso8601_date_time.year = 2008 }
Note: See TracChangeset for help on using the changeset viewer.