cim 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cim.rb +4 -1
  3. data/lib/cim/type.rb +5 -1
  4. data/lib/cim/variant.rb +36 -7
  5. metadata +25 -34
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fc7b0bda547a22d0f754c96dae011b9f2591cad8
4
+ data.tar.gz: e567befe6c52d503590b06a5ec186930f280e3cc
5
+ SHA512:
6
+ metadata.gz: ddff66a1228b09f5c1b7df502d3261375e711458ccb2db664b15813999751d3e2308a55337097d70cd9e16936ddfec04bfd0179b5d8a1d212a0a4c7dd438d41f
7
+ data.tar.gz: 4010529e49f4d2f0676b1d9de7b92ed95b52d43c0f92db7c6a7c404fecd09d5cf84104031a725dca38994edff5fc739628461b23c8b24b9e0c09be9630aed56f
data/lib/cim.rb CHANGED
@@ -10,6 +10,9 @@
10
10
  $:.unshift(File.dirname(__FILE__)) unless
11
11
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
12
12
 
13
+ CIMPATH = "/usr/share/mof/ruby"
14
+ $:.unshift(CIMPATH) unless $:.include?(CIMPATH)
15
+
13
16
  #
14
17
  # The CIM Ruby gem is an implementation of the Common Information Model (CIM) meta schema[1]
15
18
  #
@@ -41,7 +44,7 @@ $:.unshift(File.dirname(__FILE__)) unless
41
44
  #
42
45
 
43
46
  module CIM
44
- VERSION = '1.4.1'
47
+ VERSION = '1.4.2'
45
48
  require 'cim/type'
46
49
  require 'cim/variant'
47
50
  require 'cim/qualifier_flavors'
@@ -152,12 +152,16 @@ module CIM
152
152
  # check if another Type or Variant matches
153
153
  #
154
154
  def matches? x
155
- # puts ">#{self}<{#{self.class}}.matches?>#{x.inspect}<{#{x.class}}"
155
+ # puts "Type#matches? : >#{self}<{#{self.class}}.matches?>#{x.inspect}<{#{x.class}}"
156
156
  case x
157
157
  when CIM::Type, CIM::Variant
158
158
  return true if x.type == @type
159
159
  return true if MATCHES[@type].include? x.type
160
160
  false
161
+ when ::Symbol
162
+ return true if @type == x
163
+ return true if MATCHES[@type].include? x
164
+ false
161
165
  when ::Array
162
166
  return false unless self.is_a? CIM::Array
163
167
  x.each do |v|
@@ -30,19 +30,48 @@ module CIM
30
30
  #
31
31
  def == v
32
32
  # $stderr.puts "<#{@type}>#{self} == #{v.class}"
33
+ return false unless self.is_a?(v)
33
34
  case v
34
- when NilClass then @type == :null && @value.nil?
35
- when FalseClass then @type == :boolean && !@value
36
- when TrueClass then @type == :boolean && @value
37
- when String then @type == :string && @value == v
38
- when Integer then @type == :int && @value == v
39
- when Float then @type == :real && @value == v
40
- when CIM::Variant then @type == v.type && @value == v.value
35
+ when NilClass then @value.nil?
36
+ when FalseClass then !@value
37
+ when TrueClass then @value
38
+ when String then @value == v
39
+ when Integer then @value == v
40
+ when Float then @value == v
41
+ when CIM::Variant then @value == v.value
41
42
  else
42
43
  false
43
44
  end
44
45
  end
45
46
  #
47
+ # Check type against Ruby class
48
+ #
49
+ def is_a? klass
50
+ # puts "Variant#is_a? : #{self.inspect} is_a #{klass.class}:#{klass.inspect}"
51
+ case klass
52
+ when NilClass then @type.matches? :null
53
+ when FalseClass then @type.matches? :boolean
54
+ when TrueClass then @type.matches? :boolean
55
+ when Integer then @type.matches?(:uint64) || @type.matches?(:sint64)
56
+ when Float then @type.matches? :real32
57
+ when Symbol then @type.matches? klass
58
+ when String then
59
+ @type.matches? :string
60
+ when CIM::Variant then @type.matches? klass.type
61
+ else
62
+ if klass == Integer
63
+ @type.matches?(:uint64) || @type.matches?(:sint64)
64
+ elsif klass == Float
65
+ @type.matches? :real32
66
+ elsif klass == String
67
+ @type.matches? :string
68
+ else
69
+ # puts "Nothing matches #{klass}:#{klass.inspect}"
70
+ false
71
+ end
72
+ end
73
+ end
74
+ #
46
75
  # returns a string representation in MOF syntax format
47
76
  #
48
77
  def to_s
metadata CHANGED
@@ -1,55 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cim
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
5
- prerelease:
4
+ version: 1.4.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Klaus Kämpf
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-09 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
- description: ! 'Instances of Cim classes are used to define a CIM
47
-
41
+ description: |-
42
+ Instances of Cim classes are used to define a CIM
48
43
  schema, often represented as a .mof file. See
49
-
50
44
  http://www.dmtf.org/standards/cim and
51
-
52
- http://www.dmtf.org/education/mof for details'
45
+ http://www.dmtf.org/education/mof for details
53
46
  email:
54
47
  - kkaempf@suse.de
55
48
  executables: []
@@ -58,46 +51,44 @@ extra_rdoc_files:
58
51
  - README.rdoc
59
52
  - LICENSE
60
53
  files:
54
+ - LICENSE
55
+ - README.rdoc
61
56
  - lib/cim.rb
62
- - lib/cim/property.rb
63
- - lib/cim/type.rb
57
+ - lib/cim/class.rb
58
+ - lib/cim/class_feature.rb
59
+ - lib/cim/instance.rb
64
60
  - lib/cim/method.rb
61
+ - lib/cim/named_element.rb
62
+ - lib/cim/property.rb
63
+ - lib/cim/qualifier.rb
64
+ - lib/cim/qualifier_declaration.rb
65
+ - lib/cim/qualifier_flavors.rb
65
66
  - lib/cim/qualifier_scopes.rb
66
- - lib/cim/instance.rb
67
67
  - lib/cim/qualifier_set.rb
68
68
  - lib/cim/reference.rb
69
- - lib/cim/qualifier_flavors.rb
69
+ - lib/cim/type.rb
70
70
  - lib/cim/variant.rb
71
- - lib/cim/class_feature.rb
72
- - lib/cim/class.rb
73
- - lib/cim/named_element.rb
74
- - lib/cim/qualifier_declaration.rb
75
- - lib/cim/qualifier.rb
76
- - README.rdoc
77
- - LICENSE
78
71
  homepage: https://github.com/kkaempf/cim
79
72
  licenses: []
73
+ metadata: {}
80
74
  post_install_message:
81
75
  rdoc_options: []
82
76
  require_paths:
83
77
  - lib
84
78
  required_ruby_version: !ruby/object:Gem::Requirement
85
- none: false
86
79
  requirements:
87
- - - ! '>='
80
+ - - ">="
88
81
  - !ruby/object:Gem::Version
89
82
  version: '0'
90
83
  required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
84
  requirements:
93
- - - ! '>='
85
+ - - ">="
94
86
  - !ruby/object:Gem::Version
95
87
  version: '0'
96
88
  requirements: []
97
89
  rubyforge_project: cim
98
- rubygems_version: 1.8.23
90
+ rubygems_version: 2.4.5
99
91
  signing_key:
100
- specification_version: 3
92
+ specification_version: 4
101
93
  summary: A pure-Ruby implementation of the CIM meta model
102
94
  test_files: []
103
- has_rdoc: