sos-core 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/board_of_directors/boss.rb +66 -0
- data/lib/board_of_directors/factory/factory.rb +70 -0
- data/lib/board_of_directors/factory/hashMerge.rb +71 -0
- data/lib/employees/fes.rb +7 -0
- data/lib/employees/fes/comparisonOps/propertyIsBetween.rb +32 -0
- data/lib/employees/fes/comparisonOps/propertyIsEqualTo.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsGreaterThan.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsGreaterThanOrEqualTo.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsLessThan.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsLessThanOrEqualTo.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsLike.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsNil.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsNotEqualTo.rb +10 -0
- data/lib/employees/fes/comparisonOps/propertyIsNull.rb +10 -0
- data/lib/employees/fes/expression/function.rb +9 -0
- data/lib/employees/fes/expression/literal.rb +7 -0
- data/lib/employees/fes/expression/valueReference.rb +9 -0
- data/lib/employees/fes/extensionOps/extensionOps.rb +6 -0
- data/lib/employees/fes/logicOps/and.rb +9 -0
- data/lib/employees/fes/logicOps/not.rb +10 -0
- data/lib/employees/fes/logicOps/or.rb +9 -0
- data/lib/employees/fes/spatialOps/bbox.rb +10 -0
- data/lib/employees/fes/spatialOps/beyond.rb +10 -0
- data/lib/employees/fes/spatialOps/contains.rb +10 -0
- data/lib/employees/fes/spatialOps/crosses.rb +10 -0
- data/lib/employees/fes/spatialOps/dWithin.rb +10 -0
- data/lib/employees/fes/spatialOps/disjoint.rb +10 -0
- data/lib/employees/fes/spatialOps/equals.rb +9 -0
- data/lib/employees/fes/spatialOps/intersects.rb +10 -0
- data/lib/employees/fes/spatialOps/touches.rb +10 -0
- data/lib/employees/fes/spatialOps/withIn.rb +9 -0
- data/lib/employees/fes/temporalOps/after.rb +9 -0
- data/lib/employees/fes/temporalOps/anyInteracts.rb +10 -0
- data/lib/employees/fes/temporalOps/before.rb +9 -0
- data/lib/employees/fes/temporalOps/begins.rb +9 -0
- data/lib/employees/fes/temporalOps/begunBy.rb +9 -0
- data/lib/employees/fes/temporalOps/during.rb +9 -0
- data/lib/employees/fes/temporalOps/endedBy.rb +9 -0
- data/lib/employees/fes/temporalOps/ends.rb +9 -0
- data/lib/employees/fes/temporalOps/meets.rb +9 -0
- data/lib/employees/fes/temporalOps/metBy.rb +9 -0
- data/lib/employees/fes/temporalOps/overlappedBy.rb +10 -0
- data/lib/employees/fes/temporalOps/tContains.rb +9 -0
- data/lib/employees/fes/temporalOps/tOverlaps.rb +10 -0
- data/lib/employees/fes/temporalOps/tequals.rb +9 -0
- data/lib/employees/gml.rb +2 -0
- data/lib/employees/gml/begin.rb +5 -0
- data/lib/employees/gml/end.rb +5 -0
- data/lib/employees/gml/envelope.rb +9 -0
- data/lib/employees/gml/exterior.rb +5 -0
- data/lib/employees/gml/linearRing.rb +9 -0
- data/lib/employees/gml/lowerCorner.rb +5 -0
- data/lib/employees/gml/polygon.rb +9 -0
- data/lib/employees/gml/posList.rb +5 -0
- data/lib/employees/gml/timeInstant.rb +9 -0
- data/lib/employees/gml/timePeriod.rb +33 -0
- data/lib/employees/gml/timePosition.rb +6 -0
- data/lib/employees/gml/upperCorner.rb +5 -0
- data/lib/employees/man.rb +1 -0
- data/lib/employees/mankind/complicated.rb +55 -0
- data/lib/employees/mankind/people.rb +58 -0
- data/lib/employees/mankind/simple.rb +16 -0
- data/lib/employees/sos.rb +2 -0
- data/lib/employees/sos/offering.rb +22 -0
- data/lib/employees/sos/temporalFilter.rb +5 -0
- data/lib/sos-core.rb +35 -0
- data/lib/sos-helper.rb +21 -0
- data/lib/sos_helper/capability.rb +65 -0
- data/lib/sos_helper/getObservation.xml +11 -0
- data/lib/sos_helper/node.rb +30 -0
- data/lib/sos_helper/observation.rb +77 -0
- data/lib/sos_helper/offering.rb +49 -0
- data/lib/sos_helper/xmlRequest.rb +54 -0
- metadata +117 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
class TimePeriod < Complicated
|
2
|
+
|
3
|
+
def do(tasks)
|
4
|
+
task = tasks[0]
|
5
|
+
if typeOf task, is: Hash
|
6
|
+
checkAttributesIn task
|
7
|
+
tag task[:range].to_a[0]
|
8
|
+
elsif typeOf task, is: String
|
9
|
+
tag task.to_a[0]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def custom(value)
|
14
|
+
begin_time, end_time = splitPosition(value)
|
15
|
+
position("begin", begin_time) + position("end", end_time)
|
16
|
+
end
|
17
|
+
|
18
|
+
def position(where, time)
|
19
|
+
"<gml:#{where}Position>#{time}</gml:#{where}Position>"
|
20
|
+
end
|
21
|
+
|
22
|
+
def splitPosition(value)
|
23
|
+
value.split " "
|
24
|
+
end
|
25
|
+
|
26
|
+
def tag_name
|
27
|
+
class_name
|
28
|
+
end
|
29
|
+
|
30
|
+
def namespace
|
31
|
+
"gml:"
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Dir[ File.dirname(__FILE__) + "/mankind/*.rb"].each {|file| require file }
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative 'people.rb'
|
2
|
+
require 'set'
|
3
|
+
|
4
|
+
# => '{:filter=>
|
5
|
+
# {:During=>#<Set: {"1", "2",
|
6
|
+
# {:fuck=>#<Set: {"test"}>}}>},
|
7
|
+
# :offering=>#<Set: {"1", "2", "3", "4"}>}'
|
8
|
+
class Complicated < People
|
9
|
+
def do(tasks)
|
10
|
+
result = plan(tasks).map do |task|
|
11
|
+
if typeOf task, is: Hash
|
12
|
+
checkAttributesIn task
|
13
|
+
next assigns task
|
14
|
+
end
|
15
|
+
next self.do task if typeOf task, is: Array
|
16
|
+
next task if typeOf task, is: String
|
17
|
+
end
|
18
|
+
report result
|
19
|
+
end
|
20
|
+
|
21
|
+
def checkAttributesIn(task)
|
22
|
+
unless task[:attributes].nil?
|
23
|
+
attributes task[:attributes]
|
24
|
+
task.delete :attributes
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def report(result)
|
29
|
+
result.map { |task| tag task }.join " "
|
30
|
+
end
|
31
|
+
|
32
|
+
def plan(task)
|
33
|
+
return task.to_a if typeOf task, is: Set
|
34
|
+
return task if typeOf task, is: Array
|
35
|
+
[task]
|
36
|
+
end
|
37
|
+
|
38
|
+
def assigns(task)
|
39
|
+
report = ""
|
40
|
+
task.each do |subordinate, subtask|
|
41
|
+
subordinate = eval( capitalize(subordinate.to_s) + ".new")
|
42
|
+
report += subordinate.do plan(subtask)
|
43
|
+
end
|
44
|
+
report
|
45
|
+
end
|
46
|
+
|
47
|
+
def tag(value=nil, attrs={})
|
48
|
+
"<#{namespace}#{tag_name}#{@attributes}> #{custom value}</#{namespace}#{tag_name}> "
|
49
|
+
end
|
50
|
+
|
51
|
+
def custom(value)
|
52
|
+
value.to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|