source:
ruby/trunk/lib/open_ehr/serializer.rb@
406
Last change on this file since 406 was 406, checked in by , 14 years ago | |
---|---|
File size: 1.3 KB |
Rev | Line | |
---|---|---|
[405] | 1 | require 'rexml/document' |
[406] | 2 | require 'builder' |
[405] | 3 | |
[404] | 4 | module OpenEHR |
[405] | 5 | module Serializer |
6 | class BaseSerializer | |
7 | def initialize(archetype) | |
8 | @archetype = archetype | |
9 | end | |
[404] | 10 | |
[405] | 11 | def serialize |
12 | return self.merge | |
13 | end | |
14 | end | |
[404] | 15 | |
[405] | 16 | class ADLSerializer < BaseSerializer |
[406] | 17 | def header |
[405] | 18 | return <<HERE |
19 | archetype (adl_version = #{@archetype.adl_version}) | |
[406] | 20 | \t#{@archetype.archetype_id.value} |
21 | ||
22 | concept | |
23 | \t[#{@archetype.concept}] | |
[405] | 24 | HERE |
25 | end | |
26 | ||
[406] | 27 | def description |
28 | ||
29 | end | |
30 | ||
[405] | 31 | def definition |
32 | end | |
33 | ||
34 | def ontology | |
35 | end | |
36 | ||
37 | def envelope | |
38 | end | |
39 | ||
40 | def merge | |
[406] | 41 | return header + description + definition + ontology |
[405] | 42 | end |
43 | end | |
44 | ||
45 | class XMLSerializer < BaseSerializer | |
[406] | 46 | |
47 | def header | |
48 | header = '' | |
49 | xml = Builder::XmlMarkup.new(:indent => 2, :target => header) | |
50 | xml.archetype_id do | |
51 | xml.value @archetype.archetype_id.value | |
52 | end | |
53 | xml.concept @archetype.concept | |
54 | return header | |
55 | end | |
56 | ||
[405] | 57 | def description |
[406] | 58 | |
[405] | 59 | end |
[406] | 60 | |
61 | def merge | |
62 | ||
63 | end | |
[405] | 64 | end |
[404] | 65 | end |
[405] | 66 | end |
[404] | 67 | |
[405] | 68 | class Publisher |
69 | def initialize(serializer) | |
70 | @serializer = serializer | |
71 | end | |
[404] | 72 | |
[405] | 73 | def publish(writer) |
74 | writer.out(@serializer.serialize) | |
[404] | 75 | end |
76 | end | |
[405] | 77 | |
78 | class Writer | |
[406] | 79 | def initialize(target) |
80 | @target = target | |
81 | end | |
82 | def out | |
83 | end | |
[405] | 84 | end |
Note:
See TracBrowser
for help on using the repository browser.