#each added, Rakefile modified for gems, README -> README.md

master
Denis Knauf 2010-04-04 02:07:59 +02:00
parent 911e513d44
commit 42ac14e09d
4 changed files with 103 additions and 1583 deletions

View File

@ -1,11 +1,17 @@
Description
===========
lircr (pronounced 'lurker') is a LIRC client library for Ruby. It's simple, lircr (pronounced 'lurker') is a LIRC client library for Ruby. It's simple,
it's easy, it's fun. If you got LIRC, get lircr. I am not responsible if you it's easy, it's fun. If you got LIRC, get lircr. I am not responsible if you
grow more hair on your index finger or thumb. grow more hair on your index finger or thumb.
require 'lirc' Usage
lirc = LIRC::Client.new =====
event = lirc.next
p event require 'lirc'
if event.name == "play" lirc = LIRC::Client.new
system "xmms", "/av/music/3.mod" event = lirc.next
end p event
if event.name == "play"
system "xmms", "/av/music/3.mod"
end

View File

@ -1,4 +1,57 @@
require 'rake/testtask' require 'rubygems'
require 'rake'
Rake::TestTask.new do |t| begin
require 'jeweler'
Jeweler::Tasks.new do |gem|
gem.name = "lircr"
gem.summary = %Q{LIRC client for Ruby}
gem.description = %Q{}
gem.email = "Denis.Knauf@gmail.com"
gem.homepage = "http://github.com/DenisKnauf/logan"
gem.authors = ["Denis Knauf", "Hans Fugal"]
gem.files = %w[AUTHORS README.md VERSION lib/**/*.rb test/**/*.rb]
gem.require_paths = %w[test lib]
end
Jeweler::GemcutterTasks.new
rescue LoadError
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
end
require 'rake/testtask'
Rake::TestTask.new(:test) do |test|
test.libs << 'lib' << 'test' << 'ext'
test.pattern = 'test/**/*_test.rb'
test.verbose = true
end
begin
require 'rcov/rcovtask'
Rcov::RcovTask.new do |test|
test.libs << 'test'
test.pattern = 'test/**/*_test.rb'
test.verbose = true
end
rescue LoadError
task :rcov do
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
end
end
task :test => :check_dependencies
task :default => :test
require 'rake/rdoctask'
Rake::RDocTask.new do |rdoc|
if File.exist?('VERSION')
version = File.read('VERSION')
else
version = ""
end
rdoc.rdoc_dir = 'rdoc'
rdoc.title = "sbdb #{version}"
rdoc.rdoc_files.include('README*')
rdoc.rdoc_files.include('lib/**/*.rb')
end end

View File

@ -1,26 +1,38 @@
require 'socket' require 'socket'
module LIRC module LIRC
class Client class Client
def initialize(dev="/dev/lircd") def initializer dev = nil
@sock = UNIXSocket.open(dev) dev ||= "/dev/lircd"
end @sock = UNIXSocket.open dev
def next end
Event.new(@sock.readline)
end def next
end Event.new @sock.readline
class Event end
attr_reader :code, :repeat, :name, :remote
def initialize(str) def each_event
code, repeat, @name, @remote = str.split(' ', 4) return Enumerator.new( self, :each_event) unless block_given?
@code = code.hex loop { yield self.next }
@repeat = repeat.hex end
end alias each each_event
def repeat? end
@repeat > 0
end class Event
def to_s attr_reader :code, :repeat, :name, :remote
sprintf("%016x %02x %s %s", @code, @repeat, @name, @remote)
end def initialize str
end code, repeat, @name, @remote = str.split(' ', 4)
@code = code.hex
@repeat = repeat.hex
end
def repeat?
@repeat > 0
end
def to_s
"%016x %02x %s %s" % [@code, @repeat, @name, @remote]
end
end
end end

1551
setup.rb

File diff suppressed because it is too large Load Diff