cim 1.3 → 1.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/cim.rb CHANGED
@@ -41,7 +41,7 @@ $:.unshift(File.dirname(__FILE__)) unless
41
41
  #
42
42
 
43
43
  module CIM
44
- VERSION = '1.3'
44
+ VERSION = '1.4'
45
45
  require 'cim/type'
46
46
  require 'cim/variant'
47
47
  require 'cim/qualifier_flavors'
@@ -19,18 +19,6 @@ module CIM
19
19
  class ClassFeature < NamedElement
20
20
  attr_reader :type
21
21
  #
22
- # if has key qualifier
23
- #
24
- def key?
25
- @qualifiers && @qualifiers.include?(:key,:boolean)
26
- end
27
- #
28
- # if static (class-level) feature
29
- #
30
- def static?
31
- false
32
- end
33
- #
34
22
  # if Property
35
23
  #
36
24
  def property?
@@ -45,5 +45,21 @@ module CIM
45
45
  p = parameters.join(", ")
46
46
  "#{super}(#{p})"
47
47
  end
48
+ #
49
+ # Check for qualifiers
50
+ #
51
+ # # check for existance
52
+ # method.qualifier? -> true or false
53
+ #
54
+ # # check value
55
+ # method.description -> String or nil
56
+ #
57
+ def method_missing name, *args
58
+ if name.to_s[-1,1] == "?"
59
+ @qualifiers && @qualifiers.include?(name.to_s[0...-1])
60
+ else
61
+ (@qualifiers[name].value || @qualifiers[name].declaration.default.value) rescue nil
62
+ end
63
+ end
48
64
  end
49
65
  end
@@ -33,6 +33,22 @@ module CIM
33
33
  def property?
34
34
  true
35
35
  end
36
+ #
37
+ # Check for qualifiers
38
+ #
39
+ # # check for existance
40
+ # element.qualifier? -> true or false
41
+ #
42
+ # # check value
43
+ # element.description -> String or nil
44
+ #
45
+ def method_missing name, *args
46
+ if name.to_s[-1,1] == "?"
47
+ @qualifiers && @qualifiers.include?(name.to_s[0...-1])
48
+ else
49
+ (@qualifiers[name].value || @qualifiers[name].declaration.default.value) rescue nil
50
+ end
51
+ end
36
52
  end
37
53
  end
38
54
 
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cim
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 3
9
- version: "1.3"
8
+ - 4
9
+ version: "1.4"
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Klaus K\xC3\xA4mpf"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-03-13 00:00:00 +01:00
17
+ date: 2012-06-27 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -60,39 +60,23 @@ extra_rdoc_files:
60
60
  - README.rdoc
61
61
  - LICENSE
62
62
  files:
63
- - Gemfile
64
- - History.txt
65
- - LICENSE
66
- - README.rdoc
67
- - Rakefile
68
- - cim.gemspec
69
63
  - lib/cim.rb
70
- - lib/cim/class.rb
71
- - lib/cim/class_feature.rb
72
- - lib/cim/instance.rb
73
- - lib/cim/method.rb
74
- - lib/cim/named_element.rb
75
64
  - lib/cim/property.rb
76
- - lib/cim/qualifier.rb
77
- - lib/cim/qualifier_declaration.rb
78
- - lib/cim/qualifier_flavors.rb
65
+ - lib/cim/type.rb
66
+ - lib/cim/method.rb
79
67
  - lib/cim/qualifier_scopes.rb
68
+ - lib/cim/instance.rb
80
69
  - lib/cim/qualifier_set.rb
81
70
  - lib/cim/reference.rb
82
- - lib/cim/type.rb
71
+ - lib/cim/qualifier_flavors.rb
83
72
  - lib/cim/variant.rb
84
- - tasks/clean.rake
85
- - tasks/doc.rake
86
- - tasks/test.rake
87
- - test/test_loading.rb
88
- - test/test_method.rb
89
- - test/test_property.rb
90
- - test/test_qualifier.rb
91
- - test/test_qualifier_flavors.rb
92
- - test/test_qualifier_scopes.rb
93
- - test/test_qualifier_set.rb
94
- - test/test_reference.rb
95
- - test/test_type.rb
73
+ - lib/cim/class_feature.rb
74
+ - lib/cim/class.rb
75
+ - lib/cim/named_element.rb
76
+ - lib/cim/qualifier_declaration.rb
77
+ - lib/cim/qualifier.rb
78
+ - README.rdoc
79
+ - LICENSE
96
80
  has_rdoc: true
97
81
  homepage: https://github.com/kkaempf/cim
98
82
  licenses: []
@@ -127,13 +111,5 @@ rubygems_version: 1.5.0
127
111
  signing_key:
128
112
  specification_version: 3
129
113
  summary: A pure-Ruby implementation of the CIM meta model
