source: ruby/branches/0.5/lib/open_ehr/rm/common/resource.rb@ 216

Last change on this file since 216 was 216, checked in by KOBAYASHI, Shinji, 15 years ago

move from Test:Unit to RSpec

File size: 4.9 KB
RevLine 
[4]1require 'set'
[216]2module OpenEHR
[4]3 module RM
4 module Common
5 module Resource
[167]6 class AuthoredResource
[163]7 attr_reader :original_language, :translations
8 attr_accessor :description, :revision_history
[24]9
10 def initialize(args = { })
[163]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
[24]16
[163]17 def original_language=(original_language)
18 if original_language.nil?
19 raise ArgumentError, 'original language is mandatory'
[4]20 end
[163]21 @original_language = original_language
22 end
[24]23
[163]24 def translations=(translations)
25 if !translations.nil? && translations.empty?
26 raise ArgumentError, 'translation is empty'
27 end
28 @translations = translations
[4]29 end
[24]30
[4]31 def current_version
32 @revision_history.most_recent_revision
33 end
[24]34
[163]35 def languages_available
36 return Set.new(@translations.keys)
[4]37 end
[163]38
39 def is_controlled?
40 return !@revision_history.nil?
41 end
[4]42 end
[24]43
[167]44 class TranslationDetails
[163]45 attr_reader :language, :author
46 attr_accessor :accreditation, :other_details
[24]47
[163]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?
[4]57 @language = language
[163]58 end
59
60 def author=(author)
61 raise ArgumentError, 'author is mandatory' if author.nil?
[4]62 @author = author
63 end
64 end
[163]65
[167]66 class ResourceDescription
[163]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
[167]103 class ResourceDescriptionItem
[163]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
[4]152 end # end of module Common
153 end # end of module RM
154end # end of module OpenEHR
Note: See TracBrowser for help on using the repository browser.