Sha256: acf2cdda09366d03ef04f8df78dedd5f884a87213df079c6e5812098550afb14

Contents?: true

Size: 512 Bytes

Versions: 33

Compression:

Stored size: 512 Bytes

Contents

require 'ffi'
require 'ffi/tools/const_generator'

module Sysconf
  extend FFI::Library
  ffi_lib ["c"]

  fcg = FFI::ConstGenerator.new do |gen|
    gen.include 'unistd.h'

    %w[
    _SC_PAGE_SIZE
    _SC_VERSION
    ].each do |const|
      ruby_name = const.sub(/^_SC_/, '').downcase.to_sym
      gen.const(const, "%d", nil, ruby_name, &:to_i)
    end
  end

  CONF = enum(*fcg.constants.map{|_, const|
    [const.ruby_name, const.converted_value]
  }.flatten)

  attach_function :sysconf, [CONF], :long
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
liquid-ext-1.2.6 lib/liquid/sysconf.rb
liquid-ext-1.2.5 lib/liquid/sysconf.rb
liquid-ext-1.2.4 lib/liquid/sysconf.rb
liquid-ext-1.2.2 lib/liquid/sysconf.rb
liquid-ext-1.2.1 lib/liquid/sysconf.rb
liquid-ext-1.2.0 lib/liquid/sysconf.rb
liquid-ext-1.1.1 lib/liquid/sysconf.rb
liquid-ext-1.1.0 lib/liquid/sysconf.rb
liquid-ext-1.0.2 lib/liquid/sysconf.rb
liquid-ext-1.0.1 lib/liquid/sysconf.rb
liquid-ext-1.0.0 lib/liquid/sysconf.rb
madvertise-ext-0.9.7 lib/madvertise/sysconf.rb
madvertise-ext-0.9.6 lib/madvertise/sysconf.rb
madvertise-ext-0.9.5 lib/madvertise/sysconf.rb
madvertise-ext-0.9.4 lib/madvertise/sysconf.rb
madvertise-ext-0.9.3 lib/madvertise/sysconf.rb
madvertise-ext-0.9.2 lib/madvertise/sysconf.rb
madvertise-ext-0.9.1 lib/madvertise/sysconf.rb
madvertise-ext-0.9.0 lib/madvertise/sysconf.rb
madvertise-ext-0.8.0 lib/madvertise/sysconf.rb