130
- test_files:
131
- - test/test_loading.rb
132
- - test/test_method.rb
133
- - test/test_property.rb
134
- - test/test_qualifier.rb
135
- - test/test_qualifier_flavors.rb
136
- - test/test_qualifier_scopes.rb
137
- - test/test_qualifier_set.rb
138
- - test/test_reference.rb
139
- - test/test_type.rb
114
+ test_files: []
115
+
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in cim.gemspec
4
- gemspec
@@ -1,35 +0,0 @@
1
- === 1.3 2011-11-16
2
-
3
- * Make QualifierScope and QualifierFlavor Array
4
- (remove :elements and :flavors accessors)
5
-
6
- * Rename CIM::QualifierScopesError to CIM::QualifierScopeError
7
-
8
- === 1.2.1 2011-11-08
9
-
10
- * Ruby 1.9 support
11
-
12
- === 1.2.0
13
-
14
- === 0.5.0 2011-09-29
15
-
16
- * Clean up Rakefile, support Bundler
17
- * Add QualifierSet[] access function
18
- * Make check functions like key?, etc. public
19
-
20
- === 0.4.1 2010-10-14
21
-
22
- * More tests
23
- * Refactor Qualifiers to QualifierSet, QualifierSet includes Qualifiers
24
-
25
- === 0.3.1 2010-10-05
26
-
27
- * Extend API for mof
28
-
29
- === 0.3.0 2010-10-04
30
-
31
- * Refactoring for mof
32
-
33
- === 0.2.7 2010-10-03
34
-
35
- * Initial release
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake/testtask'
3
-
4
- task :default => [:test]
5
-
6
- Dir['tasks/**/*.rake'].each { |t| load t }
@@ -1,30 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "cim"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "cim"
7
- s.version = CIM::VERSION
8
-
9
- s.platform = Gem::Platform::RUBY
10
- s.authors = ["Klaus Kämpf"]
11
- s.email = ["kkaempf@suse.de"]
12
- s.homepage = "https://github.com/kkaempf/cim"
13
- s.summary = %q{A pure-Ruby implementation of the CIM meta model}
14
- s.description = %q{Instances of Cim classes are used to define a CIM
15
- schema, often represented as a .mof file. See
16
- http://www.dmtf.org/standards/cim and
17
- http://www.dmtf.org/education/mof for details}
18
-
19
- s.rubyforge_project = "cim"
20
-
21
- s.add_development_dependency('rake')
22
- s.add_development_dependency('bundler')
23
-
24
- s.files = `git ls-files`.split("\n")
25
- s.files.reject! { |fn| fn == '.gitignore' }
26
- s.extra_rdoc_files = Dir['README*', 'TODO*', 'CHANGELOG*', 'LICENSE']
27
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
29
- s.require_paths = ["lib"]
30
- end
@@ -1,9 +0,0 @@
1
- task :clean do
2
- `rm -rf *~`
3
- `rm -rf */*~`
4
- `rm -rf */*/*~`
5
- `rm -f Gemfile.lock`
6
- `rm -rf doc`
7
- `rm -rf .yardoc`
8
- `rm -rf pkg`
9
- end
@@ -1,14 +0,0 @@
1
- begin
2
- require 'yard'
3
- YARD::Rake::YardocTask.new(:doc) do |t|
4
- t.files = ['lib/**/*.rb']
5
- t.options = ['--no-private']
6
- end
7
- rescue LoadError
8
- STDERR.puts "Install yard if you want prettier docs"
9
- require 'rdoc/task'
10
- Rake::RDocTask.new(:doc) do |rdoc|
11
- rdoc.rdoc_dir = "doc"
12
- rdoc.title = "dm-keeper-adapter #{CIM::VERSION}"
13
- end
14
- end
@@ -1,6 +0,0 @@
1
- Rake::TestTask.new do |t|
2
- t.libs << File.expand_path('../test', __FILE__)
3
- t.libs << File.expand_path('../', __FILE__)
4
- t.test_files = FileList['test/test*.rb']
5
- t.verbose = true
6
- end
@@ -1,2 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
- require "cim"
@@ -1,29 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class MethodTest < Test::Unit::TestCase
7
- def test_init
8
- m = CIM::Method.new :real32, "Foo", CIM::QualifierDeclaration.new(:description, :string, "This is a foo method", :class)
9
- assert m
10
- assert_equal "Foo", m.name
11
- assert m.qualifiers.size > 0
12
- assert m.qualifiers.include?( :description )
13
- assert m.qualifiers.include?( :description, :string )
14
- # assert_equal "This is a foo method", m.description
15
- assert_equal false, m.to_s.empty?
16
- end
17
- def test_nodesc
18
- m = CIM::Method.new :boolean, "Foo"
19
- assert m
20
- assert_equal "Foo", m.name
21
- assert_equal m.type, :boolean
22
- # assert_equal nil, m.description
23
- end
24
- def test_raise
25
- assert_raise TypeError do
26
- m = CIM::Method.new :foo, "Foo"
27
- end
28
- end
29
- end
@@ -1,23 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class PropertyTest < Test::Unit::TestCase
7
- def test_init
8
- p = CIM::Property.new :string, "String", CIM::QualifierDeclaration.new(:key, :boolean), CIM::QualifierDeclaration.new(:description, :string, "This is a string", :class)
9
- assert p
10
- assert p.is_a? CIM::Property
11
- assert_equal "String", p.name
12
- # assert p.key?
13
- end
14
- def test_name
15
- p = CIM::Property.new :uint32, "foo"
16
- assert_equal "foo", p.name
17
- end
18
- def test_raise
19
- assert_raise TypeError do
20
- p = CIM::Property.new :foo, "foo"
21
- end
22
- end
23
- end
@@ -1,16 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class QualifierTest < Test::Unit::TestCase
7
- def test_key
8
- q = CIM::QualifierDeclaration.new :key, :boolean
9
- assert q
10
- end
11
- def test_raise
12
- assert_raise RuntimeError do
13
- CIM::Qualifier.new(:unknown)
14
- end
15
- end
16
- end
@@ -1,19 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class QualifierFlavorsTest < Test::Unit::TestCase
7
- def test_new
8
- assert CIM::QualifierFlavors.new
9
- f = CIM::QualifierFlavors.new(:enableoverride)
10
- assert f
11
- assert_equal 1,f.size
12
- assert f.include? :enableoverride
13
- end
14
- def test_raise
15
- assert_raise CIM::QualifierFlavorError do
16
- CIM::QualifierFlavors.new(:unknown)
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class QualifierScopesTest < Test::Unit::TestCase
7
- def test_new
8
- assert CIM::QualifierScopes.new
9
- s = CIM::QualifierScopes.new(:association)
10
- assert s
11
- assert_equal 1,s.size
12
- assert s.include? :association
13
- end
14
- def test_raise
15
- assert_raise CIM::QualifierScopeError do
16
- CIM::QualifierScopes.new(:unknown)
17
- end
18
- end
19
- end
@@ -1,39 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class QualifierSetTest < Test::Unit::TestCase
7
- def setup
8
- qboolean = CIM::QualifierDeclaration.new("flag")
9
- qint = CIM::QualifierDeclaration.new("value", :uint32)
10
- qstring = CIM::QualifierDeclaration.new("description", :string, "This is a description")
11
- @qualifiers = CIM::QualifierSet.new
12
- @qualifiers << CIM::Qualifier.new(qboolean)
13
- @qualifiers << CIM::Qualifier.new(qint)
14
- @qualifiers << CIM::Qualifier.new(qstring)
15
- end
16
- def test_key
17
- assert_equal 3, @qualifiers.size
18
- end
19
- def test_prefill
20
- q = CIM::QualifierSet.new "a", :b
21
- assert_equal 2, q.size
22
- assert q.include?( "a" )
23
- assert q.include?( "b", :boolean )
24
- end
25
- def test_include
26
- assert @qualifiers.include?( :flag )
27
- assert @qualifiers.include?( "flag" )
28
- assert @qualifiers.include?( "flag", :boolean )
29
- assert @qualifiers.include?( "flag", "boolean" )
30
- assert !@qualifiers.include?( "flag", :string )
31
- end
32
- def test_access
33
- assert @qualifiers[:flag]
34
- assert @qualifiers["flag"]
35
- assert @qualifiers["flag", :boolean]
36
- assert @qualifiers["flag", "boolean"]
37
- assert !@qualifiers["flag", :string]
38
- end
39
- end
@@ -1,13 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class ReferenceTest < Test::Unit::TestCase
7
- def test_init
8
- r = CIM::Reference.new :string, "String"
9
- assert r
10
- assert r.is_a? CIM::Reference
11
- assert r.kind_of? CIM::ClassFeature
12
- end
13
- end
@@ -1,33 +0,0 @@
1
- $: << File.join(File.dirname(__FILE__),"..","lib")
2
-
3
- require "test/unit"
4
- require "cim"
5
-
6
- class TypeTest < Test::Unit::TestCase
7
- def test_init
8
- t = CIM::Type.new :null
9
- assert t
10
- assert_equal "null", t.to_s
11
- assert !t.array?
12
- end
13
- def test_raise
14
- assert_raise TypeError do
15
- t = CIM::Type.new :foo
16
- end
17
- end
18
- def test_alias
19
- assert_equal CIM::Type.new(:bool), CIM::Type.new(:boolean)
20
- assert_equal CIM::Type.new(:datetime), CIM::Type.new(:dateTime)
21
- end
22
- def test_normalize
23
- assert_equal CIM::Type.new(:null), CIM::Type.normalize(:null)
24
- assert_equal CIM::Type.normalize(:null), CIM::Type.normalize(CIM::Type.new(:null))
25
- end
26
- def test_matches
27
- assert CIM::Type.new(:null).matches? nil
28
- assert CIM::Type.new(:uint64).matches? 1
29
- assert CIM::Type.new(:uint64).matches? Integer
30
- assert CIM::Type.new(:real32).matches? 3.1415
31
- assert CIM::Type.new(:string).matches? String
32
- end
33
- end