mof 0.3.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -1
- data/bin/moflint +3 -0
- data/lib/mof.rb +3 -1
- data/lib/mof/helper.rb +2 -1
- data/lib/mof/parser.rb +64 -81
- data/lib/mof/parser.y +17 -34
- data/lib/mof/scanner.rb +43 -43
- data/lib/mof/version.rb +3 -0
- data/mof.gemspec +5 -2
- data/tasks/racc.rake +1 -0
- data/test/mof/class_qualifiers.mof +6 -1
- data/test/test_association_qualifier.rb +3 -3
- data/test/test_class_qualifiers.rb +29 -0
- metadata +41 -12
- data/README.rdoc~ +0 -57
data/Rakefile
CHANGED
data/bin/moflint
CHANGED
data/lib/mof.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__)) unless
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
|
+
# keep version separate so mof.gemspec can source it without all the rest
|
5
|
+
require "mof/version"
|
6
|
+
|
4
7
|
module MOF
|
5
|
-
VERSION = '0.3.2'
|
6
8
|
require "mof/parser"
|
7
9
|
end
|
data/lib/mof/helper.rb
CHANGED
data/lib/mof/parser.rb
CHANGED
@@ -22,14 +22,14 @@ module MOF
|
|
22
22
|
|
23
23
|
class Parser < Racc::Parser
|
24
24
|
|
25
|
-
module_eval <<'..end lib/mof/parser.y modeval..
|
25
|
+
module_eval <<'..end lib/mof/parser.y modeval..idbe2b713bdc', 'lib/mof/parser.y', 566
|
26
26
|
|
27
27
|
#
|
28
28
|
# Initialize MOF::Parser
|
29
29
|
# MOF::Parser.new options = {}
|
30
30
|
#
|
31
31
|
# options -> Hash of options
|
32
|
-
# :debug ->
|
32
|
+
# :debug -> boolean
|
33
33
|
# :includes -> array of include dirs
|
34
34
|
# :style -> :cim or :wmi
|
35
35
|
#
|
@@ -61,7 +61,7 @@ end
|
|
61
61
|
options = { :namespace => "" }
|
62
62
|
while argv.size > 0
|
63
63
|
case opt = argv.shift
|
64
|
-
when "-h"
|
64
|
+
when "-h"
|
65
65
|
$stderr.puts "Ruby MOF compiler"
|
66
66
|
$stderr.puts "#{name} [-h] [-d] [-I <dir>] [<moffiles>]"
|
67
67
|
$stderr.puts "Compiles <moffile>"
|
@@ -75,10 +75,10 @@ end
|
|
75
75
|
$stderr.puts "\t-q quiet"
|
76
76
|
$stderr.puts "\t<moffiles> file(s) to read (else use $stdin)"
|
77
77
|
exit 0
|
78
|
-
when "-f"
|
79
|
-
when "-s"
|
80
|
-
when "-d"
|
81
|
-
when "-q"
|
78
|
+
when "-f" then options[:force] = true
|
79
|
+
when "-s" then options[:style] = argv.shift.to_sym
|
80
|
+
when "-d" then options[:debug] = true
|
81
|
+
when "-q" then options[:quiet] = true
|
82
82
|
when "-I"
|
83
83
|
options[:includes] ||= []
|
84
84
|
dirname = argv.shift
|
@@ -87,9 +87,9 @@ end
|
|
87
87
|
dirname = File.dirname(dirname)
|
88
88
|
end
|
89
89
|
options[:includes] << Pathname.new(dirname)
|
90
|
-
when "-n"
|
91
|
-
when "-o"
|
92
|
-
when
|
90
|
+
when "-n" then options[:namespace] = argv.shift
|
91
|
+
when "-o" then options[:output] = argv.shift
|
92
|
+
when /^-.+/
|
93
93
|
$stderr.puts "Undefined option #{opt}"
|
94
94
|
else
|
95
95
|
files << opt
|
@@ -101,7 +101,7 @@ end
|
|
101
101
|
include Helper
|
102
102
|
include Scanner
|
103
103
|
|
104
|
-
..end lib/mof/parser.y modeval..
|
104
|
+
..end lib/mof/parser.y modeval..idbe2b713bdc
|
105
105
|
|
106
106
|
##### racc 1.4.5 generates ###
|
107
107
|
|
@@ -503,7 +503,7 @@ racc_token_table = {
|
|
503
503
|
:DT_REAL64 => 42,
|
504
504
|
:DT_CHAR16 => 43,
|
505
505
|
:DT_STR => 44,
|
506
|
-
:
|
506
|
+
:DT_BOOLEAN => 45,
|
507
507
|
:DT_DATETIME => 46,
|
508
508
|
:positiveDecimalValue => 47,
|
509
509
|
:stringValue => 48,
|
@@ -595,7 +595,7 @@ Racc_token_to_s_table = [
|
|
595
595
|
'DT_REAL64',
|
596
596
|
'DT_CHAR16',
|
597
597
|
'DT_STR',
|
598
|
-
'
|
598
|
+
'DT_BOOLEAN',
|
599
599
|
'DT_DATETIME',
|
600
600
|
'positiveDecimalValue',
|
601
601
|
'stringValue',
|
@@ -797,41 +797,24 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 97
|
|
797
797
|
|
798
798
|
# reduce 18 omitted
|
799
799
|
|
800
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
800
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 112
|
801
801
|
def _reduce_19( val, _values, result )
|
802
802
|
qualifiers = val[0]
|
803
803
|
features = val[6]
|
804
|
-
|
805
|
-
|
806
|
-
# Context:
|
807
|
-
#
|
808
|
-
# The remaining qualifier list must not include
|
809
|
-
# the ASSOCIATION qualifier again. If the
|
810
|
-
# association has no super association, then at
|
811
|
-
# least two references must be specified! The
|
812
|
-
# ASSOCIATION qualifier may be omitted in
|
813
|
-
# sub associations.
|
814
|
-
result = CIM::Association.new(val[2],qualifiers,val[3],val[4],features)
|
815
|
-
elsif qualifiers and qualifiers.include?(:indication, :bool)
|
816
|
-
# FIXME: 'indication' must be first
|
817
|
-
# FIXME: features must not include references
|
818
|
-
result = CIM::Indication.new(val[2],qualifiers,val[3],val[4],features)
|
819
|
-
else
|
820
|
-
# FIXME: features must not include references
|
821
|
-
result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
|
822
|
-
end
|
804
|
+
# FIXME: features must not include references
|
805
|
+
result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
|
823
806
|
result
|
824
807
|
end
|
825
808
|
.,.,
|
826
809
|
|
827
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
810
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 117
|
828
811
|
def _reduce_20( val, _values, result )
|
829
812
|
result = []
|
830
813
|
result
|
831
814
|
end
|
832
815
|
.,.,
|
833
816
|
|
834
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
817
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 119
|
835
818
|
def _reduce_21( val, _values, result )
|
836
819
|
result = val[0] << val[1]
|
837
820
|
result
|
@@ -846,14 +829,14 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 136
|
|
846
829
|
|
847
830
|
# reduce 25 omitted
|
848
831
|
|
849
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
832
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 132
|
850
833
|
def _reduce_26( val, _values, result )
|
851
834
|
result = CIM::QualifierSet.new val[0]
|
852
835
|
result
|
853
836
|
end
|
854
837
|
.,.,
|
855
838
|
|
856
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
839
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 138
|
857
840
|
def _reduce_27( val, _values, result )
|
858
841
|
result = val[2]
|
859
842
|
result.unshift val[1] if val[1]
|
@@ -861,14 +844,14 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 155
|
|
861
844
|
end
|
862
845
|
.,.,
|
863
846
|
|
864
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
847
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 143
|
865
848
|
def _reduce_28( val, _values, result )
|
866
849
|
result = []
|
867
850
|
result
|
868
851
|
end
|
869
852
|
.,.,
|
870
853
|
|
871
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
854
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 147
|
872
855
|
def _reduce_29( val, _values, result )
|
873
856
|
result = val[0]
|
874
857
|
result << val[2] if val[2]
|
@@ -876,13 +859,13 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 164
|
|
876
859
|
end
|
877
860
|
.,.,
|
878
861
|
|
879
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
862
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 169
|
880
863
|
def _reduce_30( val, _values, result )
|
881
864
|
# Get qualifier decl
|
882
865
|
qualifier = case val[0]
|
883
|
-
when CIM::Qualifier
|
884
|
-
when CIM::QualifierDeclaration
|
885
|
-
when String
|
866
|
+
when CIM::Qualifier then val[0].definition
|
867
|
+
when CIM::QualifierDeclaration then val[0]
|
868
|
+
when String then @qualifiers[val[0].downcase]
|
886
869
|
else
|
887
870
|
nil
|
888
871
|
end
|
@@ -890,7 +873,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 186
|
|
890
873
|
value = val[1]
|
891
874
|
raise MOF::Helper::Error.new(@name,@lineno,@line,"#{value.inspect} does not match qualifier type '#{qualifier.type}'") unless qualifier.type.matches?(value)||@style == :wmi
|
892
875
|
# Don't propagate a boolean 'false'
|
893
|
-
if qualifier.type == :
|
876
|
+
if qualifier.type == :boolean && value == false
|
894
877
|
result = nil
|
895
878
|
else
|
896
879
|
result = CIM::Qualifier.new(qualifier,value,val[2])
|
@@ -901,7 +884,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 186
|
|
901
884
|
|
902
885
|
# reduce 31 omitted
|
903
886
|
|
904
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
887
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 175
|
905
888
|
def _reduce_32( val, _values, result )
|
906
889
|
result = CIM::QualifierFlavors.new val[1]
|
907
890
|
result
|
@@ -912,7 +895,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 192
|
|
912
895
|
|
913
896
|
# reduce 34 omitted
|
914
897
|
|
915
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
898
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 185
|
916
899
|
def _reduce_35( val, _values, result )
|
917
900
|
result = val[1]
|
918
901
|
result
|
@@ -933,7 +916,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 202
|
|
933
916
|
|
934
917
|
# reduce 42 omitted
|
935
918
|
|
936
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
919
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 196
|
937
920
|
def _reduce_43( val, _values, result )
|
938
921
|
case val[0].to_sym
|
939
922
|
when :amended, :toinstance
|
@@ -951,35 +934,35 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 213
|
|
951
934
|
|
952
935
|
# reduce 47 omitted
|
953
936
|
|
954
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
937
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 211
|
955
938
|
def _reduce_48( val, _values, result )
|
956
939
|
raise ParseError.new("Class name must be prefixed by '<schema>_'") unless val[0].include?("_") || @style == :wmi
|
957
940
|
result
|
958
941
|
end
|
959
942
|
.,.,
|
960
943
|
|
961
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
944
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 216
|
962
945
|
def _reduce_49( val, _values, result )
|
963
946
|
result = val[1]
|
964
947
|
result
|
965
948
|
end
|
966
949
|
.,.,
|
967
950
|
|
968
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
951
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 221
|
969
952
|
def _reduce_50( val, _values, result )
|
970
953
|
result = val[1]
|
971
954
|
result
|
972
955
|
end
|
973
956
|
.,.,
|
974
957
|
|
975
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
958
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 226
|
976
959
|
def _reduce_51( val, _values, result )
|
977
960
|
result = val[1]
|
978
961
|
result
|
979
962
|
end
|
980
963
|
.,.,
|
981
964
|
|
982
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
965
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 238
|
983
966
|
def _reduce_52( val, _values, result )
|
984
967
|
if val[3]
|
985
968
|
type = CIM::Array.new val[3],val[1]
|
@@ -991,7 +974,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 255
|
|
991
974
|
end
|
992
975
|
.,.,
|
993
976
|
|
994
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
977
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 246
|
995
978
|
def _reduce_53( val, _values, result )
|
996
979
|
if val[4]
|
997
980
|
raise StyleError.new(@name,@lineno,@line,"Array not allowed in reference declaration") unless @style == :wmi
|
@@ -1001,7 +984,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 263
|
|
1001
984
|
end
|
1002
985
|
.,.,
|
1003
986
|
|
1004
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
987
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 251
|
1005
988
|
def _reduce_54( val, _values, result )
|
1006
989
|
result = CIM::Method.new(val[1],val[2],val[0],val[4])
|
1007
990
|
result
|
@@ -1010,7 +993,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 268
|
|
1010
993
|
|
1011
994
|
# reduce 55 omitted
|
1012
995
|
|
1013
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
996
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 259
|
1014
997
|
def _reduce_56( val, _values, result )
|
1015
998
|
# tmplprov.mof has 'string Property;'
|
1016
999
|
raise StyleError.new(@name,@lineno,@line,"Invalid keyword '#{val[0]}' used for property name") unless @style == :wmi
|
@@ -1020,7 +1003,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 276
|
|
1020
1003
|
|
1021
1004
|
# reduce 57 omitted
|
1022
1005
|
|
1023
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1006
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 265
|
1024
1007
|
def _reduce_58( val, _values, result )
|
1025
1008
|
result = "Indication"
|
1026
1009
|
result
|
@@ -1057,14 +1040,14 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 282
|
|
1057
1040
|
|
1058
1041
|
# reduce 73 omitted
|
1059
1042
|
|
1060
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1043
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 288
|
1061
1044
|
def _reduce_74( val, _values, result )
|
1062
1045
|
raise StyleError.new(@name,@lineno,@line,"'void' is not a valid datatype") unless @style == :wmi
|
1063
1046
|
result
|
1064
1047
|
end
|
1065
1048
|
.,.,
|
1066
1049
|
|
1067
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1050
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 296
|
1068
1051
|
def _reduce_75( val, _values, result )
|
1069
1052
|
# WMI uses class names as data types (without REF ?!)
|
1070
1053
|
raise StyleError.new(@name,@lineno,@line,"Expected 'ref' keyword after classname '#{val[0]}'") unless @style == :wmi
|
@@ -1073,7 +1056,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 313
|
|
1073
1056
|
end
|
1074
1057
|
.,.,
|
1075
1058
|
|
1076
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1059
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 299
|
1077
1060
|
def _reduce_76( val, _values, result )
|
1078
1061
|
result = CIM::ReferenceType.new val[0]
|
1079
1062
|
result
|
@@ -1084,28 +1067,28 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 316
|
|
1084
1067
|
|
1085
1068
|
# reduce 78 omitted
|
1086
1069
|
|
1087
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1070
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 309
|
1088
1071
|
def _reduce_79( val, _values, result )
|
1089
1072
|
result = val[1].unshift val[0]
|
1090
1073
|
result
|
1091
1074
|
end
|
1092
1075
|
.,.,
|
1093
1076
|
|
1094
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1077
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 314
|
1095
1078
|
def _reduce_80( val, _values, result )
|
1096
1079
|
result = []
|
1097
1080
|
result
|
1098
1081
|
end
|
1099
1082
|
.,.,
|
1100
1083
|
|
1101
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1084
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 316
|
1102
1085
|
def _reduce_81( val, _values, result )
|
1103
1086
|
result = val[0] << val[2]
|
1104
1087
|
result
|
1105
1088
|
end
|
1106
1089
|
.,.,
|
1107
1090
|
|
1108
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1091
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 327
|
1109
1092
|
def _reduce_82( val, _values, result )
|
1110
1093
|
if val[3]
|
1111
1094
|
type = CIM::Array.new val[3], val[1]
|
@@ -1129,21 +1112,21 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 344
|
|
1129
1112
|
|
1130
1113
|
# reduce 88 omitted
|
1131
1114
|
|
1132
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1115
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 347
|
1133
1116
|
def _reduce_89( val, _values, result )
|
1134
1117
|
raise "Default parameter value not allowed in syntax style '{@style}'" unless @style == :wmi
|
1135
1118
|
result
|
1136
1119
|
end
|
1137
1120
|
.,.,
|
1138
1121
|
|
1139
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1122
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 352
|
1140
1123
|
def _reduce_90( val, _values, result )
|
1141
1124
|
result = val[1]
|
1142
1125
|
result
|
1143
1126
|
end
|
1144
1127
|
.,.,
|
1145
1128
|
|
1146
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1129
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 357
|
1147
1130
|
def _reduce_91( val, _values, result )
|
1148
1131
|
result = -1
|
1149
1132
|
result
|
@@ -1156,7 +1139,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 374
|
|
1156
1139
|
|
1157
1140
|
# reduce 94 omitted
|
1158
1141
|
|
1159
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1142
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 368
|
1160
1143
|
def _reduce_95( val, _values, result )
|
1161
1144
|
result = val[1]
|
1162
1145
|
result
|
@@ -1169,7 +1152,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 385
|
|
1169
1152
|
|
1170
1153
|
# reduce 98 omitted
|
1171
1154
|
|
1172
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1155
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 379
|
1173
1156
|
def _reduce_99( val, _values, result )
|
1174
1157
|
result = val[1]
|
1175
1158
|
result
|
@@ -1178,14 +1161,14 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 396
|
|
1178
1161
|
|
1179
1162
|
# reduce 100 omitted
|
1180
1163
|
|
1181
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1164
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 385
|
1182
1165
|
def _reduce_101( val, _values, result )
|
1183
1166
|
result = [ val[0] ]
|
1184
1167
|
result
|
1185
1168
|
end
|
1186
1169
|
.,.,
|
1187
1170
|
|
1188
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1171
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 387
|
1189
1172
|
def _reduce_102( val, _values, result )
|
1190
1173
|
result = val[0] << val[2]
|
1191
1174
|
result
|
@@ -1204,7 +1187,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 404
|
|
1204
1187
|
|
1205
1188
|
# reduce 108 omitted
|
1206
1189
|
|
1207
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1190
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 398
|
1208
1191
|
def _reduce_109( val, _values, result )
|
1209
1192
|
raise "Instance as property value not allowed in syntax style '{@style}'" unless @style == :wmi
|
1210
1193
|
result
|
@@ -1223,7 +1206,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 415
|
|
1223
1206
|
|
1224
1207
|
# reduce 115 omitted
|
1225
1208
|
|
1226
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1209
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 412
|
1227
1210
|
def _reduce_116( val, _values, result )
|
1228
1211
|
result = val[0] + val[1]
|
1229
1212
|
result
|
@@ -1256,7 +1239,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 429
|
|
1256
1239
|
|
1257
1240
|
# reduce 129 omitted
|
1258
1241
|
|
1259
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1242
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 467
|
1260
1243
|
def _reduce_130( val, _values, result )
|
1261
1244
|
result = CIM::QualifierDeclaration.new( val[1], val[2][0], val[2][1], val[3], val[4])
|
1262
1245
|
result
|
@@ -1275,7 +1258,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 484
|
|
1275
1258
|
|
1276
1259
|
# reduce 136 omitted
|
1277
1260
|
|
1278
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1261
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 487
|
1279
1262
|
def _reduce_137( val, _values, result )
|
1280
1263
|
type = val[2].nil? ? val[1] : CIM::Array.new(val[2],val[1])
|
1281
1264
|
result = [ type, val[3] ]
|
@@ -1283,21 +1266,21 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 504
|
|
1283
1266
|
end
|
1284
1267
|
.,.,
|
1285
1268
|
|
1286
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1269
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 492
|
1287
1270
|
def _reduce_138( val, _values, result )
|
1288
1271
|
result = CIM::QualifierScopes.new(val[3])
|
1289
1272
|
result
|
1290
1273
|
end
|
1291
1274
|
.,.,
|
1292
1275
|
|
1293
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1276
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 497
|
1294
1277
|
def _reduce_139( val, _values, result )
|
1295
1278
|
result = [ val[0] ]
|
1296
1279
|
result
|
1297
1280
|
end
|
1298
1281
|
.,.,
|
1299
1282
|
|
1300
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1283
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 499
|
1301
1284
|
def _reduce_140( val, _values, result )
|
1302
1285
|
result = val[0] << val[2]
|
1303
1286
|
result
|
@@ -1324,21 +1307,21 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 516
|
|
1324
1307
|
|
1325
1308
|
# reduce 150 omitted
|
1326
1309
|
|
1327
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1310
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 517
|
1328
1311
|
def _reduce_151( val, _values, result )
|
1329
1312
|
result = CIM::QualifierFlavors.new val[3]
|
1330
1313
|
result
|
1331
1314
|
end
|
1332
1315
|
.,.,
|
1333
1316
|
|
1334
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1317
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 522
|
1335
1318
|
def _reduce_152( val, _values, result )
|
1336
1319
|
result = [ val[0] ]
|
1337
1320
|
result
|
1338
1321
|
end
|
1339
1322
|
.,.,
|
1340
1323
|
|
1341
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1324
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 524
|
1342
1325
|
def _reduce_153( val, _values, result )
|
1343
1326
|
result = val[0] << val[2]
|
1344
1327
|
result
|
@@ -1355,7 +1338,7 @@ module_eval <<'.,.,', 'lib/mof/parser.y', 541
|
|
1355
1338
|
|
1356
1339
|
# reduce 158 omitted
|
1357
1340
|
|
1358
|
-
module_eval <<'.,.,', 'lib/mof/parser.y',
|
1341
|
+
module_eval <<'.,.,', 'lib/mof/parser.y', 548
|
1359
1342
|
def _reduce_159( val, _values, result )
|
1360
1343
|
raise "Instance property '#{val[1]} must have a value" unless @style == :wmi
|
1361
1344
|
result
|
data/lib/mof/parser.y
CHANGED
@@ -18,7 +18,7 @@ class MOF::Parser
|
|
18
18
|
DT_VOID
|
19
19
|
DT_UINT8 DT_SINT8 DT_UINT16 DT_SINT16 DT_UINT32 DT_SINT32
|
20
20
|
DT_UINT64 DT_SINT64 DT_REAL32 DT_REAL64 DT_CHAR16 DT_STR
|
21
|
-
|
21
|
+
DT_BOOLEAN DT_DATETIME
|
22
22
|
positiveDecimalValue
|
23
23
|
stringValue
|
24
24
|
realValue
|
@@ -108,25 +108,8 @@ rule
|
|
108
108
|
: qualifierList_opt CLASS className alias_opt superClass_opt "{" classFeatures "}" ";"
|
109
109
|
{ qualifiers = val[0]
|
110
110
|
features = val[6]
|
111
|
-
|
112
|
-
|
113
|
-
# Context:
|
114
|
-
#
|
115
|
-
# The remaining qualifier list must not include
|
116
|
-
# the ASSOCIATION qualifier again. If the
|
117
|
-
# association has no super association, then at
|
118
|
-
# least two references must be specified! The
|
119
|
-
# ASSOCIATION qualifier may be omitted in
|
120
|
-
# sub associations.
|
121
|
-
result = CIM::Association.new(val[2],qualifiers,val[3],val[4],features)
|
122
|
-
elsif qualifiers and qualifiers.include?(:indication, :bool)
|
123
|
-
# FIXME: 'indication' must be first
|
124
|
-
# FIXME: features must not include references
|
125
|
-
result = CIM::Indication.new(val[2],qualifiers,val[3],val[4],features)
|
126
|
-
else
|
127
|
-
# FIXME: features must not include references
|
128
|
-
result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
|
129
|
-
end
|
111
|
+
# FIXME: features must not include references
|
112
|
+
result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
|
130
113
|
}
|
131
114
|
;
|
132
115
|
|
@@ -169,9 +152,9 @@ rule
|
|
169
152
|
: qualifierName qualifierParameter_opt flavor_opt
|
170
153
|
{ # Get qualifier decl
|
171
154
|
qualifier = case val[0]
|
172
|
-
when CIM::Qualifier
|
173
|
-
when CIM::QualifierDeclaration
|
174
|
-
when String
|
155
|
+
when CIM::Qualifier then val[0].definition
|
156
|
+
when CIM::QualifierDeclaration then val[0]
|
157
|
+
when String then @qualifiers[val[0].downcase]
|
175
158
|
else
|
176
159
|
nil
|
177
160
|
end
|
@@ -179,7 +162,7 @@ rule
|
|
179
162
|
value = val[1]
|
180
163
|
raise MOF::Helper::Error.new(@name,@lineno,@line,"#{value.inspect} does not match qualifier type '#{qualifier.type}'") unless qualifier.type.matches?(value)||@style == :wmi
|
181
164
|
# Don't propagate a boolean 'false'
|
182
|
-
if qualifier.type == :
|
165
|
+
if qualifier.type == :boolean && value == false
|
183
166
|
result = nil
|
184
167
|
else
|
185
168
|
result = CIM::Qualifier.new(qualifier,value,val[2])
|
@@ -300,7 +283,7 @@ rule
|
|
300
283
|
| DT_REAL64
|
301
284
|
| DT_CHAR16
|
302
285
|
| DT_STR
|
303
|
-
|
|
286
|
+
| DT_BOOLEAN
|
304
287
|
| DT_DATETIME
|
305
288
|
| DT_VOID
|
306
289
|
{ raise StyleError.new(@name,@lineno,@line,"'void' is not a valid datatype") unless @style == :wmi }
|
@@ -586,7 +569,7 @@ require File.join(File.dirname(__FILE__), 'helper')
|
|
586
569
|
# MOF::Parser.new options = {}
|
587
570
|
#
|
588
571
|
# options -> Hash of options
|
589
|
-
# :debug ->
|
572
|
+
# :debug -> boolean
|
590
573
|
# :includes -> array of include dirs
|
591
574
|
# :style -> :cim or :wmi
|
592
575
|
#
|
@@ -618,7 +601,7 @@ end
|
|
618
601
|
options = { :namespace => "" }
|
619
602
|
while argv.size > 0
|
620
603
|
case opt = argv.shift
|
621
|
-
when "-h"
|
604
|
+
when "-h"
|
622
605
|
$stderr.puts "Ruby MOF compiler"
|
623
606
|
$stderr.puts "#{name} [-h] [-d] [-I <dir>] [<moffiles>]"
|
624
607
|
$stderr.puts "Compiles <moffile>"
|
@@ -632,10 +615,10 @@ end
|
|
632
615
|
$stderr.puts "\t-q quiet"
|
633
616
|
$stderr.puts "\t<moffiles> file(s) to read (else use $stdin)"
|
634
617
|
exit 0
|
635
|
-
when "-f"
|
636
|
-
when "-s"
|
637
|
-
when "-d"
|
638
|
-
when "-q"
|
618
|
+
when "-f" then options[:force] = true
|
619
|
+
when "-s" then options[:style] = argv.shift.to_sym
|
620
|
+
when "-d" then options[:debug] = true
|
621
|
+
when "-q" then options[:quiet] = true
|
639
622
|
when "-I"
|
640
623
|
options[:includes] ||= []
|
641
624
|
dirname = argv.shift
|
@@ -644,9 +627,9 @@ end
|
|
644
627
|
dirname = File.dirname(dirname)
|
645
628
|
end
|
646
629
|
options[:includes] << Pathname.new(dirname)
|
647
|
-
when "-n"
|
648
|
-
when "-o"
|
649
|
-
when
|
630
|
+
when "-n" then options[:namespace] = argv.shift
|
631
|
+
when "-o" then options[:output] = argv.shift
|
632
|
+
when /^-.+/
|
650
633
|
$stderr.puts "Undefined option #{opt}"
|
651
634
|
else
|
652
635
|
files << opt
|
data/lib/mof/scanner.rb
CHANGED
@@ -118,49 +118,49 @@ module Scanner
|
|
118
118
|
|
119
119
|
when m = scanner.scan(%r{\w+})
|
120
120
|
case m.downcase
|
121
|
-
when "amended"
|
122
|
-
when "any"
|
123
|
-
when "as"
|
124
|
-
when "association"
|
125
|
-
when "class"
|
126
|
-
when "disableoverride"
|
127
|
-
when "void"
|
128
|
-
when "boolean"
|
129
|
-
when "char16"
|
130
|
-
when "datetime"
|
131
|
-
when "real32"
|
132
|
-
when "real64"
|
133
|
-
when "sint16"
|
134
|
-
when "sint32"
|
135
|
-
when "sint64"
|
136
|
-
when "sint8"
|
137
|
-
when "string"
|
138
|
-
when "uint16"
|
139
|
-
when "uint32"
|
140
|
-
when "uint64"
|
141
|
-
when "uint8"
|
142
|
-
when "enableoverride"
|
143
|
-
when "false"
|
144
|
-
when "flavor"
|
145
|
-
when "include"
|
146
|
-
when "indication"
|
147
|
-
when "instance"
|
148
|
-
when "method"
|
149
|
-
when "null"
|
150
|
-
when "of"
|
151
|
-
when "parameter"
|
152
|
-
when "pragma"
|
153
|
-
when "property"
|
154
|
-
when "qualifier"
|
155
|
-
when "ref"
|
156
|
-
when "reference"
|
157
|
-
when "restricted"
|
158
|
-
when "schema"
|
159
|
-
when "scope"
|
160
|
-
when "toinstance"
|
161
|
-
when "tosubclass"
|
162
|
-
when "translatable"
|
163
|
-
when "true"
|
121
|
+
when "amended" then @q.push [:AMENDED, m]
|
122
|
+
when "any" then @q.push [:ANY, m]
|
123
|
+
when "as" then @q.push [:AS, nil]
|
124
|
+
when "association" then @q.push [:ASSOCIATION, m]
|
125
|
+
when "class" then @q.push( [:CLASS, m] )
|
126
|
+
when "disableoverride" then @q.push [:DISABLEOVERRIDE, m]
|
127
|
+
when "void" then @q.push [:DT_VOID, CIM::Type.new(:void)]
|
128
|
+
when "boolean" then @q.push [:DT_BOOLEAN, CIM::Type.new(:boolean)]
|
129
|
+
when "char16" then @q.push [:DT_CHAR16, CIM::Type.new(m)]
|
130
|
+
when "datetime" then @q.push [:DT_DATETIME, CIM::Type.new(m)]
|
131
|
+
when "real32" then @q.push [:DT_REAL32, CIM::Type.new(m)]
|
132
|
+
when "real64" then @q.push [:DT_REAL64, CIM::Type.new(m)]
|
133
|
+
when "sint16" then @q.push [:DT_SINT16, CIM::Type.new(m)]
|
134
|
+
when "sint32" then @q.push [:DT_SINT32, CIM::Type.new(m)]
|
135
|
+
when "sint64" then @q.push [:DT_SINT64, CIM::Type.new(m)]
|
136
|
+
when "sint8" then @q.push [:DT_SINT8, CIM::Type.new(m)]
|
137
|
+
when "string" then @q.push [:DT_STR, CIM::Type.new(m)]
|
138
|
+
when "uint16" then @q.push [:DT_UINT16, CIM::Type.new(m)]
|
139
|
+
when "uint32" then @q.push [:DT_UINT32, CIM::Type.new(m)]
|
140
|
+
when "uint64" then @q.push [:DT_UINT64, CIM::Type.new(m)]
|
141
|
+
when "uint8" then @q.push [:DT_UINT8, CIM::Type.new(m)]
|
142
|
+
when "enableoverride" then @q.push [:ENABLEOVERRIDE, m]
|
143
|
+
when "false" then @q.push [:booleanValue, false]
|
144
|
+
when "flavor" then @q.push [:FLAVOR, nil]
|
145
|
+
when "include" then @q.push [:INCLUDE, nil]
|
146
|
+
when "indication" then @q.push [:INDICATION, m]
|
147
|
+
when "instance" then @q.push [:INSTANCE, m]
|
148
|
+
when "method" then @q.push [:METHOD, m]
|
149
|
+
when "null" then @q.push [:nullValue, CIM::Variant.new(:null,nil)]
|
150
|
+
when "of" then @q.push [:OF, nil]
|
151
|
+
when "parameter" then @q.push [:PARAMETER, m]
|
152
|
+
when "pragma" then @q.push [:PRAGMA, nil]
|
153
|
+
when "property" then @q.push [:PROPERTY, m]
|
154
|
+
when "qualifier" then @q.push [:QUALIFIER, m]
|
155
|
+
when "ref" then @q.push [:REF, nil]
|
156
|
+
when "reference" then @q.push [:REFERENCE, m]
|
157
|
+
when "restricted" then @q.push [:RESTRICTED, m]
|
158
|
+
when "schema" then @q.push [:SCHEMA, m]
|
159
|
+
when "scope" then @q.push [:SCOPE, nil]
|
160
|
+
when "toinstance" then @q.push [:TOINSTANCE, m]
|
161
|
+
when "tosubclass" then @q.push [:TOSUBCLASS, m]
|
162
|
+
when "translatable" then @q.push [:TRANSLATABLE, m]
|
163
|
+
when "true" then @q.push [:booleanValue, true]
|
164
164
|
else
|
165
165
|
@q.push( [:IDENTIFIER, m] )
|
166
166
|
end # case m.downcase
|
data/lib/mof/version.rb
ADDED
data/mof.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "mof"
|
3
|
+
require "mof/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "mof"
|
@@ -18,7 +18,10 @@ See http://www.dmtf.org/education/mof}
|
|
18
18
|
s.rubyforge_project = "mof"
|
19
19
|
|
20
20
|
# CIM metamodel
|
21
|
-
s.add_dependency("cim", ["~>
|
21
|
+
s.add_dependency("cim", ["~> 1.2"])
|
22
|
+
|
23
|
+
s.add_development_dependency('rake')
|
24
|
+
s.add_development_dependency('bundler')
|
22
25
|
|
23
26
|
s.files = `git ls-files`.split("\n") << "lib/mof/parser.rb"
|
24
27
|
s.files.reject! { |fn| fn == '.gitignore' }
|
data/tasks/racc.rake
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
qualifier Description : string,
|
2
2
|
Scope(class);
|
3
|
+
qualifier Indication : boolean,
|
4
|
+
Scope(class);
|
5
|
+
qualifier Association : boolean,
|
6
|
+
Scope(class);
|
3
7
|
|
4
|
-
[ Description("This is a class with a Description qualifier") ]
|
8
|
+
[ Association, Indication, Description("This is a class with a Description qualifier") ]
|
5
9
|
class MOF_Test : Parent_Class
|
6
10
|
{
|
11
|
+
CIM_OperatingSystem REF GroupComponent;
|
7
12
|
};
|
@@ -2,10 +2,10 @@ $d = File.expand_path(File.dirname(__FILE__))
|
|
2
2
|
require "test/unit"
|
3
3
|
require File.join($d,'..','lib','mof')
|
4
4
|
|
5
|
-
class
|
5
|
+
class TestAssociationQualifiers < Test::Unit::TestCase
|
6
6
|
|
7
7
|
def setup
|
8
|
-
@moffiles, @options = MOF::Parser.argv_handler "
|
8
|
+
@moffiles, @options = MOF::Parser.argv_handler "test_association_qualifier", ["association_qualifier.mof"]
|
9
9
|
@options[:style] ||= :cim
|
10
10
|
@options[:includes] ||= [ $d, File.join($d,"mof")]
|
11
11
|
|
@@ -24,7 +24,7 @@ class TestQualifiers < Test::Unit::TestCase
|
|
24
24
|
assert_equal 1, res.qualifiers.size
|
25
25
|
q = res.qualifiers.shift
|
26
26
|
assert q.is_a? CIM::QualifierDeclaration
|
27
|
-
assert q.type == :
|
27
|
+
assert q.type == :boolean
|
28
28
|
assert q.default == false
|
29
29
|
# has one qualifier scopes
|
30
30
|
assert_equal 1, q.scopes.size
|
@@ -0,0 +1,29 @@
|
|
1
|
+
$d = File.expand_path(File.dirname(__FILE__))
|
2
|
+
require "test/unit"
|
3
|
+
require File.join($d,'..','lib','mof')
|
4
|
+
|
5
|
+
class TestClassQualifiers < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@moffiles, @options = MOF::Parser.argv_handler "test_class_qualifier", ["class_qualifiers.mof"]
|
9
|
+
@options[:style] ||= :cim
|
10
|
+
@options[:includes] ||= [ $d, File.join($d,"mof")]
|
11
|
+
|
12
|
+
@parser = MOF::Parser.new @options
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_parse
|
16
|
+
result = @parser.parse @moffiles
|
17
|
+
assert result
|
18
|
+
# parsed one file
|
19
|
+
assert_equal 1, result.size
|
20
|
+
|
21
|
+
name,res = result.shift
|
22
|
+
assert !res.qualifiers.empty?
|
23
|
+
# parsed three qualifier
|
24
|
+
assert_equal 3, res.qualifiers.size
|
25
|
+
assert res.qualifiers.include? :association
|
26
|
+
assert res.qualifiers.include? :indication
|
27
|
+
assert res.qualifiers.include? :description
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
-
-
|
8
|
-
- 3
|
7
|
+
- 1
|
9
8
|
- 2
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 1.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Klaus K\xC3\xA4mpf"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-05-03 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -26,13 +26,41 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 11
|
30
30
|
segments:
|
31
|
-
-
|
32
|
-
-
|
33
|
-
version: "
|
31
|
+
- 1
|
32
|
+
- 2
|
33
|
+
version: "1.2"
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: bundler
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
type: :development
|
63
|
+
version_requirements: *id003
|
36
64
|
description: |-
|
37
65
|
The Managed Object Format (MOF) language used to
|
38
66
|
describe classes and instances of the Common Information Model (CIM).
|
@@ -45,7 +73,6 @@ extensions: []
|
|
45
73
|
|
46
74
|
extra_rdoc_files:
|
47
75
|
- README.rdoc
|
48
|
-
- README.rdoc~
|
49
76
|
- LICENSE
|
50
77
|
files:
|
51
78
|
- Gemfile
|
@@ -61,6 +88,7 @@ files:
|
|
61
88
|
- lib/mof/parser.y
|
62
89
|
- lib/mof/result.rb
|
63
90
|
- lib/mof/scanner.rb
|
91
|
+
- lib/mof/version.rb
|
64
92
|
- mof.gemspec
|
65
93
|
- parser/doc/mof.bnf
|
66
94
|
- tasks/clean.rake
|
@@ -77,10 +105,10 @@ files:
|
|
77
105
|
- test/mof/simple.mof
|
78
106
|
- test/test_array_initializer.rb
|
79
107
|
- test/test_association_qualifier.rb
|
108
|
+
- test/test_class_qualifiers.rb
|
80
109
|
- test/test_loading.rb
|
81
110
|
- test/test_qualifier.rb
|
82
111
|
- lib/mof/parser.rb
|
83
|
-
- README.rdoc~
|
84
112
|
has_rdoc: true
|
85
113
|
homepage: https://github.com/kkaempf/mof
|
86
114
|
licenses: []
|
@@ -111,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
139
|
requirements: []
|
112
140
|
|
113
141
|
rubyforge_project: mof
|
114
|
-
rubygems_version: 1.5.
|
142
|
+
rubygems_version: 1.5.0
|
115
143
|
signing_key:
|
116
144
|
specification_version: 3
|
117
145
|
summary: A pure Ruby parser for MOF (Managed Object Format) files
|
@@ -126,5 +154,6 @@ test_files:
|
|
126
154
|
- test/mof/simple.mof
|
127
155
|
- test/test_array_initializer.rb
|
128
156
|
- test/test_association_qualifier.rb
|
157
|
+
- test/test_class_qualifiers.rb
|
129
158
|
- test/test_loading.rb
|
130
159
|
- test/test_qualifier.rb
|
data/README.rdoc~
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
= mof
|
2
|
-
|
3
|
-
A parser for the Managed Object Format (MOF) language used to describe
|
4
|
-
classes and instances of the Common Information Model (CIM)
|
5
|
-
|
6
|
-
See http://www.dmtf.org/education/mof
|
7
|
-
|
8
|
-
== FEATURES/PROBLEMS:
|
9
|
-
|
10
|
-
* Uses Racc (Ruby Yacc) as parser generator
|
11
|
-
* Provides class information as Ruby objects (using the 'cim' gem)
|
12
|
-
* Can switch between DMTFs standard format and the one used in
|
13
|
-
Microsofts WMI implementation (http://msdn.microsoft.com/en-us/library/aa823192(VS.85).aspx)
|
14
|
-
|
15
|
-
== SYNOPSIS:
|
16
|
-
|
17
|
-
* A simple mof reader for validation of MOF files
|
18
|
-
|
19
|
-
require 'mof'
|
20
|
-
moffiles, options = Mofparser.argv_handler "moflint", ARGV
|
21
|
-
options[:style] ||= :cim;
|
22
|
-
options[:includes] ||= []
|
23
|
-
options[:includes].unshift(Pathname.new ".")
|
24
|
-
options[:includes].unshift(Pathname.new "/usr/share/mof/cim-current")
|
25
|
-
|
26
|
-
moffiles.unshift "qualifiers.mof" unless moffiles.include? "qualifiers.mof"
|
27
|
-
|
28
|
-
parser = Mofparser.new options
|
29
|
-
|
30
|
-
begin
|
31
|
-
result = parser.parse moffiles
|
32
|
-
rescue Exception => e
|
33
|
-
parser.error_handler e
|
34
|
-
exit 1
|
35
|
-
end
|
36
|
-
|
37
|
-
result.each do |name,res|
|
38
|
-
puts "/*=============== #{name} ===================*/\n"
|
39
|
-
puts res
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
== REQUIREMENTS:
|
44
|
-
|
45
|
-
* cim (http://rubygems.org/gems/cim)
|
46
|
-
|
47
|
-
== INSTALL:
|
48
|
-
|
49
|
-
gem install cim
|
50
|
-
|
51
|
-
== LICENSE:
|
52
|
-
|
53
|
-
(The Ruby License)
|
54
|
-
|
55
|
-
Copyright (c) 2010 Klaus Kämpf <kkaempf@suse.de>
|
56
|
-
|
57
|
-
See http://www.ruby-lang.org/en/LICENSE.txt for the full text
|