Changeset 397 for ruby/trunk


Ignore:
Timestamp:
Jan 19, 2010, 8:54:57 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

refs #71

Location:
ruby/trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb

    r396 r397  
    133133          end
    134134
    135          
     135          class CDate < CPrimitive
     136            attr_accessor :range, :timezone_validity
     137            attr_reader :month_validity, :day_validity
     138
     139            def initialize(args = { })
     140              super(args)
     141              self.range = args[:range]
     142              consistency_validity(args[:month_validity], args[:day_validity])
     143              @month_validity = args[:month_validity]
     144              @day_validity = args[:day_validity]
     145              self.timezone_validity = args[:timezone_validity]
     146            end
     147
     148            def month_validity=(month_validity)
     149              consistency_validity(month_validity, @day_validity)
     150              @month_validity = month_validity
     151            end
     152
     153            def day_validity=(day_validity)
     154              consistency_validity(@month_validity, day_validity)
     155              @day_validity = day_validity
     156            end
     157
     158            def validity_is_range?
     159              return !@range.nil?
     160            end
     161
     162            private
     163            def consistency_validity(month_validity, day_validity)
     164              if (month_validity == ValidityKind::OPTIONAL) &&
     165                  !((day_validity == ValidityKind::OPTIONAL) ||
     166                    (day_validity == ValidityKind::DISALLOWED))
     167                raise ArgumentError, 'month_validity inconsistent'
     168              end
     169              if (month_validity == ValidityKind::DISALLOWED) &&
     170                  !(day_validity == ValidityKind::DISALLOWED)
     171                raise ArgumentError, 'month validity disallowed'
     172              end
     173            end
     174          end
    136175        end # of Primitive
    137176      end # of CostraintModel
  • ruby/trunk/lib/open_ehr/assumed_library_types.rb

    r369 r397  
    135135
    136136    module ISO8601DateModule
     137      include Comparable
    137138      attr_reader :year, :month, :day
    138139
     
    180181        month_unknown? or day_unknown?
    181182      end
    182 
     183     
     184      def <=>(other)
     185        (@year*TimeDefinitions::NOMINAL_DAYS_IN_YEAR +
     186         @month*TimeDefinitions::NOMINAL_DAYS_IN_MONTH + @day) <=>
     187          (other.year*TimeDefinitions::NOMINAL_DAYS_IN_YEAR +
     188           other.month*TimeDefinitions::NOMINAL_DAYS_IN_MONTH + other.month)
     189      end
    183190      protected
    184191      def leapyear?(year)
  • ruby/trunk/lib/open_ehr/rm/data_types/quantity/date_time.rb

    r371 r397  
    181181            end
    182182
     183            def <=>(other)
     184              self.magnitude <=> other.magnitude
     185            end
     186
    183187            private
    184188
  • ruby/trunk/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb

    r394 r397  
    2323  end
    2424
    25   it 'pattern should be assigned properly' do
     25  it 'pattern should be assigned properly by constructor' do
    2626    @c_string.pattern.should == 't[a-z]st'
     27  end
     28
     29  it 'pattern should be assigned properly by method' do
     30    @c_string.pattern = '.*'
     31    @c_string.pattern.should == '.*'
    2732  end
    2833
     
    4752    end
    4853
    49     it 'list should be assigned properly' do
     54    it 'list should be assigned properly by constructor' do
    5055      @c_string.list.should == ['test', 'behavior']
     56    end
     57
     58    it 'list shoudl be assigned properly by method' do
     59      @c_string.list = ['spec']
     60      @c_string.list.should == ['spec']
    5161    end
    5262
Note: See TracChangeset for help on using the changeset viewer.