WatersOfOblivion-heychell7 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Manifest.txt +12 -0
- data/README.rdoc +48 -0
- data/Rakefile +27 -0
- data/lib/heychell7.rb +452 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/heychell7_spec.rb +11 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +10 -0
- data/tasks/rspec.rake +21 -0
- metadata +87 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
= Heychell7
|
2
|
+
|
3
|
+
* http://github.com/WatersOfOblivion/heychell7
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Ruby library for processing HL7
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* None, yet.
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
# TODO
|
16
|
+
|
17
|
+
== REQUIREMENTS:
|
18
|
+
|
19
|
+
* None, yet
|
20
|
+
|
21
|
+
== INSTALL:
|
22
|
+
|
23
|
+
* sudo gem install WatersOfOblivion-heychell7
|
24
|
+
|
25
|
+
== LICENSE:
|
26
|
+
|
27
|
+
(The MIT License)
|
28
|
+
|
29
|
+
Copyright (c) 2009 Jonathan Bryant
|
30
|
+
|
31
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
32
|
+
a copy of this software and associated documentation files (the
|
33
|
+
'Software'), to deal in the Software without restriction, including
|
34
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
35
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
36
|
+
permit persons to whom the Software is furnished to do so, subject to
|
37
|
+
the following conditions:
|
38
|
+
|
39
|
+
The above copyright notice and this permission notice shall be
|
40
|
+
included in all copies or substantial portions of the Software.
|
41
|
+
|
42
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
43
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
44
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
45
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
46
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
47
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
48
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
2
|
+
%w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
3
|
+
require File.dirname(__FILE__) + '/lib/heychell7'
|
4
|
+
|
5
|
+
# Generate all the Rake tasks
|
6
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
7
|
+
$hoe = Hoe.new('heychell7', Heychell7::VERSION) do |p|
|
8
|
+
p.developer('Jonathan Bryant', 'jonathan@watersofoblivion.com')
|
9
|
+
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
10
|
+
# p.extra_deps = [
|
11
|
+
# ['activesupport','>= 2.0.2'],
|
12
|
+
# ]
|
13
|
+
p.extra_dev_deps = [
|
14
|
+
['newgem', ">= #{::Newgem::VERSION}"]
|
15
|
+
]
|
16
|
+
|
17
|
+
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
18
|
+
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
19
|
+
p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
|
20
|
+
p.rsync_args = '-av --delete --ignore-errors'
|
21
|
+
end
|
22
|
+
|
23
|
+
require 'newgem/tasks' # load /tasks/*.rake
|
24
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
25
|
+
|
26
|
+
# TODO - want other tests/tasks run by default? Add them to the list
|
27
|
+
task :default => :spec
|
data/lib/heychell7.rb
ADDED
@@ -0,0 +1,452 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
module Heychell7
|
5
|
+
VERSION = '0.0.1'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def message &block
|
9
|
+
Message.instance_eval &block
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Parser
|
14
|
+
def initialize
|
15
|
+
@buffer = ""
|
16
|
+
@segments = []
|
17
|
+
@fields = []
|
18
|
+
@items = []
|
19
|
+
@stack = []
|
20
|
+
end
|
21
|
+
|
22
|
+
def parse str
|
23
|
+
@buffer += str.to_s
|
24
|
+
parse_re = /\n|\||\^|^\x0b|\x1c\r$/
|
25
|
+
while @buffer =~ parse_re do
|
26
|
+
case $&
|
27
|
+
when "\n" then emit_segment $`
|
28
|
+
when "|" then emit_field $`
|
29
|
+
when "^" then emit_item $`
|
30
|
+
when "\x0b" then emit_start
|
31
|
+
when "\x1c\r" then emit_end $`
|
32
|
+
else emit_error
|
33
|
+
end
|
34
|
+
|
35
|
+
@buffer = $'
|
36
|
+
end
|
37
|
+
|
38
|
+
reduce Segment, Message
|
39
|
+
@stack.pop
|
40
|
+
end
|
41
|
+
|
42
|
+
def parse_string str
|
43
|
+
parse "\x0b#{str}\x1c\r" unless str =~ /^\x0b.*\x1c\r$/
|
44
|
+
end
|
45
|
+
|
46
|
+
def parse_file filename
|
47
|
+
parse_string File.open(filename, "r").read
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def emit_segment data
|
53
|
+
emit_field data
|
54
|
+
reduce Field, Segment
|
55
|
+
end
|
56
|
+
|
57
|
+
def emit_field data
|
58
|
+
emit_item data
|
59
|
+
reduce Item, Field
|
60
|
+
end
|
61
|
+
|
62
|
+
def emit_item data
|
63
|
+
@stack.push Item.new(data)
|
64
|
+
end
|
65
|
+
|
66
|
+
def emit_start
|
67
|
+
@items, @fields, @segments = [], [], []
|
68
|
+
@stack = []
|
69
|
+
end
|
70
|
+
|
71
|
+
def emit_end data
|
72
|
+
emit_segment data unless data.empty?
|
73
|
+
end
|
74
|
+
|
75
|
+
def emit_error
|
76
|
+
puts "Error! Unexpected #{$&}"
|
77
|
+
end
|
78
|
+
|
79
|
+
def reduce source, target
|
80
|
+
tmp = []
|
81
|
+
target = target.new
|
82
|
+
while @stack.last.is_a? source
|
83
|
+
tmp << @stack.pop
|
84
|
+
end
|
85
|
+
tmp.reverse.each { |src| target << src }
|
86
|
+
@stack.push target
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
class Message
|
91
|
+
attr_accessor :segments
|
92
|
+
|
93
|
+
def initialize segments = []
|
94
|
+
@segments = segments
|
95
|
+
end
|
96
|
+
|
97
|
+
def << segment
|
98
|
+
@segments << segment
|
99
|
+
end
|
100
|
+
|
101
|
+
def to_hl7
|
102
|
+
@segments.map { |seg| seg.to_hl7 }.join("\n") + "\n"
|
103
|
+
end
|
104
|
+
|
105
|
+
def to_mllp
|
106
|
+
"\x0b#{self.to_hl7}\x1c\r"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
class Segment
|
111
|
+
attr_accessor :fields
|
112
|
+
|
113
|
+
def initialize fields = []
|
114
|
+
@fields = fields
|
115
|
+
end
|
116
|
+
|
117
|
+
def << field
|
118
|
+
@fields << field
|
119
|
+
end
|
120
|
+
|
121
|
+
def to_hl7
|
122
|
+
@fields.map { |field| field.to_hl7 }.join("|")
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
class Field
|
127
|
+
attr_accessor :items
|
128
|
+
|
129
|
+
def initialize items = []
|
130
|
+
@items = items
|
131
|
+
end
|
132
|
+
|
133
|
+
def << item
|
134
|
+
@items << item
|
135
|
+
end
|
136
|
+
|
137
|
+
def to_hl7
|
138
|
+
@items.map { |item| item.to_hl7 }.join("^")
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
class Item
|
143
|
+
attr_accessor :data
|
144
|
+
|
145
|
+
def initialize data = nil
|
146
|
+
@data = data
|
147
|
+
end
|
148
|
+
|
149
|
+
def to_hl7
|
150
|
+
@data
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
=begin
|
155
|
+
message do
|
156
|
+
segment :evn do
|
157
|
+
field :type_code
|
158
|
+
field :recorded_date
|
159
|
+
field :planned_date
|
160
|
+
field :reason_code
|
161
|
+
field :operator_id
|
162
|
+
field :event_occurred
|
163
|
+
field :event_facility
|
164
|
+
end
|
165
|
+
|
166
|
+
segment :msn do
|
167
|
+
field :ack_code
|
168
|
+
field :control_id
|
169
|
+
field :text
|
170
|
+
field :expected_seq
|
171
|
+
field :delayed_ack_type
|
172
|
+
field :error_cond
|
173
|
+
end
|
174
|
+
|
175
|
+
segment :msh do
|
176
|
+
field :enc_chars
|
177
|
+
field :sending_app
|
178
|
+
field :sending_facility
|
179
|
+
field :recv_app
|
180
|
+
field :recv_facility
|
181
|
+
field :time
|
182
|
+
field :security
|
183
|
+
field :message_type
|
184
|
+
field :message_control_id
|
185
|
+
field :processing_id
|
186
|
+
field :version_id
|
187
|
+
field :seq
|
188
|
+
field :continue_ptr
|
189
|
+
field :accept_ack_type
|
190
|
+
field :app_ack_type
|
191
|
+
field :country_code
|
192
|
+
field :charset
|
193
|
+
end
|
194
|
+
|
195
|
+
segment :nte do
|
196
|
+
field :set_id
|
197
|
+
field :source
|
198
|
+
field :comment
|
199
|
+
field :comment_type
|
200
|
+
end
|
201
|
+
|
202
|
+
segment :obr do
|
203
|
+
field :set_id
|
204
|
+
field :placer_order_number
|
205
|
+
field :filler_order_number
|
206
|
+
field :universal_service_id
|
207
|
+
field :priority
|
208
|
+
field :requested_date
|
209
|
+
field :observation_date
|
210
|
+
field :observation_end_date
|
211
|
+
field :collection_volume
|
212
|
+
field :colletor_identifier
|
213
|
+
field :specimen_action_code
|
214
|
+
field :danger_code
|
215
|
+
field :relevant_clinical_info
|
216
|
+
field :specimen_received_date
|
217
|
+
field :speciment_source
|
218
|
+
field :ordering_provider
|
219
|
+
field :order_callback_phone_number
|
220
|
+
field :placer_field_1
|
221
|
+
field :placer_field_2
|
222
|
+
field :filer_field_1
|
223
|
+
field :filer_field_2
|
224
|
+
field :results_status_change_date
|
225
|
+
field :charge_to_practice
|
226
|
+
field :parent_result
|
227
|
+
field :quantity_timing
|
228
|
+
field :result_copies_to
|
229
|
+
field :parent
|
230
|
+
field :transport_mode
|
231
|
+
field :reason_for_study
|
232
|
+
field :principal_result_interpreter
|
233
|
+
field :assistant_result_interpreter
|
234
|
+
field :technician
|
235
|
+
field :transcriptionist
|
236
|
+
field :scheduled_date
|
237
|
+
field :number_of_sample_containers
|
238
|
+
field :transport_logistics_of_sample
|
239
|
+
field :collectors_comment
|
240
|
+
field :transport_arrangement_responsibility
|
241
|
+
field :transport_arranged
|
242
|
+
field :escort_required
|
243
|
+
field :planned_patient_transport_comment
|
244
|
+
field :procedure_code
|
245
|
+
field :procedure_code_modified
|
246
|
+
field :placer_supplemental_service_info
|
247
|
+
field :filler_supplemental_service_info
|
248
|
+
field :medically_necessary_dup_procedure_reason
|
249
|
+
field :result_handling
|
250
|
+
end
|
251
|
+
|
252
|
+
segment :obx do
|
253
|
+
field :set_id
|
254
|
+
field :value_type
|
255
|
+
field :observation_id
|
256
|
+
field :observation_sub_id
|
257
|
+
field :observation_value
|
258
|
+
field :units
|
259
|
+
field :reference_range
|
260
|
+
field :abnormal_flags
|
261
|
+
field :probability
|
262
|
+
field :nature_of_abnormal_test
|
263
|
+
field :observation_result_status
|
264
|
+
field :effective_date_of_reference_range
|
265
|
+
field :user_defined_access_checks
|
266
|
+
field :observation_date
|
267
|
+
field :producer_id
|
268
|
+
field :responsible_observer
|
269
|
+
field :observation_method
|
270
|
+
field :equiptment_instance_id
|
271
|
+
field :analysis_date
|
272
|
+
end
|
273
|
+
|
274
|
+
segment :oru do
|
275
|
+
# ???
|
276
|
+
end
|
277
|
+
|
278
|
+
segment :pid do
|
279
|
+
field :set_id
|
280
|
+
field :patient_id
|
281
|
+
field :patient_id_list
|
282
|
+
field :alt_patient_id
|
283
|
+
field :patient_name
|
284
|
+
field :mother_maiden_name
|
285
|
+
field :patient_dob
|
286
|
+
field :admin_sex
|
287
|
+
field :patient_alias
|
288
|
+
field :race
|
289
|
+
field :address
|
290
|
+
field :country_code
|
291
|
+
field :phone_home
|
292
|
+
field :phone_business
|
293
|
+
field :primary_language
|
294
|
+
field :marital_status
|
295
|
+
field :religion
|
296
|
+
field :account_number
|
297
|
+
field :social_security_num
|
298
|
+
field :mothers_id
|
299
|
+
field :ethnic_group
|
300
|
+
field :birthplace
|
301
|
+
field :multi_birth
|
302
|
+
field :birth_order
|
303
|
+
field :citizenship
|
304
|
+
field :vet_status
|
305
|
+
field :nationality
|
306
|
+
field :death_date
|
307
|
+
field :death_indicator
|
308
|
+
field :id_unknown_indicator
|
309
|
+
field :id_readablity_code
|
310
|
+
field :last_update_date
|
311
|
+
field :last_update_facility
|
312
|
+
field :species_code
|
313
|
+
field :breed_code
|
314
|
+
field :strain
|
315
|
+
field :production_class_code
|
316
|
+
field :tribal_citizenship
|
317
|
+
end
|
318
|
+
|
319
|
+
segment :pv1 do
|
320
|
+
field :set_id
|
321
|
+
field :patient_class
|
322
|
+
field :assigned_location
|
323
|
+
field :admission_type
|
324
|
+
field :preadmit_number
|
325
|
+
field :prior_location
|
326
|
+
field :attending_doctor
|
327
|
+
field :referring_doctor
|
328
|
+
field :consulting_doctor
|
329
|
+
field :hospital_service
|
330
|
+
field :temporary_location
|
331
|
+
field :preadmit_indicator
|
332
|
+
field :readmit_indicator
|
333
|
+
field :admit_source
|
334
|
+
field :ambulatory_status
|
335
|
+
field :vip_indicator
|
336
|
+
field :admitting_doctor
|
337
|
+
field :patient_type
|
338
|
+
field :visit_number
|
339
|
+
field :financial_class
|
340
|
+
field :charge_price_indicator
|
341
|
+
field :courtesy_code
|
342
|
+
field :credit_rating
|
343
|
+
field :contract_code
|
344
|
+
field :contract_effective_date
|
345
|
+
field :contract_amount
|
346
|
+
field :contract_period
|
347
|
+
field :interest_code
|
348
|
+
field :transfer_bad_debt_code
|
349
|
+
field :transfer_bad_debt_date
|
350
|
+
field :bad_debt_agency_code
|
351
|
+
field :bad_debt_transfer_amount
|
352
|
+
field :bad_debt_recovery_amount
|
353
|
+
field :delete_account_indicator
|
354
|
+
field :delete_account_date
|
355
|
+
field :diet_type
|
356
|
+
field :servicing_facility
|
357
|
+
field :bed_status
|
358
|
+
field :account_status
|
359
|
+
field :pending_location
|
360
|
+
field :prior_temporary_location
|
361
|
+
field :admit_date
|
362
|
+
field :discharge_date
|
363
|
+
field :current_patient_balance
|
364
|
+
field :total_charges
|
365
|
+
field :total_adjustments
|
366
|
+
field :total_payments
|
367
|
+
field :alternative_visit_id
|
368
|
+
field :visit_indicator
|
369
|
+
field :other_healthcare_provider
|
370
|
+
end
|
371
|
+
|
372
|
+
segment :pv2 do
|
373
|
+
field :prior_pending_location
|
374
|
+
field :accomodation_code
|
375
|
+
field :admin_reason
|
376
|
+
field :transfer_reason
|
377
|
+
field :patient_valuables
|
378
|
+
field :patient_valuables_location
|
379
|
+
field :visit_user_code
|
380
|
+
field :expected_admit_date
|
381
|
+
field :expected_discharge_date
|
382
|
+
field :estimated_inpatient_stay_length
|
383
|
+
field :actual_inpatient_stay_length
|
384
|
+
field :visit_description
|
385
|
+
field :referral_source_code
|
386
|
+
field :previous_service_date
|
387
|
+
field :employment_illness_related_indicator
|
388
|
+
field :purge_status_code
|
389
|
+
field :purge_status_date
|
390
|
+
field :special_program_code
|
391
|
+
field :retention_indicator
|
392
|
+
field :expected_number_of_insurance_plans
|
393
|
+
field :visit_publicity_code
|
394
|
+
field :visit_protection_indicator
|
395
|
+
field :clinic_organization_name
|
396
|
+
field :patient_status_code
|
397
|
+
field :visit_priority_code
|
398
|
+
field :previous_treatment_date
|
399
|
+
field :expected_discharge_disposition
|
400
|
+
field :signature_on_file
|
401
|
+
field :first_similar_illness_date
|
402
|
+
field :patient_charge_adjustment_code
|
403
|
+
field :recurring_service_code
|
404
|
+
field :billing_media_code
|
405
|
+
field :expected_surgery_date
|
406
|
+
field :military_partnership_code
|
407
|
+
field :military_non_availibility_code
|
408
|
+
field :newborn_baby_indicator
|
409
|
+
field :baby_detained_indicator
|
410
|
+
field :mode_of_arrival_code
|
411
|
+
field :recreational_drug_use_code
|
412
|
+
field :precaution_code
|
413
|
+
field :patient_condition_code
|
414
|
+
field :living_will_code
|
415
|
+
field :organ_donor_code
|
416
|
+
field :advance_directive_code
|
417
|
+
field :patient_status_effective_date
|
418
|
+
field :expected_loa_return_date
|
419
|
+
field :expected_preadmission_testing_date
|
420
|
+
field :notify_clergy_code
|
421
|
+
end
|
422
|
+
|
423
|
+
segment :qrd do
|
424
|
+
field :query_date
|
425
|
+
field :query_format_code
|
426
|
+
field :query_priority
|
427
|
+
field :query_id
|
428
|
+
field :deferred_response_type
|
429
|
+
field :deferred_response_date
|
430
|
+
field :quantity_limited_request
|
431
|
+
field :who_subject_filter
|
432
|
+
field :what_subject_filter
|
433
|
+
field :what_department_code
|
434
|
+
field :what_data_code
|
435
|
+
field :query_results_level
|
436
|
+
end
|
437
|
+
|
438
|
+
segment :qrf do
|
439
|
+
field :where_subject_filter
|
440
|
+
field :when_start_date
|
441
|
+
field :when_end_date
|
442
|
+
field :what_user_qualifier
|
443
|
+
field :other_qry_subject_filter
|
444
|
+
field :which_date_qualifier
|
445
|
+
field :which_date_status_qualifier
|
446
|
+
field :date_selection_qualifier
|
447
|
+
field :when_timing_qualifier
|
448
|
+
field :search_confidence_threshold
|
449
|
+
end
|
450
|
+
end
|
451
|
+
=end
|
452
|
+
end
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/heychell7.rb'}"
|
9
|
+
puts "Loading heychell7 gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/spec/spec_helper.rb
ADDED
data/tasks/rspec.rake
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
5
|
+
require 'spec'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
rescue LoadError
|
10
|
+
puts <<-EOS
|
11
|
+
To use rspec for testing you must install rspec gem:
|
12
|
+
gem install rspec
|
13
|
+
EOS
|
14
|
+
exit(0)
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run the specs under spec/models"
|
18
|
+
Spec::Rake::SpecTask.new do |t|
|
19
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: WatersOfOblivion-heychell7
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jonathan Bryant
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-06-24 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: newgem
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.4.1
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hoe
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.0
|
34
|
+
version:
|
35
|
+
description: Ruby library for processing HL7
|
36
|
+
email:
|
37
|
+
- jonathan@watersofoblivion.com
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files:
|
43
|
+
- History.txt
|
44
|
+
- Manifest.txt
|
45
|
+
- README.rdoc
|
46
|
+
files:
|
47
|
+
- History.txt
|
48
|
+
- Manifest.txt
|
49
|
+
- README.rdoc
|
50
|
+
- Rakefile
|
51
|
+
- lib/heychell7.rb
|
52
|
+
- script/console
|
53
|
+
- script/destroy
|
54
|
+
- script/generate
|
55
|
+
- spec/heychell7_spec.rb
|
56
|
+
- spec/spec.opts
|
57
|
+
- spec/spec_helper.rb
|
58
|
+
- tasks/rspec.rake
|
59
|
+
has_rdoc: true
|
60
|
+
homepage: http://github.com/WatersOfOblivion/heychell7
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options:
|
63
|
+
- --main
|
64
|
+
- README.rdoc
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: "0"
|
72
|
+
version:
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
version:
|
79
|
+
requirements: []
|
80
|
+
|
81
|
+
rubyforge_project: heychell7
|
82
|
+
rubygems_version: 1.2.0
|
83
|
+
signing_key:
|
84
|
+
specification_version: 2
|
85
|
+
summary: Ruby library for processing HL7
|
86
|
+
test_files: []
|
87
|
+
|