summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2013-12-31 10:16:30 -0600
committerLamont Granquist <lamont@scriptkiddie.org>2013-12-31 10:16:30 -0600
commit18c88157be17f04cbd3f53edc9377eb57a46888c (patch)
tree5bdffc0a1b73314f213455e735fd926589eda1a7 /lib
parent8226eab6e1127f030ad304c0f297e0f0d79572da (diff)
downloadffi-yajl-18c88157be17f04cbd3f53edc9377eb57a46888c.tar.gz
reorganization of ext-vs-ffi
cleanup ext-vs-ffi logic, require 'ffi_yajl/ffi' and 'ffi_yajl/ext' should work now
Diffstat (limited to 'lib')
-rw-r--r--lib/ffi_yajl.rb19
-rw-r--r--lib/ffi_yajl/encoder.rb19
-rw-r--r--lib/ffi_yajl/ext.rb17
-rw-r--r--lib/ffi_yajl/ffi.rb18
-rw-r--r--lib/ffi_yajl/parser.rb18
5 files changed, 45 insertions, 46 deletions
diff --git a/lib/ffi_yajl.rb b/lib/ffi_yajl.rb
index 0f906b6..ea900bc 100644
--- a/lib/ffi_yajl.rb
+++ b/lib/ffi_yajl.rb
@@ -1,10 +1,13 @@
-require 'rubygems'
-require 'ffi_yajl/encoder'
-require 'ffi_yajl/parser'
-
-module FFI_Yajl
- class ParseError < StandardError; end
- class EncodeError < StandardError; end
+if ENV['FORCE_FFI_YAJL'] == "ext"
+ require 'ffi_yajl/ext'
+elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl)
+ # on Linux yajl-ruby and non-FFI ffi_yajl conflict
+ require 'ffi_yajl/ffi'
+else
+ begin
+ require 'ffi_yajl/ext'
+ rescue LoadError
+ require 'ffi_yajl/ffi'
+ end
end
-
diff --git a/lib/ffi_yajl/encoder.rb b/lib/ffi_yajl/encoder.rb
index f742741..8b5bfcb 100644
--- a/lib/ffi_yajl/encoder.rb
+++ b/lib/ffi_yajl/encoder.rb
@@ -1,5 +1,6 @@
module FFI_Yajl
+ class EncodeError < StandardError; end
class Encoder
attr_accessor :opts
@@ -48,23 +49,5 @@ module FFI_Yajl
raise FFI_Yajl::EncodeError, "Unknown YAJL Error, please report this as a bug"
end
end
-
- if ENV['FORCE_FFI_YAJL'] == "ext"
- require 'ffi_yajl/ext/encoder'
- include FFI_Yajl::Ext::Encoder
- elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl)
- # on Linux yajl-ruby and non-FFI ffi_yajl conflict
- require 'ffi_yajl/ffi/encoder'
- include FFI_Yajl::FFI::Encoder
- else
- begin
- require 'ffi_yajl/ext/encoder'
- include FFI_Yajl::Ext::Encoder
- rescue LoadError
- require 'ffi_yajl/ffi/encoder'
- include FFI_Yajl::FFI::Encoder
- end
- end
-
end
end
diff --git a/lib/ffi_yajl/ext.rb b/lib/ffi_yajl/ext.rb
new file mode 100644
index 0000000..d8dac6e
--- /dev/null
+++ b/lib/ffi_yajl/ext.rb
@@ -0,0 +1,17 @@
+require 'rubygems'
+
+require 'ffi_yajl/encoder'
+require 'ffi_yajl/parser'
+
+module FFI_Yajl
+ class Parser
+ require 'ffi_yajl/ext/parser'
+ include FFI_Yajl::Ext::Parser
+ end
+
+ class Encoder
+ require 'ffi_yajl/ext/encoder'
+ include FFI_Yajl::Ext::Encoder
+ end
+end
+
diff --git a/lib/ffi_yajl/ffi.rb b/lib/ffi_yajl/ffi.rb
index 5940a27..bc782e5 100644
--- a/lib/ffi_yajl/ffi.rb
+++ b/lib/ffi_yajl/ffi.rb
@@ -1,8 +1,7 @@
-
+require 'rubygems'
require 'ffi'
-# FIXME move to FFI_Yajl::FFI
module FFI_Yajl
extend ::FFI::Library
@@ -112,6 +111,19 @@ module FFI_Yajl
# void yajl_gen_clear (yajl_gen hand)
attach_function :yajl_gen_clear, [:yajl_gen], :void
-
end
+require 'ffi_yajl/encoder'
+require 'ffi_yajl/parser'
+
+module FFI_Yajl
+ class Parser
+ require 'ffi_yajl/ffi/parser'
+ include FFI_Yajl::FFI::Parser
+ end
+
+ class Encoder
+ require 'ffi_yajl/ffi/encoder'
+ include FFI_Yajl::FFI::Encoder
+ end
+end
diff --git a/lib/ffi_yajl/parser.rb b/lib/ffi_yajl/parser.rb
index 33bb2c3..3c40a44 100644
--- a/lib/ffi_yajl/parser.rb
+++ b/lib/ffi_yajl/parser.rb
@@ -1,5 +1,6 @@
module FFI_Yajl
+ class ParseError < StandardError; end
class Parser
attr_accessor :opts
@@ -18,22 +19,5 @@ module FFI_Yajl
# call either the ext or ffi hook
do_yajl_parse(str, yajl_opts)
end
-
- if ENV['FORCE_FFI_YAJL'] == "ext"
- require 'ffi_yajl/ext/parser'
- include FFI_Yajl::Ext::Parser
- elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl)
- # on Linux yajl-ruby and non-FFI ffi_yajl conflict
- require 'ffi_yajl/ffi/parser'
- include FFI_Yajl::FFI::Parser
- else
- begin
- require 'ffi_yajl/ext/parser'
- include FFI_Yajl::Ext::Parser
- rescue LoadError
- require 'ffi_yajl/ffi/parser'
- include FFI_Yajl::FFI::Parser
- end
- end
end
end