Changeset 163 for ruby/trunk


Ignore:
Timestamp:
Jul 8, 2009, 11:06:17 PM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

fixed #60, #61

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

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/models/am/archetype/archetype.rb

    r26 r163  
    1010      end
    1111
    12       class ARCHETYPE < OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE
     12      class ARCHETYPE < OpenEHR::RM::Common::Resource::Authored_Resource
    1313        include ADL_Definition
    1414        attr_accessor :archetype_id, :concept_code, :is_controlled, :original_language, :parent_archtype_id, :uid
  • ruby/trunk/lib/models/rm/common/resource.rb

    r24 r163  
    44    module Common
    55      module Resource
    6         class AUTHORED_RESOURCE
    7           attr_reader :is_controled,:revision_history, :translations
    8           attr_accessor :description, :original_language
     6        class Authored_Resource
     7          attr_reader  :original_language, :translations
     8          attr_accessor :description, :revision_history
    99
    1010          def initialize(args = { })
    11             @original_language = args[:original_language] if args[:original_language]
    12             @translations = args[:translations] if args[:translations]
    13             @revision_history = args[:revision_history] ? args[:revision_history] : nil
     11            self.original_language = args[:original_language]
     12            self.translations = args[:translations]
     13            self.revision_history = args[:revision_history]
     14            self.description = args[:description]
     15          end
    1416
    15             unless @revision_history
    16               @is_controled = false
    17             else
    18               @is_controled = true
     17          def original_language=(original_language)
     18            if original_language.nil?
     19              raise ArgumentError, 'original language is mandatory'
    1920            end
     21            @original_language = original_language
     22          end
    2023
    21             @original_language = args[:original_language] if args[:original_language]
    22             @translations = args[:translations] if args[:translations]
    23             @description = args[:description] if args[:description]
     24          def translations=(translations)
     25            if !translations.nil? && translations.empty?
     26              raise ArgumentError, 'translation is empty'
     27            end
     28            @translations = translations
    2429          end
    2530
     
    2833          end
    2934
    30           def language_available
    31             languages = Set.new
    32             if @translations != nil
    33               languages << @translations.keys
    34             end
    35             languages << @original_language.code_string
     35          def languages_available
     36            return Set.new(@translations.keys)
     37          end
     38
     39          def is_controlled?
     40            return !@revision_history.nil?
    3641          end
    3742        end
    3843
    39         class TRANSLATION_DETAILS
    40           attr_accessor :language, :author, :accreditation
    41           attr_accessor :other_details, :terminology_service
     44        class Translation_Details
     45          attr_reader :language, :author
     46          attr_accessor :accreditation, :other_details
    4247
    43           def initialize(language, author, accreditation, other_details,
    44                          terminology_service)
     48          def initialize(args = {})
     49            self.language = args[:language]
     50            self.author = args[:author]
     51            self.accreditation = args[:accreditation]
     52            self.other_details = args[:other_details]
     53          end
     54
     55          def language=(language)
     56            raise ArgumentError, 'language is mandatory' if language.nil?
    4557            @language = language
     58          end
     59
     60          def author=(author)
     61            raise ArgumentError, 'author is mandatory' if author.nil?
    4662            @author = author
    47             @accreditation = accreditation
    48             @other_details = other_details
    49             @terminology_service = terminology_service
    5063          end
    5164        end
    52       end
     65
     66        class Resource_Description
     67          attr_reader :original_author, :lifecycle_state, :details
     68          attr_accessor :other_contributors, :resource_package_uri,
     69                        :other_details, :parent_resource
     70
     71          def initialize(args = {})
     72            self.original_author = args[:original_author]
     73            self.lifecycle_state = args[:lifecycle_state]
     74            self.details = args[:details]
     75            self.other_contributors = args[:other_contributors]
     76            self.resource_package_uri = args[:resource_package_uri]
     77            self.other_details = args[:other_details]
     78            self.parent_resource = args[:parent_resource]
     79          end
     80
     81          def original_author=(original_author)
     82            if original_author.nil? || original_author.empty?
     83              raise ArgumentError, 'original_author is mandatory'
     84            end
     85            @original_author = original_author
     86          end
     87
     88          def lifecycle_state=(lifecycle_state)
     89            if lifecycle_state.nil? || lifecycle_state.empty?
     90              raise ArgumentError, 'lifecycle_state is malformatted'
     91            end
     92            @lifecycle_state = lifecycle_state
     93          end
     94
     95          def details=(details)
     96            if details.nil? || details.empty?
     97              raise ArgumentError, 'nil or empty details'
     98            end
     99            @details = details
     100          end
     101        end
     102
     103        class Resource_Description_Item
     104          attr_reader :language, :purpose, :use, :misuse, :copyright
     105          attr_accessor :keywords, :original_resource_uri, :other_details
     106
     107          def initialize(args = { })
     108            self.language = args[:language]
     109            self.purpose = args[:purpose]
     110            self.keywords = args[:keywords]
     111            self.use = args[:use]
     112            self.misuse = args[:misuse]
     113            self.copyright = args[:copyright]
     114            self.original_resource_uri = args[:original_resource_uri]
     115            self.other_details = args[:other_details]
     116          end
     117
     118          def language=(language)
     119            raise ArgumentError, 'language is mandatory' if language.nil?
     120            @language = language
     121          end
     122
     123          def purpose=(purpose)
     124            if purpose.nil? || purpose.empty?
     125              raise ArgumentError, 'purpose is mandatory'
     126            end
     127            @purpose = purpose
     128          end
     129
     130          def use=(use)
     131            if !use.nil? && use.empty?
     132              raise ArgumentError, 'use is invalid'
     133            end
     134            @use = use
     135          end
     136
     137          def misuse=(misuse)
     138            if !misuse.nil? && misuse.empty?
     139              raise ArgumentError, 'misuse is invalid'
     140            end
     141            @misuse = misuse
     142          end
     143
     144          def copyright=(copyright)
     145            if !copyright.nil? && copyright.empty?
     146              raise ArgumentError, 'copyright is invalid'
     147            end
     148            @copyright = copyright
     149          end
     150        end
     151      end # end of Resouce
    53152    end # end of module Common
    54153  end # end of module RM
  • ruby/trunk/lib/models/tests/rm/test_common.rb

    r162 r163  
    1616class RM_Common_Resource_Test < Test::Unit::TestCase
    1717  def setup
    18     @authored_resource = OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja",
    19                                                                               :translations => "en",
    20                                                                               :description => "test")
    21     @translation_details = OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS.new(nil,nil,nil,nil,nil)
    22   end
     18    terminology_id = Terminology_ID.new('openehr')
     19    code_phrase = Code_Phrase.new('ja', terminology_id)   
     20    @translation_details = OpenEHR::RM::Common::Resource::Translation_Details.new(:language => code_phrase, :author => {'KOBAYASHI, Shinji', 'Ehime Univ'},
     21  :accreditation => 'jp', :other_details => {'ruby', 'test'})
     22    @authored_resource = OpenEHR::RM::Common::Resource::Authored_Resource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => "test")
     23    @resource_description_item = OpenEHR::RM::Common::Resource::Resource_Description_Item.new(:language => code_phrase,
     24              :purpose => 'test',
     25              :keywords => %w[test ruby],
     26              :use => 'unit test',
     27              :misuse => 'real use',
     28              :copyright => 'openEHR.jp',
     29              :original_resource_uri => {'issuer', 'http://openehr.jp/'},
     30              :other_details => {'samos', 'icicth7'})
     31    @resource_description = OpenEHR::RM::Common::Resource::Resource_Description.new(:original_author => {'KOBAYASHI, Shinji' => 'Ehime University'},
     32    :lifecycle_state => 'experimental',
     33    :details => {'ja', @resource_description_item},
     34    :other_contributors => %w[aki tim hugh],
     35    :resource_package_uri => 'http://openehr.jp/svn/ruby',
     36    :other_details => {'ja', 'shikoku'},
     37    :parent_resource => @authored_resource)
     38    @authored_resource = OpenEHR::RM::Common::Resource::Authored_Resource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => @resource_description)
     39  end
     40
    2341  def test_init
    24     assert_instance_of OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE, @authored_resource
    25     assert_instance_of OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS, @translation_details
     42    assert_instance_of OpenEHR::RM::Common::Resource::Authored_Resource, @authored_resource
     43    assert_instance_of OpenEHR::RM::Common::Resource::Translation_Details, @translation_details
     44    assert_instance_of OpenEHR::RM::Common::Resource::Resource_Description_Item, @resource_description_item
     45    assert_instance_of OpenEHR::RM::Common::Resource::Resource_Description, @resource_description
     46  end
     47
     48  def test_translation_details
     49    assert_equal 'ja', @translation_details.language.code_string
     50    assert_equal 'Ehime Univ', @translation_details.author['KOBAYASHI, Shinji']
     51    assert_equal 'jp', @translation_details.accreditation
     52    assert_equal 'test', @translation_details.other_details['ruby']
    2653  end
    2754
    2855  def test_authoured_resource
    29     assert_equal 'ja', @authored_resource.original_language
     56    assert_equal 'ja', @authored_resource.original_language.code_string
     57    assert_equal @translation_details, @authored_resource.translations['ja']
     58    assert_equal 'experimental', @authored_resource.description.lifecycle_state
     59    assert !@authored_resource.is_controlled?
     60    assert_equal(Set['ja'], @authored_resource.languages_available)
     61  end
     62
     63  def test_resource_description_item
     64    assert_equal 'ja', @resource_description_item.language.code_string
     65    assert_equal 'test', @resource_description_item.purpose
     66    assert_equal %w[test ruby], @resource_description_item.keywords
     67    assert_equal 'unit test', @resource_description_item.use
     68    assert_equal 'real use', @resource_description_item.misuse
     69    assert_equal 'openEHR.jp', @resource_description_item.copyright
     70    assert_equal 'http://openehr.jp/', @resource_description_item.original_resource_uri['issuer']
     71    assert_equal 'icicth7', @resource_description_item.other_details['samos']
     72  end
     73
     74  def test_resource_description
     75    assert_equal 'Ehime University', @resource_description.original_author['KOBAYASHI, Shinji']
     76    assert_equal 'experimental', @resource_description.lifecycle_state
     77    assert_equal 'test', @resource_description.details['ja'].purpose
     78    assert_equal %w[aki tim hugh], @resource_description.other_contributors
     79    assert_equal 'http://openehr.jp/svn/ruby', @resource_description.resource_package_uri
     80    assert_equal 'shikoku', @resource_description.other_details['ja']
     81    assert_equal 'ja', @resource_description.parent_resource.original_language.code_string
    3082  end
    3183end
Note: See TracChangeset for help on using the changeset viewer.