From 6c554a4c38ac8597c66d28a7d4ec34a6946a8146 Mon Sep 17 00:00:00 2001 From: Adam Edwards Date: Tue, 13 May 2014 11:23:54 -0700 Subject: Remove underscore in favor of hyphen in naming --- lib/wmi-lite/version.rb | 3 ++ lib/wmi-lite/wmi.rb | 68 ++++++++++++++++++++++++++++++++++++++++++++ lib/wmi-lite/wmi_instance.rb | 48 +++++++++++++++++++++++++++++++ lib/wmi_lite/version.rb | 3 -- lib/wmi_lite/wmi.rb | 68 -------------------------------------------- lib/wmi_lite/wmi_instance.rb | 48 ------------------------------- spec/spec_helper.rb | 4 +-- wmi-lite.gemspec | 2 +- 8 files changed, 122 insertions(+), 122 deletions(-) create mode 100644 lib/wmi-lite/version.rb create mode 100644 lib/wmi-lite/wmi.rb create mode 100644 lib/wmi-lite/wmi_instance.rb delete mode 100644 lib/wmi_lite/version.rb delete mode 100644 lib/wmi_lite/wmi.rb delete mode 100644 lib/wmi_lite/wmi_instance.rb diff --git a/lib/wmi-lite/version.rb b/lib/wmi-lite/version.rb new file mode 100644 index 0000000..3c743f7 --- /dev/null +++ b/lib/wmi-lite/version.rb @@ -0,0 +1,3 @@ +module WmiLite + VERSION = '0.1.0' +end diff --git a/lib/wmi-lite/wmi.rb b/lib/wmi-lite/wmi.rb new file mode 100644 index 0000000..57c1ab2 --- /dev/null +++ b/lib/wmi-lite/wmi.rb @@ -0,0 +1,68 @@ +# +# Author:: Adam Edwards () +# Copyright:: Copyright 2014 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'win32ole' if RUBY_PLATFORM =~ /mswin|mingw32|windows/ + +module WmiLite + class Wmi + def initialize(namespace = nil) + @connection = new_connection(namespace.nil? ? 'root/cimv2' : namespace) + end + + def query(wql_query) + results = start_query(wql_query) + + result_set = [] + + results.each do | result | + result_set.push(wmi_result_to_snapshot(result)) + end + + result_set + end + + def instances_of(wmi_class) + query("select * from #{wmi_class}") + end + + def first_of(wmi_class) + query_result = start_query("select * from #{wmi_class}") + first_result = nil + query_result.each do | record | + first_result = record + break + end + first_result.nil? ? nil : wmi_result_to_snapshot(first_result) + end + + private + + def start_query(wql_query) + @connection.ExecQuery(wql_query) + end + + def new_connection(namespace) + locator = WIN32OLE.new("WbemScripting.SWbemLocator") + locator.ConnectServer('.', namespace) + end + + def wmi_result_to_snapshot(wmi_object) + snapshot = Instance.new(wmi_object) + end + end +end diff --git a/lib/wmi-lite/wmi_instance.rb b/lib/wmi-lite/wmi_instance.rb new file mode 100644 index 0000000..88228c7 --- /dev/null +++ b/lib/wmi-lite/wmi_instance.rb @@ -0,0 +1,48 @@ +# +# Author:: Adam Edwards () +# Copyright:: Copyright 2014 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +module WmiLite + class Wmi + class Instance + + attr_reader :wmi_ole_object + + def initialize(wmi_ole_object) + @wmi_ole_object = wmi_ole_object + @property_map = self.class.wmi_ole_object_to_hash(wmi_ole_object) + end + + def [](key) + @property_map[key] + end + + private + + def self.wmi_ole_object_to_hash(wmi_object) + property_map = {} + wmi_object.properties_.each do |property| + property_map[property.name.downcase] = wmi_object.invoke(property.name) + end + + @wmi_ole_object = wmi_object + + property_map.freeze + end + + end + end +end diff --git a/lib/wmi_lite/version.rb b/lib/wmi_lite/version.rb deleted file mode 100644 index 3c743f7..0000000 --- a/lib/wmi_lite/version.rb +++ /dev/null @@ -1,3 +0,0 @@ -module WmiLite - VERSION = '0.1.0' -end diff --git a/lib/wmi_lite/wmi.rb b/lib/wmi_lite/wmi.rb deleted file mode 100644 index 57c1ab2..0000000 --- a/lib/wmi_lite/wmi.rb +++ /dev/null @@ -1,68 +0,0 @@ -# -# Author:: Adam Edwards () -# Copyright:: Copyright 2014 Chef Software, Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require 'win32ole' if RUBY_PLATFORM =~ /mswin|mingw32|windows/ - -module WmiLite - class Wmi - def initialize(namespace = nil) - @connection = new_connection(namespace.nil? ? 'root/cimv2' : namespace) - end - - def query(wql_query) - results = start_query(wql_query) - - result_set = [] - - results.each do | result | - result_set.push(wmi_result_to_snapshot(result)) - end - - result_set - end - - def instances_of(wmi_class) - query("select * from #{wmi_class}") - end - - def first_of(wmi_class) - query_result = start_query("select * from #{wmi_class}") - first_result = nil - query_result.each do | record | - first_result = record - break - end - first_result.nil? ? nil : wmi_result_to_snapshot(first_result) - end - - private - - def start_query(wql_query) - @connection.ExecQuery(wql_query) - end - - def new_connection(namespace) - locator = WIN32OLE.new("WbemScripting.SWbemLocator") - locator.ConnectServer('.', namespace) - end - - def wmi_result_to_snapshot(wmi_object) - snapshot = Instance.new(wmi_object) - end - end -end diff --git a/lib/wmi_lite/wmi_instance.rb b/lib/wmi_lite/wmi_instance.rb deleted file mode 100644 index 88228c7..0000000 --- a/lib/wmi_lite/wmi_instance.rb +++ /dev/null @@ -1,48 +0,0 @@ -# -# Author:: Adam Edwards () -# Copyright:: Copyright 2014 Chef Software, Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -module WmiLite - class Wmi - class Instance - - attr_reader :wmi_ole_object - - def initialize(wmi_ole_object) - @wmi_ole_object = wmi_ole_object - @property_map = self.class.wmi_ole_object_to_hash(wmi_ole_object) - end - - def [](key) - @property_map[key] - end - - private - - def self.wmi_ole_object_to_hash(wmi_object) - property_map = {} - wmi_object.properties_.each do |property| - property_map[property.name.downcase] = wmi_object.invoke(property.name) - end - - @wmi_ole_object = wmi_object - - property_map.freeze - end - - end - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1853d43..b773d8a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,5 @@ # $:.unshift File.expand_path('../../lib', __FILE__) require 'rspec' -require 'wmi_lite/wmi' -require 'wmi_lite/wmi_instance' +require 'wmi-lite/wmi' +require 'wmi-lite/wmi_instance' diff --git a/wmi-lite.gemspec b/wmi-lite.gemspec index 02aa320..3e6f60a 100644 --- a/wmi-lite.gemspec +++ b/wmi-lite.gemspec @@ -1,7 +1,7 @@ # coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'wmi_lite/version' +require 'wmi-lite/version' Gem::Specification.new do |spec| spec.name = 'wmi-lite' -- cgit v1.2.1