Returns full path to the directory where gem’s extensions are installed.
Returns path to the extensions directory.
Count the number of gemspecs in the list specs
that are not in ignored
.
Builds extensions. Valid types of extensions are extconf.rb files, configure scripts and rakefiles or mkrf_conf files.
Creates an installer for spec
that will install into gem_home
. If user
is true a user-install will be performed.
This is ported over from the yaml_tree in 1.9.3
True if version
satisfies this Requirement
.
Issues a warning for each file to be packaged which is world-readable.
Implementation for Specification#validate_permissions
Creates a spec with name
, version
. deps
can specify the dependency or a block
can be given for full customization of the specification.
Creates a gem with name
, version
and deps
. The specification will be yielded before gem creation for customization. The gem will be placed in File.join @tempdir, 'gems'
. The specification and .gem file location are returned.
Gzips data
.
Deflates data
Display a warning on stderr. Will ask question
if it is not nil.
Returns an Array
of the path split on ‘/’.
Private method to cleanup dn
from using the path
component attribute.
Private method to cleanup attributes
, scope
, filter
, and extensions
from using the query
component attribute.
Private setter for extensions val
.
Reads the file from pathname, then parses it like ::parse
, returning the root node of the abstract syntax tree.
SyntaxError
is raised if pathname’s contents are not valid Ruby syntax.
RubyVM::AbstractSyntaxTree.parse_file("my-app/app.rb") # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-31:3>
Parses a C prototype signature
If Hash
tymap
is provided, the return value and the arguments from the signature
are expected to be keys, and the value will be the C type to be looked up.
Example:
require 'fiddle/import' include Fiddle::CParser #=> Object parse_signature('double sum(double, double)') #=> ["sum", Fiddle::TYPE_DOUBLE, [Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]] parse_signature('void update(void (*cb)(int code))') #=> ["update", Fiddle::TYPE_VOID, [Fiddle::TYPE_VOIDP]] parse_signature('char (*getbuffer(void))[80]') #=> ["getbuffer", Fiddle::TYPE_VOIDP, []]
Given a String
of C type ty
, returns the corresponding Fiddle
constant.
ty
can also accept an Array
of C type Strings, and will be returned in a corresponding Array
.
If Hash
tymap
is provided, ty
is expected to be the key, and the value will be the C type to be looked up.
Example:
require 'fiddle/import' include Fiddle::CParser #=> Object parse_ctype('int') #=> Fiddle::TYPE_INT parse_ctype('double diff') #=> Fiddle::TYPE_DOUBLE parse_ctype('unsigned char byte') #=> -Fiddle::TYPE_CHAR parse_ctype('const char* const argv[]') #=> -Fiddle::TYPE_VOIDP