Skip to content

Commit

Permalink
Fixes for the new version of FFI
Browse files Browse the repository at this point in the history
MemoryPointer.new { ... } returns self, also it got namespaced into FFI::MemoryPointer
  • Loading branch information
libc committed Jun 7, 2009
1 parent bfcb2db commit 6f7bd79
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 21 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
@@ -1,3 +1,4 @@
v0.1.1. Fixes for new version of FFI gem
v0.1.0. Clean class method.
v0.0.4. Options validation
v0.0.3. Add method “errors” to return errors after cleanup
Expand Down
3 changes: 2 additions & 1 deletion Rakefile
Expand Up @@ -5,9 +5,10 @@ begin
p.author = 'Eugene Pimenov'
p.summary = 'Tidy library interface via FFI'
p.url = 'http://github.com/libc/tidy_ffi'
p.runtime_dependencies = ['ffi >= 0.2.0']
p.runtime_dependencies = ['ffi >=0.3.5']
# p.development_dependencies = ['rr', 'matchy', 'context']
p.project = 'tidy-ffi'
p.email = 'libc@libc.st'
p.rdoc_pattern = /^(lib|bin|tasks|ext)|^README\.rdoc|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
p.retain_gemspec = true
end
Expand Down
22 changes: 11 additions & 11 deletions lib/tidy_ffi/interface.rb
Expand Up @@ -90,24 +90,24 @@ class <<self
#
# Some tidy options might try to trespass as integer, and in order to caught
# perpertraitors we need to call tidyOptGetPickList
def pic_list_for(opt)
def pick_list_for(opt)
iterator = LibTidy.tidyOptGetPickList(opt)

return nil if iterator.null?

pic_list = []
pick_list = []

MemoryPointer.new(:pointer) do |pointer|
FFI::MemoryPointer.new(:pointer, 1) do |pointer|
pointer.put_pointer(0, iterator)
until iterator.null?
pic_list << LibTidy.tidyOptGetNextPick(opt, pointer)
pick_list << LibTidy.tidyOptGetNextPick(opt, pointer)
iterator = pointer.get_pointer(0)
end
end

pic_list
pick_list
end
private :pic_list_for
private :pick_list_for

# Loads default options.
def load_default_options
Expand All @@ -118,7 +118,7 @@ def load_default_options

@default_options = {}

MemoryPointer.new(:pointer) do |pointer|
FFI::MemoryPointer.new(:pointer, 1) do |pointer|
pointer.put_pointer(0, iterator)

until iterator.null?
Expand All @@ -133,10 +133,10 @@ def load_default_options
when :string
(LibTidy.tidyOptGetDefault(opt) rescue "")
when :integer
if pic_list = pic_list_for(opt)
if pick_list = pick_list_for(opt)
option[:type] = :enum
option[:values] = pic_list
pic_list[LibTidy.tidyOptGetDefaultInt(opt)]
option[:values] = pick_list
pick_list[LibTidy.tidyOptGetDefaultInt(opt)]
else
LibTidy.tidyOptGetDefaultInt(opt)
end
Expand All @@ -149,8 +149,8 @@ def load_default_options
iterator = pointer.get_pointer(0)
end

@default_options.freeze
end
@default_options.freeze
ensure
LibTidy.tidyRelease(doc)
end
Expand Down
17 changes: 8 additions & 9 deletions tidy_ffi.gemspec
Expand Up @@ -2,34 +2,33 @@

Gem::Specification.new do |s|
s.name = %q{tidy_ffi}
s.version = "0.1.0"
s.version = "0.1.1"

s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
s.authors = ["Eugene Pimenov"]
s.date = %q{2009-03-16}
s.date = %q{2009-06-07}
s.description = %q{Tidy library interface via FFI}
s.email = %q{}
s.email = %q{libc@libc.st}
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "lib/tidy_ffi/interface.rb", "lib/tidy_ffi/lib_tidy.rb", "lib/tidy_ffi/options_container.rb", "lib/tidy_ffi/tidy.rb", "lib/tidy_ffi/tidy_ffi_extensions.rb", "lib/tidy_ffi.rb"]
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "lib/tidy_ffi/interface.rb", "lib/tidy_ffi/lib_tidy.rb", "lib/tidy_ffi/options_container.rb", "lib/tidy_ffi/tidy.rb", "lib/tidy_ffi/tidy_ffi_extensions.rb", "lib/tidy_ffi.rb", "test/test_helper.rb", "test/test_lowlevel.rb", "test/test_options.rb", "test/test_simple.rb", "tidy_ffi.gemspec"]
s.has_rdoc = true
s.homepage = %q{http://github.com/libc/tidy_ffi}
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Tidy_ffi", "--main", "README.rdoc"]
s.require_paths = ["lib"]
s.rubyforge_project = %q{tidy-ffi}
s.rubygems_version = %q{1.3.1}
s.rubygems_version = %q{1.3.4}
s.summary = %q{Tidy library interface via FFI}
s.test_files = ["test/test_helper.rb", "test/test_lowlevel.rb", "test/test_options.rb", "test/test_simple.rb"]

if s.respond_to? :specification_version then
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
s.specification_version = 2
s.specification_version = 3

if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<ffi>, [">= 0", "= 0.2.0"])
s.add_runtime_dependency(%q<ffi>, [">= 0.3.5"])
else
s.add_dependency(%q<ffi>, [">= 0", "= 0.2.0"])
s.add_dependency(%q<ffi>, [">= 0.3.5"])
end
else
s.add_dependency(%q<ffi>, [">= 0", "= 0.2.0"])
s.add_dependency(%q<ffi>, [">= 0.3.5"])
end
end

0 comments on commit 6f7bd79

Please sign in to comment.