mof 0.3.2 → 1.2.0
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.
- 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
|