geoplot.
kdeplot
(df, projection=None, extent=None, figsize=(8, 6), ax=None, clip=None, **kwargs)¶Geographic kernel density estimate plot.
| Parameters: |
|
|---|---|
| Returns: | The axis object with the plot on it. |
| Return type: | AxesSubplot or GeoAxesSubplot instance |
Examples
Give it a dataset containing a geometry of shapely
Point
observations, and kdeplot
will return a
geospatial kernel density estimate plot
showing where they are.
A basic kdeplot
specified data and, optionally, a projection.
import geoplot as gplt
import geoplot.crs as gcrs
gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea())
However, kdeplots need additional geospatial context to be interpretable. In this case (and for the remainder of the examples) we will provide this by overlaying borough geometry.
ax = gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea())
gplt.polyplot(boroughs, projection=gcrs.AlbersEqualArea(), ax=ax)
Most of the rest of the parameters to kdeplot
are parameters inherited from the seaborn method by the same
name, on which this plot type is
based. For example, specifying shade=True
provides a filled KDE instead of a contour one:
ax = gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea(),
shade=True)
gplt.polyplot(boroughs, projection=gcrs.AlbersEqualArea(), ax=ax)
Use n_levels
to specify the number of contour levels.
ax = gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea(),
n_levels=30)
gplt.polyplot(boroughs, projection=gcrs.AlbersEqualArea(), ax=ax)
Or specify cmap
to change the colormap.
ax = gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea(),
cmap='Purples')
gplt.polyplot(boroughs, projection=gcrs.AlbersEqualArea(), ax=ax)
Oftentimes given the geometry of the location, a “regular” continuous KDEPlot doesn’t make sense. We can specify a
clip
of iterable geometries, which will be used to trim the kdeplot
(note: if you have set shade=True
as
a parameter you may need to additionally specify shade_lowest=False
to avoid inversion at the edges).
gplt.kdeplot(collisions, projection=gcrs.AlbersEqualArea(),
shade=True, clip=boroughs)


Contact information:
Name: Jonathan Lander
Phone:<PHONE_NUMBER>
Email<EMAIL_ADDRESS>Address: 27109 Route 66 Lucinda PA
Jonathan Lander
Hello, my name is Jonathan Lander, I am studying Computer Science at Clarion University of Pennsylvania and plan on graduating
in 2020. I hope to work with mobile devices such as smart phones. I've always found computers very interesting ever since elementary school
and with the popularity of smart phones I feel like mobile developement would be a great place to start.


Hi, I'm 18 years old, a brasilian IT student, live in Franca and studing on first semester at College(Uni-FACEF) .
I started learning how to make beats on my computer, but i needed to understand about artworks,
so my interaction with computer start learning Photoshop, editing some photos and drawing to use
on my beats channel, and to
make the video more interesting started using premiere-pro and after effects.
So i wanted to make a website to be my beats store. Searching more about how to make a website, this one give all
my attention, so i started learn HTML and PHP, following this line i unsderstood more about front-End and Back-End
so i'm studing a lot of Css and JavaScript, to be a very good front-End Developer, but i fall in love with
Algorithms, so i started study Python too, machine learning is a theme that is so insteresting and i realy want
do my bots.
Finally i'm searching on online courses, forums and the language library to obtain more knowledge and skills in the computing area.


--- layout: default title: Dossier hideFromNav: true ---
Photo
State map with dist
Malcolm Reynolds Independent, Vermont
Brief bio, info on why we are targeting this rep
call stats, other stats?
Contact info: phone # mailing address website/email twitter
Where they get their money from, voting history, etc.
upcoming events


WITNESS LIST Veteran Affairs & Military Installations Committee October 30, 2001 - 1:30P Disabled Purple Heart License Plate ON: Reilly, Patrick Veteran (Texas Association of Vietnam Veterans & Marine Corps League), Austin, TX HB 2125 ON: Anderson, David Managing Director (Texas Education Agency, Curriculum and Professional Development), Austin, TX Texas National Guard ON: Collins, Jill Executive Officer (Texas Air National Guard), Austin, TX Hamilton, Patrick Mobilization Readiness Officer (Texas Army National Guard), Austin, TX Marty, Wayne Assistant Adjutant General, Army (Adjutant General's Department), Austin, TX Smith, Michael Assistant Adjutant General, Air (Adjutant General's Department), Austin, TX Stanford, John State Liaison Officer (Adjutant General's Department), Austin, TX Texas National Guard and United Sta ON: Walston, Gary Ombudsman (Texas Committee for Employer Support for Guard and Reserves), San Antonio, TX Texas Veterans Commission ON: Nier, James Executive Director (Texas Veterans Commission), Austin, TX Texas Veterans Land Board ON: Martin, Rusty Director of Funds Management (Texas Veterans Land Board), Austin, TX Oldmixon, Douglas Executive Secretary (Texas Veterans Land Board), Austin, TX Veteran Services and SB 1159 ON: Carlson-Reed, Cassie Executive Director (Texas Workforce Commission), Austin, TX Olen, Mike Veteran Services Program Manager (Texas Workforce Commission), Austin, TX


OpenUrl CrossRef human metapopulation epidemic mobility Wang disease model network networks. Science Web pandemic Sci networked infectious transmission complex spreading Abstract FREE Text contact spatial Phys Rev dynamics global influenza networks threshold Zhang subpopulations individuals Rep, data patterns study commuting models Med, population transportation Vespignani impact individual new spread Colizza invasion large-scale travel Acad Natl New Phys, Press, Proc Science, USA, University compartment dynamical effect emerging evolution heterogeneous scaling social Lett, different diseases. modeling number rate recent scenario systems Balcan Chen Epidemic York: air analysis applied diffusion empirical infected infection outbreak patterns. (eds). Nature, analyze connected contacts large location-specific mathematical networks: processes response studies time traffic worldwide Fig. Hong IEEE Influenza Liu Nat One, Pastor-Satorras Section basic characteristic computational contagion diseases distribution dynamics. e.g., epidemiology epidemiology, example, features geographic heterogeneity high-level intervention key law outbreaks. performance populations public random rates subpopulations. theoretical typical (HN) (e.g., Brockmann Heaps’ Human Modeling Recent SIS Theor United Zipf’s according airline approach behavior control degree developed diverse emergence factors findings model. models, network, networks, obtained potential presence present process, reaction-commuting reaction-diffusion relevant research respectively. scale-free small strategies structure studied subpopulation theory topological unraveled urban using (a) (b) ;<;div A(HN) Available: Barabási Barrat Barthélemy Biol, Biosci, Cambridge Chaos, Color Download Engl Evolution Ferguson Kong Leung Math Mod Networks. Open Research SIR Statistical Trans antiviral application commuters containment criticality crucial data-hide-link-title=""> data-icon-position="" decreased destination-driven development diseases, diseases: effectiveness epidemics evaluating feasibility figure health homogeneous illustrate including individuals. induces infrastructures interactive international laws limited local locations long-range mobility. models. novel online<;/em>;) online) origin-driven pattern phenomena populations. predictability presents process recovered recovery recurrent reproductive resistance small-world spatially specific strategies. support systems, tab threshold, transitions transmitted types understanding usually valuable viruses visited xmlns=";http://www.w.org//xhtml";>;(<;em>;Color


Moderator: Joe M.
Joe M. wrote:Something like that, yes. It's gonna be awesome!
Return to Evidyon Alpha - Private
Users browsing this forum: No registered users and 1 guest


HomePage
Sign Up
Sign In
Sign Out
My Profile
Videos
FAQs
Contact Us
About us
Search
FitHub
CONQUER
{{result.organizationName}}
Announcements
{{announcement.body}}
Categories
GYM
Explore
Dance Classes
Explore
Personal Trainer
Explore
Yoga And Meditation
Explore
Crossfit
Explore
Martial Arts
Explore
Cardio
Explore
Other
Explore


Create New
No
Name
Email
Action
[[ $index + 1 ]]
[[ value.name ]]
[[ value.email ]]
Edit
Delete
×
Create User
Name :
Email :
Password :
Close
Submit
×
Edit User
Close
Submit


T
OUR
V
ID
Your travel
safety information guide
Search!
X
City Name
With an image
City information text
COVID-19 Information


bold
Click here to alert. Remember to add the 'unsafe-inline' directive in kibana.yml csp.rules property to accept inline JS
custom style


GOBS are quite similar in principle to DOOM WAD files, but at a higher level.
In fact, WADS directly contain the information or resources, but GOBS also contain complex files, themselves still containing multiple resources.
dark -umygob.gob is nearly equivalent to doom -file mywad.wad
You cannot however load multiple gobs in DF as you can load multiple wads in DOOM.


Kiran Bedi honours young numismatist from Nagercoil
Class 5 student has an impressive collection of coins
by Staff ReporterShe is a young numismatist from Kanniyakumari district with over 2,500 coins in her collection. Her dream is to become an IAS officer.
What is more, she was honoured by Puducherry Lieutenant Governor and former IPS officer Kiran Bedi on the occasion of Children’s Day this year.
A class 5 student of Mar Ivanios School in Kuzhithurai, Winny’s collection comprises international and Indian coins, some from the 1920s.
Rare coins such as one paisa (1917), two paisa (1920) and other old ones such as 10, 20 and 25 paisa coins are part of her collection.
She has also taken efforts to collect commemorative coins released in remembrance of leaders such as Jawaharlal Nehru, Netaji Subash Chandra Bose, Sardar Vallabhai Patel and Indira Gandhi.
Winny started her hobby at the age of five. “Whenever a relative comes from abroad, she insists on coins instead of gifts,” said her father Justin Antony.
She was invited to showcase her collection in Nagercoil and Puducherry.
Winny aims to become an IAS officer and wants to help the poor, adds her father.


public abstract class JAXBContext
extends java.lang.Object
JAXBContext
class provides the client's entry point to the
Jakarta XML Binding API. It provides an abstraction for managing the XML/Java binding
information necessary to implement the Jakarta XML Binding binding framework operations:
unmarshal, marshal and validate.
A client application normally obtains new instances of this class using one of these two styles for newInstance methods, although there are other specialized forms of the method available:
JAXBContext.newInstance( "com.acme.foo:com.acme.bar" )
JAXBContext.newInstance( com.acme.foo.Foo.class )
newInstance(Class...)
for details.
The following JAXB 1.0 requirement is only required for schema to
java interface/implementation binding. It does not apply to Jakarta XML Binding annotated
classes. Jakarta XML Binding Providers must generate a jaxb.properties
file in
each package containing schema derived classes. The property file must
contain a property named jakarta.xml.bind.context.factory
whose
value is the name of the class that implements the createContext
APIs.
The class supplied by the provider does not have to be assignable to
jakarta.xml.bind.JAXBContext
, it simply has to provide a class that
implements the createContext
APIs.
In addition, the provider must call the
DatatypeConverter.setDatatypeConverter
api prior to any client
invocations of the marshal and unmarshal methods. This is necessary to
configure the datatype converter that will be used during these operations.
The Unmarshaller
class provides the client application the ability
to convert XML data into a tree of Java content objects.
The unmarshal method allows for
any global XML element declared in the schema to be unmarshalled as
the root of an instance document.
Additionally, the unmarshal method allows for an unrecognized root element that
has an xsi:type attribute's value that references a type definition declared in
the schema to be unmarshalled as the root of an instance document.
The JAXBContext
object
allows the merging of global elements and type definitions across a set of schemas (listed
in the contextPath
). Since each schema in the schema set can belong
to distinct namespaces, the unification of schemas to an unmarshalling
context must be namespace independent. This means that a client
application is able to unmarshal XML documents that are instances of
any of the schemas listed in the contextPath
. For example:
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo:com.acme.bar" ); Unmarshaller u = jc.createUnmarshaller(); FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // ok BarObject barObj = (BarObject)u.unmarshal( new File( "bar.xml" ) ); // ok BazObject bazObj = (BazObject)u.unmarshal( new File( "baz.xml" ) ); // error, "com.acme.baz" not in contextPath
The client application may also generate Java content trees explicitly rather
than unmarshalling existing XML data. For all Jakarta XML Binding-annotated value classes,
an application can create content using constructors.
For schema-derived interface/implementation classes and for the
creation of elements that are not bound to a Jakarta XML Binding-annotated
class, an application needs to have access and knowledge about each of
the schema derived ObjectFactory
classes that exist in each of
java packages contained in the contextPath
. For each schema
derived java class, there is a static factory method that produces objects
of that type. For example,
assume that after compiling a schema, you have a package com.acme.foo
that contains a schema derived interface named PurchaseOrder
. In
order to create objects of that type, the client application would use the
factory method like this:
com.acme.foo.PurchaseOrder po = com.acme.foo.ObjectFactory.createPurchaseOrder();
Once the client application has an instance of the the schema derived object, it can use the mutator methods to set content on it.
For more information on the generated ObjectFactory
classes, see
Section 4.2 Java Package of the specification.
The provider must generate a class in each
package that contains all of the necessary object factory methods for that
package named ObjectFactory as well as the static
newInstance( javaContentInterface )
method
The Marshaller
class provides the client application the ability
to convert a Java content tree back into XML data. There is no difference
between marshalling a content tree that is created manually using the factory
methods and marshalling a content tree that is the result an unmarshal
operation. Clients can marshal a java content tree back to XML data
to a java.io.OutputStream
or a java.io.Writer
. The
marshalling process can alternatively produce SAX2 event streams to a
registered ContentHandler
or produce a DOM Node object.
Client applications have control over the output encoding as well as
whether or not to marshal the XML data as a complete document or
as a fragment.
Here is a simple example that unmarshals an XML document and then marshals it back out:
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" ); // unmarshal from foo.xml Unmarshaller u = jc.createUnmarshaller(); FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // marshal to System.out Marshaller m = jc.createMarshaller(); m.marshal( fooObj, System.out );
Validation has been changed significantly since JAXB 1.0. The Validator
class has been deprecated and made optional. This means that you are advised
not to use this class and, in fact, it may not even be available depending on
your Jakarta XML Binding provider. JAXB 1.0 client applications that rely on Validator
will still work properly when deployed with the JAXB 1.0 runtime system.
In Jakarta XML Binding, the Unmarshaller
has included convenience methods that expose
the JAXP 1.3 javax.xml.validation
framework. Please refer to the
Unmarshaller.setSchema(javax.xml.validation.Schema)
API for more
information.
The following JAXB 1.0 restriction only applies to binding schema to
interfaces/implementation classes.
Since this binding does not require a common runtime system, a Jakarta XML Binding
client application must not attempt to mix runtime objects (JAXBContext,
Marshaller
, etc. ) from different providers. This does not
mean that the client application isn't portable, it simply means that a
client has to use a runtime system provided by the same provider that was
used to compile the schema.
To create an instance of JAXBContext
, one of JAXBContext.newInstance(...)
methods is invoked. After
JAX-B implementation is discovered, call is delegated to appropriate provider's method createContext(...)
passing parameters from the original call.
JAX-B implementation discovery happens each time JAXBContext.newInstance
is invoked. If there is no user
specific configuration provided, default JAX-B provider must be returned.
Implementation discovery consists of following steps:
newInstance(java.lang.String)
method are processed in the order they are
specified, until jaxb.properties
file is looked up in its package, by using the associated classloader —
this is the owner class loader
for a Class
argument, and for a package
the specified ClassLoader
.
If such a resource is discovered, it is loaded
as a property file, and
the value of the JAXB_CONTEXT_FACTORY
key will be assumed to be the provider factory class. If no value
found, "jakarta.xml.bind.context.factory"
is used as a key for backwards compatibility reasons. This class is
then loaded by the associated class loader discussed above.
This phase of the look up allows some packages to force the use of a certain Jakarta XML Binding implementation. (For example, perhaps the schema compiler has generated some vendor extension in the code.)
This configuration method is deprecated.
JAXB_CONTEXT_FACTORY
exists, then its value is assumed to be the provider
factory class. If no such property exists, properties "jakarta.xml.bind.context.factory"
and
"jakarta.xml.bind.JAXBContext"
are checked too (in this order), for backwards compatibility reasons. This phase
of the look up enables per-JVM override of the Jakarta XML Binding implementation.
JAXBContextFactory
is loaded using the service-provider loading
facilities, defined by the ServiceLoader
class, to attempt
to locate and load an implementation of the service using the default loading mechanism: the service-provider loading facility
will use the current thread's context class loader
to attempt to load the context factory. If the context class loader is null, the
system class loader will be used.
service
configuration error
a JAXBException
will be thrown.
/META-INF/services/jakarta.xml.bind.JAXBContext
using provided class loader.
Methods without class loader parameter use Thread.currentThread().getContextClassLoader()
.
If such a resource exists, its content is assumed to be the provider factory class.
This configuration method is deprecated.
Once the provider factory class is discovered, context creation is delegated to one of its
createContext(...)
methods.
For backward compatibility reasons, there are two ways how to implement provider factory class:
JAXBContextFactory
. It must also implement no-arg
constructor. If discovered in other step then 3, new instance using no-arg constructor is created first.
After that, appropriate instance method is invoked on this instance.
public static JAXBContext createContext( String contextPath, ClassLoader classLoader, Map<String,Object> properties ) throws JAXBException public static JAXBContext createContext( Class[] classes, Map<String,Object> properties ) throws JAXBExceptionIn this scenario, appropriate static method is used instead of instance method. This approach is incompatible with
ServiceLoader
so it can't be used with step 3.
There is no difference in behavior of given method createContext(...)
regardless of whether it uses approach
1 (JAXBContextFactory) or 2 (no interface, static methods).
Marshaller
,
Unmarshaller
,
S 7.4.1 "Named Packages"
in Java Language Specification| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
JAXB_CONTEXT_FACTORY
The name of the property that contains the name of the class capable
of creating new
JAXBContext objects. |
| Modifier | Constructor and Description |
|---|---|
protected |
JAXBContext() |
| Modifier and Type | Method and Description |
|---|---|
Binder<org.w3c.dom.Node> |
createBinder()
Creates a
Binder for W3C DOM. |
<T> Binder<T> |
createBinder(java.lang.Class<T> domType)
Creates a
Binder object that can be used for
associative/in-place unmarshalling/marshalling. |
JAXBIntrospector |
createJAXBIntrospector()
Creates a
JAXBIntrospector object that can be used to
introspect Jakarta XML Binding objects. |
abstract Marshaller |
createMarshaller()
Create a
Marshaller object that can be used to convert a
java content tree into XML data. |
abstract Unmarshaller |
createUnmarshaller()
Create an
Unmarshaller object that can be used to convert XML
data into a java content tree. |
abstract Validator |
createValidator()
Deprecated.
since JAXB2.0
|
void |
generateSchema(SchemaOutputResolver outputResolver)
Generates the schema documents for this context.
|
static JAXBContext |
newInstance(java.lang.Class<?>... classesToBeBound)
Create a new instance of a
JAXBContext class. |
static JAXBContext |
newInstance(java.lang.Class<?>[] classesToBeBound,
java.util.Map<java.lang.String,?> properties)
Create a new instance of a
JAXBContext class. |
static JAXBContext |
newInstance(java.lang.String contextPath)
Create a new instance of a
JAXBContext class. |
static JAXBContext |
newInstance(java.lang.String contextPath,
java.lang.ClassLoader classLoader)
Create a new instance of a
JAXBContext class. |
static JAXBContext |
newInstance(java.lang.String contextPath,
java.lang.ClassLoader classLoader,
java.util.Map<java.lang.String,?> properties)
Create a new instance of a
JAXBContext class. |
public static final java.lang.String JAXB_CONTEXT_FACTORY
JAXBContext
objects.public static JAXBContext newInstance(java.lang.String contextPath) throws JAXBException
JAXBContext
class.
This is a convenience method to invoke the
newInstance(String,ClassLoader)
method with
the context class loader of the current thread.
JAXBException
- if an error was encountered while creating the
JAXBContext
such as
jakarta.xml.bind
modulepublic static JAXBContext newInstance(java.lang.String contextPath, java.lang.ClassLoader classLoader) throws JAXBException
JAXBContext
class.
The client application must supply a context path which is a list of
colon (':', \u003A) separated java package names that contain
schema-derived classes and/or fully qualified Jakarta XML Binding-annotated classes.
Schema-derived
code is registered with the JAXBContext by the
ObjectFactory.class generated per package.
Alternatively than being listed in the context path, programmer
annotated Jakarta XML Binding mapped classes can be listed in a
jaxb.index
resource file, format described below.
Note that a java package can contain both schema-derived classes and
user annotated Jakarta XML Binding classes. Additionally, the java package may
contain Jakarta XML Binding package annotations that must be processed. (see JLS,
Section 7.4.1 "Named Packages").
Every package listed on the contextPath must meet one or both of the
following conditions otherwise a JAXBException
will be thrown:
Format for jaxb.index
The file contains a newline-separated list of class names.
Space and tab characters, as well as blank
lines, are ignored. The comment character
is '#' (0x23); on each line all characters following the first comment
character are ignored. The file must be encoded in UTF-8. Classes that
are reachable, as defined in newInstance(Class...)
, from the
listed classes are also registered with JAXBContext.
Constraints on class name occuring in a jaxb.index
file are:
jaxb.index
file. Only classes occuring directly in package
containing jaxb.index
file are allowed.
To maintain compatibility with JAXB 1.0 schema to java
interface/implementation binding, enabled by schema customization
<jaxb:globalBindings valueClass="false">
,
the Jakarta XML Binding provider will ensure that each package on the context path
has a jaxb.properties
file which contains a value for the
jakarta.xml.bind.context.factory
property and that all values
resolve to the same provider. This requirement does not apply to
Jakarta XML Binding annotated classes.
If there are any global XML element name collisions across the various
packages listed on the contextPath
, a JAXBException
will be thrown.
Mixing generated interface/impl bindings from multiple Jakarta XML Binding Providers
in the same context path may result in a JAXBException
being thrown.
The steps involved in discovering the Jakarta XML Binding implementation is discussed in the class javadoc.
contextPath
- List of java package names that contain schema
derived class and/or java to schema (Jakarta XML Binding-annotated)
mapped classes.
Packages in contextPath
that are in named modules must be
open
to at least the jakarta.xml.bind
module.classLoader
- This class loader will be used to locate the implementation
classes.JAXBContext
JAXBException
- if an error was encountered while creating the
JAXBContext
such as
jakarta.xml.bind
modulepublic static JAXBContext newInstance(java.lang.String contextPath, java.lang.ClassLoader classLoader, java.util.Map<java.lang.String,?> properties) throws JAXBException
JAXBContext
class.
This is mostly the same as newInstance(String, ClassLoader)
,
but this version allows you to pass in provider-specific properties to configure
the instantiation of JAXBContext
.
The interpretation of properties is up to implementations. Implementations must
throw JAXBException
if it finds properties that it doesn't understand.
contextPath
- List of java package names that contain schema
derived class and/or java to schema (Jakarta XML Binding-annotated)
mapped classes.
Packages in contextPath
that are in named modules must be
open
to at least the jakarta.xml.bind
module.classLoader
- This class loader will be used to locate the implementation classes.properties
- provider-specific properties. Can be null, which means the same thing as passing
in an empty map.JAXBContext
JAXBException
- if an error was encountered while creating the
JAXBContext
such as
jakarta.xml.bind
modulepublic static JAXBContext newInstance(java.lang.Class<?>... classesToBeBound) throws JAXBException
JAXBContext
class.
The client application must supply a list of classes that the new
context object needs to recognize.
Not only the new context will recognize all the classes specified,
but it will also recognize any classes that are directly/indirectly
referenced statically from the specified classes. Subclasses of
referenced classes nor @XmlTransient
referenced classes
are not registered with JAXBContext.
For example, in the following Java code, if you do
newInstance(Foo.class)
, the newly created JAXBContext
will recognize both Foo
and Bar
, but not Zot
or FooBar
:
class Foo { @XmlTransient FooBar c; Bar b; } class Bar { int x; } class Zot extends Bar { int y; } class FooBar { }Therefore, a typical client application only needs to specify the top-level classes, but it needs to be careful.
Note that for each java package registered with JAXBContext, when the optional package annotations exist, they must be processed. (see JLS, Section 7.4.1 "Named Packages").
The steps involved in discovering the Jakarta XML Binding implementation is discussed in the class javadoc.
classesToBeBound
- List of java classes to be recognized by the new JAXBContext
.
Classes in classesToBeBound
that are in named modules must be in a package
that is open
to at least the jakarta.xml.bind
module.
Can be empty, in which case a JAXBContext
that only knows about
spec-defined classes will be returned.JAXBContext
.JAXBException
- if an error was encountered while creating the
JAXBContext
, such as (but not limited to):
classesToBeBound
are not open to jakarta.xml.bind
module
java.lang.IllegalArgumentException
- if the parameter contains null
(i.e., newInstance(null);
)public static JAXBContext newInstance(java.lang.Class<?>[] classesToBeBound, java.util.Map<java.lang.String,?> properties) throws JAXBException
JAXBContext
class.
An overloading of newInstance(Class...)
to configure 'properties' for this instantiation of JAXBContext
.
The interpretation of properties is up to implementations. Implementations must
throw JAXBException
if it finds properties that it doesn't understand.
classesToBeBound
- List of java classes to be recognized by the new JAXBContext
.
Classes in classesToBeBound
that are in named modules must be in a package
that is open
to at least the jakarta.xml.bind
module.
Can be empty, in which case a JAXBContext
that only knows about
spec-defined classes will be returned.properties
- provider-specific properties. Can be null, which means the same thing as passing
in an empty map.JAXBContext
.JAXBException
- if an error was encountered while creating the
JAXBContext
, such as (but not limited to):
classesToBeBound
are not open to jakarta.xml.bind
module
java.lang.IllegalArgumentException
- if the parameter contains null
(i.e., newInstance(null,someMap);
)public abstract Unmarshaller createUnmarshaller() throws JAXBException
Unmarshaller
object that can be used to convert XML
data into a java content tree.Unmarshaller
objectJAXBException
- if an error was encountered while creating the
Unmarshaller
objectpublic abstract Marshaller createMarshaller() throws JAXBException
Marshaller
object that can be used to convert a
java content tree into XML data.Marshaller
objectJAXBException
- if an error was encountered while creating the
Marshaller
object@Deprecated public abstract Validator createValidator() throws JAXBException
Validator
has been made optional and deprecated in Jakarta XML Binding. Please
refer to the javadoc for Validator
for more detail.
Create a Validator
object that can be used to validate a
java content tree against its source schema.
Validator
objectJAXBException
- if an error was encountered while creating the
Validator
objectpublic <T> Binder<T> createBinder(java.lang.Class<T> domType)
Binder
object that can be used for
associative/in-place unmarshalling/marshalling.domType
- select the DOM API to use by passing in its DOM Node class.Binder
object.java.lang.UnsupportedOperationException
- if DOM API corresponding to domType
is not supported by
the implementation.public Binder<org.w3c.dom.Node> createBinder()
Binder
for W3C DOM.Binder
object.public JAXBIntrospector createJAXBIntrospector()
JAXBIntrospector
object that can be used to
introspect Jakarta XML Binding objects.JAXBIntrospector
object.java.lang.UnsupportedOperationException
- Calling this method on JAXB 1.0 implementations will throw
an UnsupportedOperationException.public void generateSchema(SchemaOutputResolver outputResolver) throws java.io.IOException
outputResolver
- this object controls the output to which schemas
will be sent.java.io.IOException
- if SchemaOutputResolver
throws an IOException
.java.lang.UnsupportedOperationException
- Calling this method on JAXB 1.0 implementations will throw
an UnsupportedOperationException.


SC orders status quo on appointment of principals
Former CJ told not to constitute panel
by Legal CorrespondentThe Supreme Court has passed an interim order restraining former Chief Justice of Jammu and Kashmir High Court N. Paul Vasanthakumar from proceeding with the constitution of a selection committee to appoint principals of constituent colleges administered by Pachaiyappa’s Trust Board.
A Bench of Justices D.Y. Chandrachud and Hrishikesh Roy ordered maintenance of status quo till the next date of hearing of an appeal preferred by the college principal N. Shettu and directed the Supreme Court Registry to issue notices, returnable by six weeks, to all respondents in the case.
A single judge of the Madras High Court in April found fault with the procedure followed for selection of principals for constituent colleges by the previous office-bearers and directed retired High Court judge P. Shanmugam, who had been appointed as Interim Administrator of the Trust, to lodge a police complaint if necessary.
New selection panel
When the verdict was taken on appeal, a Division Bench of the High Court confirmed the single judge’s order last month and had requested Vasanthakumar to constitute a fresh selection committee for the appointment of principals.
It was this verdict that had been taken on appeal now to the Supreme Court.


Signed in to request access
Request access
At the moment the is just a closed beta, probably forever.
But if you know the developer, perhaps you will get access.
First step is to request access which means the user is created in the database without rights.
Your have requested the access
You can just wait and drop the admins a message.
Your user info:
Userrights: {{userInfo.rights}}


Language Coding Quiz
This quiz is designed for those that have just begun coding. It is a short quiz, and you will be timed! Try to complete it quickly without making any mistakes, and get your name on the highscores!
Begin!


MakeString is a simple utility, it converts a text file into a file with C-string, which match the content of the original file.
CCore-MakeString <input-file> <output-file> CCore-MakeString -s <input-file> <output-file>
If you specify the option -s, C-style comments will be stripped from the result.
The output looks like
"\n" "int Version = 1 ;\n" "\n" " \n" "\n" "type Bool = uint8 ;\n" "\n" "Bool True = 1 ;\n" "\n" "Bool False = 0 ;\n" "\n" "type VColor = uint32 ;\n" "\n" "VColor NoColor = 0FFFFFFFFh ;\n" "\n" "type Coord = sint32 ;\n" "\n" "struct Point\n" " {\n" " Coord x;\n" " Coord y;\n" " };\n" " \n" "struct Ratio\n" " {\n" " Coord a;\n" " Coord b;\n" " }; \n" "\n" " \n"


module FileUtils
fileutils.rb¶ ↑
Copyright © 2000-2007 Minero Aoki
This program is free software. You can distribute/modify this program under the same terms of ruby.
module FileUtils
¶ ↑
Namespace for several file utility methods for copying, moving, removing, etc.
Module Functions¶ ↑
require 'fileutils' FileUtils.cd(dir, **options) FileUtils.cd(dir, **options) {|dir| block } FileUtils.pwd() FileUtils.mkdir(dir, **options) FileUtils.mkdir(list, **options) FileUtils.mkdir_p(dir, **options) FileUtils.mkdir_p(list, **options) FileUtils.rmdir(dir, **options) FileUtils.rmdir(list, **options) FileUtils.ln(target, link, **options) FileUtils.ln(targets, dir, **options) FileUtils.ln_s(target, link, **options) FileUtils.ln_s(targets, dir, **options) FileUtils.ln_sf(target, link, **options) FileUtils.cp(src, dest, **options) FileUtils.cp(list, dir, **options) FileUtils.cp_r(src, dest, **options) FileUtils.cp_r(list, dir, **options) FileUtils.mv(src, dest, **options) FileUtils.mv(list, dir, **options) FileUtils.rm(list, **options) FileUtils.rm_r(list, **options) FileUtils.rm_rf(list, **options) FileUtils.install(src, dest, **options) FileUtils.chmod(mode, list, **options) FileUtils.chmod_R(mode, list, **options) FileUtils.chown(user, group, list, **options) FileUtils.chown_R(user, group, list, **options) FileUtils.touch(list, **options)
Possible options
are:
:force
-
forced operation (rewrite files if exist, remove directories if not empty, etc.);
:verbose
-
print command to be run, in bash syntax, before performing it;
:preserve
-
preserve object's group, user and modification time on copying;
:noop
-
no changes are made (usable in combination with
:verbose
which will print the command to run)
Each method documents the options that it honours. See also ::commands
, ::options
and ::options_of
methods to introspect which command have which options.
All methods that have the concept of a “source” file or directory can take either one file or a list of files in that argument. See the method documentation for examples.
There are some `low level' methods, which do not accept keyword arguments:
FileUtils.copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) FileUtils.copy_file(src, dest, preserve = false, dereference = true) FileUtils.copy_stream(srcstream, deststream) FileUtils.remove_entry(path, force = false) FileUtils.remove_entry_secure(path, force = false) FileUtils.remove_file(path, force = false) FileUtils.compare_file(path_a, path_b) FileUtils.compare_stream(stream_a, stream_b) FileUtils.uptodate?(file, cmp_list)
module FileUtils::Verbose
¶ ↑
This module has all methods of FileUtils
module, but it outputs messages before acting. This equates to passing the :verbose
flag to methods in FileUtils
.
module FileUtils::NoWrite
¶ ↑
This module has all methods of FileUtils
module, but never changes files/directories. This equates to passing the :noop
flag to methods in FileUtils
.
module FileUtils::DryRun
¶ ↑
This module has all methods of FileUtils
module, but never changes files/directories. This equates to passing the :noop
and :verbose
flags to methods in FileUtils
.
Constants
- VERSION
Public Class Methods
Changes the current directory to the directory dir
.
If this method is called with block, resumes to the previous working directory after the block execution has finished.
FileUtils.cd('/') # change directory FileUtils.cd('/', verbose: true) # change directory and report it FileUtils.cd('/') do # change directory # ... # do something end # return to original directory
# File lib/fileutils.rb, line 137 def cd(dir, verbose: nil, &block) # :yield: dir fu_output_message "cd #{dir}" if verbose result = Dir.chdir(dir, &block) fu_output_message 'cd -' if verbose and block result end
Changes permission bits on the named files (in list
) to the bit pattern represented by mode
.
mode
is the symbolic and absolute mode can be used.
Absolute mode is
FileUtils.chmod 0755, 'somecommand' FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb) FileUtils.chmod 0755, '/usr/bin/ruby', verbose: true
Symbolic mode is
FileUtils.chmod "u=wrx,go=rx", 'somecommand' FileUtils.chmod "u=wr,go=rr", %w(my.rb your.rb his.rb her.rb) FileUtils.chmod "u=wrx,go=rx", '/usr/bin/ruby', verbose: true
- “a”
-
is user, group, other mask.
- “u”
-
is user's mask.
- “g”
-
is group's mask.
- “o”
-
is other's mask.
- “w”
-
is write permission.
- “r”
-
is read permission.
- “x”
-
is execute permission.
- “X”
-
is execute permission for directories only, must be used in conjunction with “+”
- “s”
-
is uid, gid.
- “t”
-
is sticky bit.
- “+”
-
is added to a class given the specified mode.
- “-”
-
Is removed from a given class given mode.
- “=”
-
Is the exact nature of the class will be given a specified mode.
# File lib/fileutils.rb, line 1012 def chmod(mode, list, noop: nil, verbose: nil) list = fu_list(list) fu_output_message sprintf('chmod %s %s', mode_to_s(mode), list.join(' ')) if verbose return if noop list.each do |path| Entry_.new(path).chmod(fu_mode(mode, path)) end end
Changes permission bits on the named files (in list
) to the bit pattern represented by mode
.
FileUtils.chmod_R 0700, "/tmp/app.#{$$}" FileUtils.chmod_R "u=wrx", "/tmp/app.#{$$}"
# File lib/fileutils.rb, line 1029 def chmod_R(mode, list, noop: nil, verbose: nil, force: nil) list = fu_list(list) fu_output_message sprintf('chmod -R%s %s %s', (force ? 'f' : ''), mode_to_s(mode), list.join(' ')) if verbose return if noop list.each do |root| Entry_.new(root).traverse do |ent| begin ent.chmod(fu_mode(mode, ent.path)) rescue raise unless force end end end end
Changes owner and group on the named files (in list
) to the user user
and the group group
. user
and group
may be an ID (Integer/String) or a name (String). If user
or group
is nil, this method does not change the attribute.
FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby' FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), verbose: true
# File lib/fileutils.rb, line 1057 def chown(user, group, list, noop: nil, verbose: nil) list = fu_list(list) fu_output_message sprintf('chown %s %s', (group ? "#{user}:#{group}" : user || ':'), list.join(' ')) if verbose return if noop uid = fu_get_uid(user) gid = fu_get_gid(group) list.each do |path| Entry_.new(path).chown uid, gid end end
Changes owner and group on the named files (in list
) to the user user
and the group group
recursively. user
and group
may be an ID (Integer/String) or a name (String). If user
or group
is nil, this method does not change the attribute.
FileUtils.chown_R 'www', 'www', '/var/www/htdocs' FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', verbose: true
# File lib/fileutils.rb, line 1081 def chown_R(user, group, list, noop: nil, verbose: nil, force: nil) list = fu_list(list) fu_output_message sprintf('chown -R%s %s %s', (force ? 'f' : ''), (group ? "#{user}:#{group}" : user || ':'), list.join(' ')) if verbose return if noop uid = fu_get_uid(user) gid = fu_get_gid(group) list.each do |root| Entry_.new(root).traverse do |ent| begin ent.chown uid, gid rescue raise unless force end end end end
Returns an Array of methods names which have the option opt
.
p FileUtils.collect_method(:preserve) #=> ["cp", "cp_r", "copy", "install"]
# File lib/fileutils.rb, line 1679 def self.collect_method(opt) OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) } end
Returns an Array of names of high-level methods that accept any keyword arguments.
p FileUtils.commands #=> ["chmod", "cp", "cp_r", "install", ...]
# File lib/fileutils.rb, line 1640 def self.commands OPT_TABLE.keys end
Returns true if the contents of a file a
and a file b
are identical.
FileUtils.compare_file('somefile', 'somefile') #=> true FileUtils.compare_file('/dev/null', '/dev/urandom') #=> false
# File lib/fileutils.rb, line 816 def compare_file(a, b) return false unless File.size(a) == File.size(b) File.open(a, 'rb') {|fa| File.open(b, 'rb') {|fb| return compare_stream(fa, fb) } } end
Returns true if the contents of a stream a
and b
are identical.
# File lib/fileutils.rb, line 834 def compare_stream(a, b) bsize = fu_stream_blksize(a, b) if RUBY_VERSION > "2.4" sa = String.new(capacity: bsize) sb = String.new(capacity: bsize) else sa = String.new sb = String.new end begin a.read(bsize, sa) b.read(bsize, sb) return true if sa.empty? && sb.empty? end while sa == sb false end
Copies a file system entry src
to dest
. If src
is a directory, this method copies its contents recursively. This method preserves file types, c.f. symlink, directory… (FIFO, device files and etc. are not supported yet)
Both of src
and dest
must be a path name. src
must exist, dest
must not exist.
If preserve
is true, this method preserves owner, group, and modified time. Permissions are copied regardless preserve
.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
# File lib/fileutils.rb, line 489 def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) if dereference_root src = File.realpath(src) end Entry_.new(src, nil, false).wrap_traverse(proc do |ent| destent = Entry_.new(dest, ent.rel, false) File.unlink destent.path if remove_destination && (File.file?(destent.path) || File.symlink?(destent.path)) ent.copy destent.path end, proc do |ent| destent = Entry_.new(dest, ent.rel, false) ent.copy_metadata destent.path if preserve end) end
Copies file contents of src
to dest
. Both of src
and dest
must be a path name.
# File lib/fileutils.rb, line 509 def copy_file(src, dest, preserve = false, dereference = true) ent = Entry_.new(src, nil, dereference) ent.copy_file dest ent.copy_metadata dest if preserve end
Copies stream src
to dest
. src
must respond to read(n) and dest
must respond to write(str).
# File lib/fileutils.rb, line 521 def copy_stream(src, dest) IO.copy_stream(src, dest) end
Copies a file content src
to dest
. If dest
is a directory, copies src
to dest/src
.
If src
is a list of files, then dest
must be a directory.
FileUtils.cp 'eval.c', 'eval.c.org' FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6' FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', verbose: true FileUtils.cp 'symlink', 'dest' # copy content, "dest" is not a symlink
# File lib/fileutils.rb, line 426 def cp(src, dest, preserve: nil, noop: nil, verbose: nil) fu_output_message "cp#{preserve ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| copy_file s, d, preserve end end
Hard link src
to dest
. If src
is a directory, this method links all its contents recursively. If dest
is a directory, links src
to dest/src
.
src
can be a list of files.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
FileUtils.rm_r site_ruby + '/mylib', force: true FileUtils.cp_lr 'lib/', site_ruby + '/mylib' # Examples of linking several files to target directory. FileUtils.cp_lr %w(mail.rb field.rb debug/), site_ruby + '/tmail' FileUtils.cp_lr Dir.glob('*.rb'), '/home/aamine/lib/ruby', noop: true, verbose: true # If you want to link all contents of a directory instead of the # directory itself, c.f. src/x -> dest/x, src/y -> dest/y, # use the following code. FileUtils.cp_lr 'src/.', 'dest' # cp_lr('src', 'dest') makes dest/src, but this doesn't.
# File lib/fileutils.rb, line 339 def cp_lr(src, dest, noop: nil, verbose: nil, dereference_root: true, remove_destination: false) fu_output_message "cp -lr#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| link_entry s, d, dereference_root, remove_destination end end
Copies src
to dest
. If src
is a directory, this method copies all its contents recursively. If dest
is a directory, copies src
to dest/src
.
src
can be a list of files.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
# Installing Ruby library "mylib" under the site_ruby FileUtils.rm_r site_ruby + '/mylib', force: true FileUtils.cp_r 'lib/', site_ruby + '/mylib' # Examples of copying several files to target directory. FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail' FileUtils.cp_r Dir.glob('*.rb'), '/home/foo/lib/ruby', noop: true, verbose: true # If you want to copy all contents of a directory instead of the # directory itself, c.f. src/x -> dest/x, src/y -> dest/y, # use following code. FileUtils.cp_r 'src/.', 'dest' # cp_r('src', 'dest') makes dest/src, # but this doesn't.
# File lib/fileutils.rb, line 463 def cp_r(src, dest, preserve: nil, noop: nil, verbose: nil, dereference_root: true, remove_destination: nil) fu_output_message "cp -r#{preserve ? 'p' : ''}#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| copy_entry s, d, preserve, dereference_root, remove_destination end end
Returns true if the method mid
have an option opt
.
p FileUtils.have_option?(:cp, :noop) #=> true p FileUtils.have_option?(:rm, :force) #=> true p FileUtils.have_option?(:rm, :preserve) #=> false
# File lib/fileutils.rb, line 1660 def self.have_option?(mid, opt) li = OPT_TABLE[mid.to_s] or raise ArgumentError, "no such method: #{mid}" li.include?(opt) end
If src
is not same as dest
, copies it and changes the permission mode to mode
. If dest
is a directory, destination is dest
/src
. This method removes destination before copy.
FileUtils.install 'ruby', '/usr/local/bin/ruby', mode: 0755, verbose: true FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', verbose: true
# File lib/fileutils.rb, line 862 def install(src, dest, mode: nil, owner: nil, group: nil, preserve: nil, noop: nil, verbose: nil) if verbose msg = +"install -c" msg << ' -p' if preserve msg << ' -m ' << mode_to_s(mode) if mode msg << " -o #{owner}" if owner msg << " -g #{group}" if group msg << ' ' << [src,dest].flatten.join(' ') fu_output_message msg end return if noop uid = fu_get_uid(owner) gid = fu_get_gid(group) fu_each_src_dest(src, dest) do |s, d| st = File.stat(s) unless File.exist?(d) and compare_file(s, d) remove_file d, true copy_file s, d File.utime st.atime, st.mtime, d if preserve File.chmod fu_mode(mode, st), d if mode File.chown uid, gid, d if uid or gid end end end
Hard links a file system entry src
to dest
. If src
is a directory, this method links its contents recursively.
Both of src
and dest
must be a path name. src
must exist, dest
must not exist.
If dereference_root
is true, this method dereferences the tree root.
If remove_destination
is true, this method removes each destination file before copy.
# File lib/fileutils.rb, line 406 def link_entry(src, dest, dereference_root = false, remove_destination = false) Entry_.new(src, nil, dereference_root).traverse do |ent| destent = Entry_.new(dest, ent.rel, false) File.unlink destent.path if remove_destination && File.file?(destent.path) ent.link destent.path end end
In the first form, creates a hard link link
which points to target
. If link
already exists, raises Errno::EEXIST. But if the force
option is set, overwrites link
.
FileUtils.ln 'gcc', 'cc', verbose: true FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'
In the second form, creates a link dir/target
pointing to target
. In the third form, creates several hard links in the directory dir
, pointing to each item in targets
. If dir
is not a directory, raises Errno::ENOTDIR.
FileUtils.cd '/sbin' FileUtils.ln %w(cp mv mkdir), '/bin' # Now /sbin/cp and /bin/cp are linked.
# File lib/fileutils.rb, line 303 def ln(src, dest, force: nil, noop: nil, verbose: nil) fu_output_message "ln#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| remove_file d, true if force File.link s, d end end
In the first form, creates a symbolic link link
which points to target
. If link
already exists, raises Errno::EEXIST. But if the force
option is set, overwrites link
.
FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby' FileUtils.ln_s 'verylongsourcefilename.c', 'c', force: true
In the second form, creates a link dir/target
pointing to target
. In the third form, creates several symbolic links in the directory dir
, pointing to each item in targets
. If dir
is not a directory, raises Errno::ENOTDIR.
FileUtils.ln_s Dir.glob('/bin/*.rb'), '/home/foo/bin'
# File lib/fileutils.rb, line 369 def ln_s(src, dest, force: nil, noop: nil, verbose: nil) fu_output_message "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| remove_file d, true if force File.symlink s, d end end
Same as
FileUtils.ln_s(*args, force: true)
# File lib/fileutils.rb, line 390 def ln_sf(src, dest, noop: nil, verbose: nil) ln_s src, dest, force: true, noop: noop, verbose: verbose end
Creates one or more directories.
FileUtils.mkdir 'test' FileUtils.mkdir %w(tmp data) FileUtils.mkdir 'notexist', noop: true # Does not really create. FileUtils.mkdir 'tmp', mode: 0700
# File lib/fileutils.rb, line 180 def mkdir(list, mode: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "mkdir #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose return if noop list.each do |dir| fu_mkdir dir, mode end end
Creates a directory and all its parent directories. For example,
FileUtils.mkdir_p '/usr/local/lib/ruby'
causes to make following directories, if they do not exist.
-
/usr
-
/usr/local
-
/usr/local/lib
-
/usr/local/lib/ruby
You can pass several directories at a time in a list.
# File lib/fileutils.rb, line 206 def mkdir_p(list, mode: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose return *list if noop list.map {|path| remove_trailing_slash(path)}.each do |path| # optimize for the most common case begin fu_mkdir path, mode next rescue SystemCallError next if File.directory?(path) end stack = [] until path == stack.last # dirname("/")=="/", dirname("C:/")=="C:/" stack.push path path = File.dirname(path) end stack.pop # root directory should exist stack.reverse_each do |dir| begin fu_mkdir dir, mode rescue SystemCallError raise unless File.directory?(dir) end end end return *list end
Moves file(s) src
to dest
. If file
and dest
exist on the different disk partition, the file is copied then the original file is removed.
FileUtils.mv 'badname.rb', 'goodname.rb' FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', force: true # no error FileUtils.mv %w(junk.txt dust.txt), '/home/foo/.trash/' FileUtils.mv Dir.glob('test*.rb'), 'test', noop: true, verbose: true
# File lib/fileutils.rb, line 536 def mv(src, dest, force: nil, noop: nil, verbose: nil, secure: nil) fu_output_message "mv#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| destent = Entry_.new(d, nil, true) begin if destent.exist? if destent.directory? raise Errno::EEXIST, d end end begin File.rename s, d rescue Errno::EXDEV, Errno::EPERM # move from unencrypted to encrypted dir (ext4) copy_entry s, d, true if secure remove_entry_secure s, force else remove_entry s, force end end rescue SystemCallError raise unless force end end end
Returns an Array of option names.
p FileUtils.options #=> ["noop", "force", "verbose", "preserve", "mode"]
# File lib/fileutils.rb, line 1649 def self.options OPT_TABLE.values.flatten.uniq.map {|sym| sym.to_s } end
Returns an Array of option names of the method mid
.
p FileUtils.options_of(:rm) #=> ["noop", "verbose", "force"]
# File lib/fileutils.rb, line 1670 def self.options_of(mid) OPT_TABLE[mid.to_s].map {|sym| sym.to_s } end
Returns the name of the current directory.
# File lib/fileutils.rb, line 115 def pwd Dir.pwd end
Removes a directory dir
and its contents recursively. This method ignores StandardError if force
is true.
# File lib/fileutils.rb, line 805 def remove_dir(path, force = false) remove_entry path, force # FIXME?? check if it is a directory end
This method removes a file system entry path
. path
might be a regular file, a directory, or something. If path
is a directory, remove it recursively.
See also remove_entry_secure.
# File lib/fileutils.rb, line 777 def remove_entry(path, force = false) Entry_.new(path).postorder_traverse do |ent| begin ent.remove rescue raise unless force end end rescue raise unless force end
This method removes a file system entry path
. path
shall be a regular file, a directory, or something. If path
is a directory, remove it recursively. This method is required to avoid TOCTTOU (time-of-check-to-time-of-use) local security vulnerability of rm_r. rm_r
causes security hole when:
-
Parent directory is world writable (including /tmp).
-
Removing directory tree includes world writable directory.
-
The system has symbolic link.
To avoid this security hole, this method applies special preprocess. If path
is a directory, this method chown(2) and chmod(2) all removing directories. This requires the current process is the owner of the removing whole directory tree, or is the super user (root).
WARNING: You must ensure that ALL parent directories cannot be moved by other untrusted users. For example, parent directories should not be owned by untrusted users, and should not be world writable except when the sticky bit set.
WARNING: Only the owner of the removing directory tree, or Unix super user (root) should invoke this method. Otherwise this method does not work.
For details of this security vulnerability, see Perl's case:
For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].
# File lib/fileutils.rb, line 684 def remove_entry_secure(path, force = false) unless fu_have_symlink? remove_entry path, force return end fullpath = File.expand_path(path) st = File.lstat(fullpath) unless st.directory? File.unlink fullpath return end # is a directory. parent_st = File.stat(File.dirname(fullpath)) unless parent_st.world_writable? remove_entry path, force return end unless parent_st.sticky? raise ArgumentError, "parent directory is world writable, FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})" end # freeze tree root euid = Process.euid dot_file = fullpath + "/." begin File.open(dot_file) {|f| unless fu_stat_identical_entry?(st, f.stat) # symlink (TOC-to-TOU attack?) File.unlink fullpath return end f.chown euid, -1 f.chmod 0700 } rescue Errno::EISDIR # JRuby in non-native mode can't open files as dirs File.lstat(dot_file).tap {|fstat| unless fu_stat_identical_entry?(st, fstat) # symlink (TOC-to-TOU attack?) File.unlink fullpath return end File.chown euid, -1, dot_file File.chmod 0700, dot_file } end unless fu_stat_identical_entry?(st, File.lstat(fullpath)) # TOC-to-TOU attack? File.unlink fullpath return end # ---- tree root is frozen ---- root = Entry_.new(path) root.preorder_traverse do |ent| if ent.directory? ent.chown euid, -1 ent.chmod 0700 end end root.postorder_traverse do |ent| begin ent.remove rescue raise unless force end end rescue raise unless force end
Removes a file path
. This method ignores StandardError if force
is true.
# File lib/fileutils.rb, line 794 def remove_file(path, force = false) Entry_.new(path).remove_file rescue raise unless force end
Remove file(s) specified in list
. This method cannot remove directories. All StandardErrors are ignored when the :force option is set.
FileUtils.rm %w( junk.txt dust.txt ) FileUtils.rm Dir.glob('*.so') FileUtils.rm 'NotExistFile', force: true # never raises exception
# File lib/fileutils.rb, line 576 def rm(list, force: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "rm#{force ? ' -f' : ''} #{list.join ' '}" if verbose return if noop list.each do |path| remove_file path, force end end
Equivalent to
FileUtils.rm(list, force: true)
# File lib/fileutils.rb, line 595 def rm_f(list, noop: nil, verbose: nil) rm list, force: true, noop: noop, verbose: verbose end
remove files list[0]
list[1]
… If list[n]
is a directory, removes its all contents recursively. This method ignores StandardError when :force option is set.
FileUtils.rm_r Dir.glob('/tmp/*') FileUtils.rm_r 'some_dir', force: true
WARNING: This method causes local vulnerability if one of parent directories or removing directory tree are world writable (including /tmp, whose permission is 1777), and the current process has strong privilege such as Unix super user (root), and the system has symbolic link. For secure removing, read the documentation of remove_entry_secure
carefully, and set :secure option to true. Default is secure: false
.
NOTE: This method calls remove_entry_secure
if :secure option is set. See also remove_entry_secure.
# File lib/fileutils.rb, line 622 def rm_r(list, force: nil, noop: nil, verbose: nil, secure: nil) list = fu_list(list) fu_output_message "rm -r#{force ? 'f' : ''} #{list.join ' '}" if verbose return if noop list.each do |path| if secure remove_entry_secure path, force else remove_entry path, force end end end
Equivalent to
FileUtils.rm_r(list, force: true)
WARNING: This method causes local vulnerability. Read the documentation of rm_r
first.
# File lib/fileutils.rb, line 644 def rm_rf(list, noop: nil, verbose: nil, secure: nil) rm_r list, force: true, noop: noop, verbose: verbose, secure: secure end
Removes one or more directories.
FileUtils.rmdir 'somedir' FileUtils.rmdir %w(somedir anydir otherdir) # Does not really remove directory; outputs message. FileUtils.rmdir 'somedir', verbose: true, noop: true
# File lib/fileutils.rb, line 263 def rmdir(list, parents: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if verbose return if noop list.each do |dir| Dir.rmdir(dir = remove_trailing_slash(dir)) if parents begin until (parent = File.dirname(dir)) == '.' or parent == dir dir = parent Dir.rmdir(dir) end rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT end end end end
Updates modification time (mtime) and access time (atime) of file(s) in list
. Files are created if they don't exist.
FileUtils.touch 'timestamp' FileUtils.touch Dir.glob('*.c'); system 'make'
# File lib/fileutils.rb, line 1137 def touch(list, noop: nil, verbose: nil, mtime: nil, nocreate: nil) list = fu_list(list) t = mtime if verbose fu_output_message "touch #{nocreate ? '-c ' : ''}#{t ? t.strftime('-t %Y%m%d%H%M.%S ') : ''}#{list.join ' '}" end return if noop list.each do |path| created = nocreate begin File.utime(t, t, path) rescue Errno::ENOENT raise if created File.open(path, 'a') { ; } created = true retry if t end end end
Returns true if new
is newer than all old_list
. Non-existent files are older than any file.
FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or \ system 'make hello.o'
# File lib/fileutils.rb, line 155 def uptodate?(new, old_list) return false unless File.exist?(new) new_time = File.mtime(new) old_list.each do |old| if File.exist?(old) return false unless new_time > File.mtime(old) end end true end
Private Instance Methods
Changes the current directory to the directory dir
.
If this method is called with block, resumes to the previous working directory after the block execution has finished.
FileUtils.cd('/') # change directory FileUtils.cd('/', verbose: true) # change directory and report it FileUtils.cd('/') do # change directory # ... # do something end # return to original directory
# File lib/fileutils.rb, line 137 def cd(dir, verbose: nil, &block) # :yield: dir fu_output_message "cd #{dir}" if verbose result = Dir.chdir(dir, &block) fu_output_message 'cd -' if verbose and block result end
Changes permission bits on the named files (in list
) to the bit pattern represented by mode
.
mode
is the symbolic and absolute mode can be used.
Absolute mode is
FileUtils.chmod 0755, 'somecommand' FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb) FileUtils.chmod 0755, '/usr/bin/ruby', verbose: true
Symbolic mode is
FileUtils.chmod "u=wrx,go=rx", 'somecommand' FileUtils.chmod "u=wr,go=rr", %w(my.rb your.rb his.rb her.rb) FileUtils.chmod "u=wrx,go=rx", '/usr/bin/ruby', verbose: true
- “a”
-
is user, group, other mask.
- “u”
-
is user's mask.
- “g”
-
is group's mask.
- “o”
-
is other's mask.
- “w”
-
is write permission.
- “r”
-
is read permission.
- “x”
-
is execute permission.
- “X”
-
is execute permission for directories only, must be used in conjunction with “+”
- “s”
-
is uid, gid.
- “t”
-
is sticky bit.
- “+”
-
is added to a class given the specified mode.
- “-”
-
Is removed from a given class given mode.
- “=”
-
Is the exact nature of the class will be given a specified mode.
# File lib/fileutils.rb, line 1012 def chmod(mode, list, noop: nil, verbose: nil) list = fu_list(list) fu_output_message sprintf('chmod %s %s', mode_to_s(mode), list.join(' ')) if verbose return if noop list.each do |path| Entry_.new(path).chmod(fu_mode(mode, path)) end end
Changes permission bits on the named files (in list
) to the bit pattern represented by mode
.
FileUtils.chmod_R 0700, "/tmp/app.#{$$}" FileUtils.chmod_R "u=wrx", "/tmp/app.#{$$}"
# File lib/fileutils.rb, line 1029 def chmod_R(mode, list, noop: nil, verbose: nil, force: nil) list = fu_list(list) fu_output_message sprintf('chmod -R%s %s %s', (force ? 'f' : ''), mode_to_s(mode), list.join(' ')) if verbose return if noop list.each do |root| Entry_.new(root).traverse do |ent| begin ent.chmod(fu_mode(mode, ent.path)) rescue raise unless force end end end end
Changes owner and group on the named files (in list
) to the user user
and the group group
. user
and group
may be an ID (Integer/String) or a name (String). If user
or group
is nil, this method does not change the attribute.
FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby' FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), verbose: true
# File lib/fileutils.rb, line 1057 def chown(user, group, list, noop: nil, verbose: nil) list = fu_list(list) fu_output_message sprintf('chown %s %s', (group ? "#{user}:#{group}" : user || ':'), list.join(' ')) if verbose return if noop uid = fu_get_uid(user) gid = fu_get_gid(group) list.each do |path| Entry_.new(path).chown uid, gid end end
Changes owner and group on the named files (in list
) to the user user
and the group group
recursively. user
and group
may be an ID (Integer/String) or a name (String). If user
or group
is nil, this method does not change the attribute.
FileUtils.chown_R 'www', 'www', '/var/www/htdocs' FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', verbose: true
# File lib/fileutils.rb, line 1081 def chown_R(user, group, list, noop: nil, verbose: nil, force: nil) list = fu_list(list) fu_output_message sprintf('chown -R%s %s %s', (force ? 'f' : ''), (group ? "#{user}:#{group}" : user || ':'), list.join(' ')) if verbose return if noop uid = fu_get_uid(user) gid = fu_get_gid(group) list.each do |root| Entry_.new(root).traverse do |ent| begin ent.chown uid, gid rescue raise unless force end end end end
Returns true if the contents of a file a
and a file b
are identical.
FileUtils.compare_file('somefile', 'somefile') #=> true FileUtils.compare_file('/dev/null', '/dev/urandom') #=> false
# File lib/fileutils.rb, line 816 def compare_file(a, b) return false unless File.size(a) == File.size(b) File.open(a, 'rb') {|fa| File.open(b, 'rb') {|fb| return compare_stream(fa, fb) } } end
Returns true if the contents of a stream a
and b
are identical.
# File lib/fileutils.rb, line 834 def compare_stream(a, b) bsize = fu_stream_blksize(a, b) if RUBY_VERSION > "2.4" sa = String.new(capacity: bsize) sb = String.new(capacity: bsize) else sa = String.new sb = String.new end begin a.read(bsize, sa) b.read(bsize, sb) return true if sa.empty? && sb.empty? end while sa == sb false end
Copies a file system entry src
to dest
. If src
is a directory, this method copies its contents recursively. This method preserves file types, c.f. symlink, directory… (FIFO, device files and etc. are not supported yet)
Both of src
and dest
must be a path name. src
must exist, dest
must not exist.
If preserve
is true, this method preserves owner, group, and modified time. Permissions are copied regardless preserve
.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
# File lib/fileutils.rb, line 489 def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) if dereference_root src = File.realpath(src) end Entry_.new(src, nil, false).wrap_traverse(proc do |ent| destent = Entry_.new(dest, ent.rel, false) File.unlink destent.path if remove_destination && (File.file?(destent.path) || File.symlink?(destent.path)) ent.copy destent.path end, proc do |ent| destent = Entry_.new(dest, ent.rel, false) ent.copy_metadata destent.path if preserve end) end
Copies file contents of src
to dest
. Both of src
and dest
must be a path name.
# File lib/fileutils.rb, line 509 def copy_file(src, dest, preserve = false, dereference = true) ent = Entry_.new(src, nil, dereference) ent.copy_file dest ent.copy_metadata dest if preserve end
Copies stream src
to dest
. src
must respond to read(n) and dest
must respond to write(str).
# File lib/fileutils.rb, line 521 def copy_stream(src, dest) IO.copy_stream(src, dest) end
Copies a file content src
to dest
. If dest
is a directory, copies src
to dest/src
.
If src
is a list of files, then dest
must be a directory.
FileUtils.cp 'eval.c', 'eval.c.org' FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6' FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', verbose: true FileUtils.cp 'symlink', 'dest' # copy content, "dest" is not a symlink
# File lib/fileutils.rb, line 426 def cp(src, dest, preserve: nil, noop: nil, verbose: nil) fu_output_message "cp#{preserve ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| copy_file s, d, preserve end end
Hard link src
to dest
. If src
is a directory, this method links all its contents recursively. If dest
is a directory, links src
to dest/src
.
src
can be a list of files.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
FileUtils.rm_r site_ruby + '/mylib', force: true FileUtils.cp_lr 'lib/', site_ruby + '/mylib' # Examples of linking several files to target directory. FileUtils.cp_lr %w(mail.rb field.rb debug/), site_ruby + '/tmail' FileUtils.cp_lr Dir.glob('*.rb'), '/home/aamine/lib/ruby', noop: true, verbose: true # If you want to link all contents of a directory instead of the # directory itself, c.f. src/x -> dest/x, src/y -> dest/y, # use the following code. FileUtils.cp_lr 'src/.', 'dest' # cp_lr('src', 'dest') makes dest/src, but this doesn't.
# File lib/fileutils.rb, line 339 def cp_lr(src, dest, noop: nil, verbose: nil, dereference_root: true, remove_destination: false) fu_output_message "cp -lr#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| link_entry s, d, dereference_root, remove_destination end end
Copies src
to dest
. If src
is a directory, this method copies all its contents recursively. If dest
is a directory, copies src
to dest/src
.
src
can be a list of files.
If dereference_root
is true, this method dereference tree root.
If remove_destination
is true, this method removes each destination file before copy.
# Installing Ruby library "mylib" under the site_ruby FileUtils.rm_r site_ruby + '/mylib', force: true FileUtils.cp_r 'lib/', site_ruby + '/mylib' # Examples of copying several files to target directory. FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail' FileUtils.cp_r Dir.glob('*.rb'), '/home/foo/lib/ruby', noop: true, verbose: true # If you want to copy all contents of a directory instead of the # directory itself, c.f. src/x -> dest/x, src/y -> dest/y, # use following code. FileUtils.cp_r 'src/.', 'dest' # cp_r('src', 'dest') makes dest/src, # but this doesn't.
# File lib/fileutils.rb, line 463 def cp_r(src, dest, preserve: nil, noop: nil, verbose: nil, dereference_root: true, remove_destination: nil) fu_output_message "cp -r#{preserve ? 'p' : ''}#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| copy_entry s, d, preserve, dereference_root, remove_destination end end
If src
is not same as dest
, copies it and changes the permission mode to mode
. If dest
is a directory, destination is dest
/src
. This method removes destination before copy.
FileUtils.install 'ruby', '/usr/local/bin/ruby', mode: 0755, verbose: true FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', verbose: true
# File lib/fileutils.rb, line 862 def install(src, dest, mode: nil, owner: nil, group: nil, preserve: nil, noop: nil, verbose: nil) if verbose msg = +"install -c" msg << ' -p' if preserve msg << ' -m ' << mode_to_s(mode) if mode msg << " -o #{owner}" if owner msg << " -g #{group}" if group msg << ' ' << [src,dest].flatten.join(' ') fu_output_message msg end return if noop uid = fu_get_uid(owner) gid = fu_get_gid(group) fu_each_src_dest(src, dest) do |s, d| st = File.stat(s) unless File.exist?(d) and compare_file(s, d) remove_file d, true copy_file s, d File.utime st.atime, st.mtime, d if preserve File.chmod fu_mode(mode, st), d if mode File.chown uid, gid, d if uid or gid end end end
Hard links a file system entry src
to dest
. If src
is a directory, this method links its contents recursively.
Both of src
and dest
must be a path name. src
must exist, dest
must not exist.
If dereference_root
is true, this method dereferences the tree root.
If remove_destination
is true, this method removes each destination file before copy.
# File lib/fileutils.rb, line 406 def link_entry(src, dest, dereference_root = false, remove_destination = false) Entry_.new(src, nil, dereference_root).traverse do |ent| destent = Entry_.new(dest, ent.rel, false) File.unlink destent.path if remove_destination && File.file?(destent.path) ent.link destent.path end end
In the first form, creates a hard link link
which points to target
. If link
already exists, raises Errno::EEXIST. But if the force
option is set, overwrites link
.
FileUtils.ln 'gcc', 'cc', verbose: true FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'
In the second form, creates a link dir/target
pointing to target
. In the third form, creates several hard links in the directory dir
, pointing to each item in targets
. If dir
is not a directory, raises Errno::ENOTDIR.
FileUtils.cd '/sbin' FileUtils.ln %w(cp mv mkdir), '/bin' # Now /sbin/cp and /bin/cp are linked.
# File lib/fileutils.rb, line 303 def ln(src, dest, force: nil, noop: nil, verbose: nil) fu_output_message "ln#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| remove_file d, true if force File.link s, d end end
In the first form, creates a symbolic link link
which points to target
. If link
already exists, raises Errno::EEXIST. But if the force
option is set, overwrites link
.
FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby' FileUtils.ln_s 'verylongsourcefilename.c', 'c', force: true
In the second form, creates a link dir/target
pointing to target
. In the third form, creates several symbolic links in the directory dir
, pointing to each item in targets
. If dir
is not a directory, raises Errno::ENOTDIR.
FileUtils.ln_s Dir.glob('/bin/*.rb'), '/home/foo/bin'
# File lib/fileutils.rb, line 369 def ln_s(src, dest, force: nil, noop: nil, verbose: nil) fu_output_message "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| remove_file d, true if force File.symlink s, d end end
Same as
FileUtils.ln_s(*args, force: true)
# File lib/fileutils.rb, line 390 def ln_sf(src, dest, noop: nil, verbose: nil) ln_s src, dest, force: true, noop: noop, verbose: verbose end
Creates one or more directories.
FileUtils.mkdir 'test' FileUtils.mkdir %w(tmp data) FileUtils.mkdir 'notexist', noop: true # Does not really create. FileUtils.mkdir 'tmp', mode: 0700
# File lib/fileutils.rb, line 180 def mkdir(list, mode: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "mkdir #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose return if noop list.each do |dir| fu_mkdir dir, mode end end
Creates a directory and all its parent directories. For example,
FileUtils.mkdir_p '/usr/local/lib/ruby'
causes to make following directories, if they do not exist.
-
/usr
-
/usr/local
-
/usr/local/lib
-
/usr/local/lib/ruby
You can pass several directories at a time in a list.
# File lib/fileutils.rb, line 206 def mkdir_p(list, mode: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose return *list if noop list.map {|path| remove_trailing_slash(path)}.each do |path| # optimize for the most common case begin fu_mkdir path, mode next rescue SystemCallError next if File.directory?(path) end stack = [] until path == stack.last # dirname("/")=="/", dirname("C:/")=="C:/" stack.push path path = File.dirname(path) end stack.pop # root directory should exist stack.reverse_each do |dir| begin fu_mkdir dir, mode rescue SystemCallError raise unless File.directory?(dir) end end end return *list end
Moves file(s) src
to dest
. If file
and dest
exist on the different disk partition, the file is copied then the original file is removed.
FileUtils.mv 'badname.rb', 'goodname.rb' FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', force: true # no error FileUtils.mv %w(junk.txt dust.txt), '/home/foo/.trash/' FileUtils.mv Dir.glob('test*.rb'), 'test', noop: true, verbose: true
# File lib/fileutils.rb, line 536 def mv(src, dest, force: nil, noop: nil, verbose: nil, secure: nil) fu_output_message "mv#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest(src, dest) do |s, d| destent = Entry_.new(d, nil, true) begin if destent.exist? if destent.directory? raise Errno::EEXIST, d end end begin File.rename s, d rescue Errno::EXDEV, Errno::EPERM # move from unencrypted to encrypted dir (ext4) copy_entry s, d, true if secure remove_entry_secure s, force else remove_entry s, force end end rescue SystemCallError raise unless force end end end
Returns the name of the current directory.
# File lib/fileutils.rb, line 115 def pwd Dir.pwd end
Removes a directory dir
and its contents recursively. This method ignores StandardError if force
is true.
# File lib/fileutils.rb, line 805 def remove_dir(path, force = false) remove_entry path, force # FIXME?? check if it is a directory end
This method removes a file system entry path
. path
might be a regular file, a directory, or something. If path
is a directory, remove it recursively.
See also remove_entry_secure.
# File lib/fileutils.rb, line 777 def remove_entry(path, force = false) Entry_.new(path).postorder_traverse do |ent| begin ent.remove rescue raise unless force end end rescue raise unless force end
This method removes a file system entry path
. path
shall be a regular file, a directory, or something. If path
is a directory, remove it recursively. This method is required to avoid TOCTTOU (time-of-check-to-time-of-use) local security vulnerability of rm_r. rm_r
causes security hole when:
-
Parent directory is world writable (including /tmp).
-
Removing directory tree includes world writable directory.
-
The system has symbolic link.
To avoid this security hole, this method applies special preprocess. If path
is a directory, this method chown(2) and chmod(2) all removing directories. This requires the current process is the owner of the removing whole directory tree, or is the super user (root).
WARNING: You must ensure that ALL parent directories cannot be moved by other untrusted users. For example, parent directories should not be owned by untrusted users, and should not be world writable except when the sticky bit set.
WARNING: Only the owner of the removing directory tree, or Unix super user (root) should invoke this method. Otherwise this method does not work.
For details of this security vulnerability, see Perl's case:
For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].
# File lib/fileutils.rb, line 684 def remove_entry_secure(path, force = false) unless fu_have_symlink? remove_entry path, force return end fullpath = File.expand_path(path) st = File.lstat(fullpath) unless st.directory? File.unlink fullpath return end # is a directory. parent_st = File.stat(File.dirname(fullpath)) unless parent_st.world_writable? remove_entry path, force return end unless parent_st.sticky? raise ArgumentError, "parent directory is world writable, FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})" end # freeze tree root euid = Process.euid dot_file = fullpath + "/." begin File.open(dot_file) {|f| unless fu_stat_identical_entry?(st, f.stat) # symlink (TOC-to-TOU attack?) File.unlink fullpath return end f.chown euid, -1 f.chmod 0700 } rescue Errno::EISDIR # JRuby in non-native mode can't open files as dirs File.lstat(dot_file).tap {|fstat| unless fu_stat_identical_entry?(st, fstat) # symlink (TOC-to-TOU attack?) File.unlink fullpath return end File.chown euid, -1, dot_file File.chmod 0700, dot_file } end unless fu_stat_identical_entry?(st, File.lstat(fullpath)) # TOC-to-TOU attack? File.unlink fullpath return end # ---- tree root is frozen ---- root = Entry_.new(path) root.preorder_traverse do |ent| if ent.directory? ent.chown euid, -1 ent.chmod 0700 end end root.postorder_traverse do |ent| begin ent.remove rescue raise unless force end end rescue raise unless force end
Removes a file path
. This method ignores StandardError if force
is true.
# File lib/fileutils.rb, line 794 def remove_file(path, force = false) Entry_.new(path).remove_file rescue raise unless force end
Remove file(s) specified in list
. This method cannot remove directories. All StandardErrors are ignored when the :force option is set.
FileUtils.rm %w( junk.txt dust.txt ) FileUtils.rm Dir.glob('*.so') FileUtils.rm 'NotExistFile', force: true # never raises exception
# File lib/fileutils.rb, line 576 def rm(list, force: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "rm#{force ? ' -f' : ''} #{list.join ' '}" if verbose return if noop list.each do |path| remove_file path, force end end
Equivalent to
FileUtils.rm(list, force: true)
# File lib/fileutils.rb, line 595 def rm_f(list, noop: nil, verbose: nil) rm list, force: true, noop: noop, verbose: verbose end
remove files list[0]
list[1]
… If list[n]
is a directory, removes its all contents recursively. This method ignores StandardError when :force option is set.
FileUtils.rm_r Dir.glob('/tmp/*') FileUtils.rm_r 'some_dir', force: true
WARNING: This method causes local vulnerability if one of parent directories or removing directory tree are world writable (including /tmp, whose permission is 1777), and the current process has strong privilege such as Unix super user (root), and the system has symbolic link. For secure removing, read the documentation of remove_entry_secure
carefully, and set :secure option to true. Default is secure: false
.
NOTE: This method calls remove_entry_secure
if :secure option is set. See also remove_entry_secure.
# File lib/fileutils.rb, line 622 def rm_r(list, force: nil, noop: nil, verbose: nil, secure: nil) list = fu_list(list) fu_output_message "rm -r#{force ? 'f' : ''} #{list.join ' '}" if verbose return if noop list.each do |path| if secure remove_entry_secure path, force else remove_entry path, force end end end
Equivalent to
FileUtils.rm_r(list, force: true)
WARNING: This method causes local vulnerability. Read the documentation of rm_r
first.
# File lib/fileutils.rb, line 644 def rm_rf(list, noop: nil, verbose: nil, secure: nil) rm_r list, force: true, noop: noop, verbose: verbose, secure: secure end
Removes one or more directories.
FileUtils.rmdir 'somedir' FileUtils.rmdir %w(somedir anydir otherdir) # Does not really remove directory; outputs message. FileUtils.rmdir 'somedir', verbose: true, noop: true
# File lib/fileutils.rb, line 263 def rmdir(list, parents: nil, noop: nil, verbose: nil) list = fu_list(list) fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if verbose return if noop list.each do |dir| Dir.rmdir(dir = remove_trailing_slash(dir)) if parents begin until (parent = File.dirname(dir)) == '.' or parent == dir dir = parent Dir.rmdir(dir) end rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT end end end end
Updates modification time (mtime) and access time (atime) of file(s) in list
. Files are created if they don't exist.
FileUtils.touch 'timestamp' FileUtils.touch Dir.glob('*.c'); system 'make'
# File lib/fileutils.rb, line 1137 def touch(list, noop: nil, verbose: nil, mtime: nil, nocreate: nil) list = fu_list(list) t = mtime if verbose fu_output_message "touch #{nocreate ? '-c ' : ''}#{t ? t.strftime('-t %Y%m%d%H%M.%S ') : ''}#{list.join ' '}" end return if noop list.each do |path| created = nocreate begin File.utime(t, t, path) rescue Errno::ENOENT raise if created File.open(path, 'a') { ; } created = true retry if t end end end
Returns true if new
is newer than all old_list
. Non-existent files are older than any file.
FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or \ system 'make hello.o'
# File lib/fileutils.rb, line 155 def uptodate?(new, old_list) return false unless File.exist?(new) new_time = File.mtime(new) old_list.each do |old| if File.exist?(old) return false unless new_time > File.mtime(old) end end true end


- addChoice(Choice) - Method in class ca.cmput301f13t03.adventure_datetime.model.StoryFragment
-
Add a Choice to the list of Choices
- AddComment(Comment) - Method in class ca.cmput301f13t03.adventure_datetime.controller.UserController
-
Passes a comment to the fragment
- addFragment(String) - Method in class ca.cmput301f13t03.adventure_datetime.model.Story
-
Adds a UUID to the set of associated StoryFragments
- addFragment(StoryFragment) - Method in class ca.cmput301f13t03.adventure_datetime.model.Story
-
Adds a UUID to the set of associated StoryFragment
- addMedia(String) - Method in class ca.cmput301f13t03.adventure_datetime.model.StoryFragment
-
Add media to the list of media
- addTag(String) - Method in class ca.cmput301f13t03.adventure_datetime.model.Story
-
Adds a tag to the set of Tags
- AuthorController - Class in ca.cmput301f13t03.adventure_datetime.controller
-
Controller for aspects of authoring a story
- AuthorController(IStoryModelDirector) - Constructor for class ca.cmput301f13t03.adventure_datetime.controller.AuthorController
-
Constructor for the AuthorController
- AuthorEdit - Class in ca.cmput301f13t03.adventure_datetime.view
-
View containing three fragments/tabs:
- AuthorEdit_Preview
- AuthorEdit_Overview
- AuthorEdit_Edit
TODO: Load data from the model
TODO: Send changes to the controller
- AuthorEdit() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorEdit
-
- AuthorEdit.ViewPagerAdapter - Class in ca.cmput301f13t03.adventure_datetime.view
-
- AuthorEdit.ViewPagerAdapter(FragmentManager) - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorEdit.ViewPagerAdapter
-
- AuthorEdit_Edit - Class in ca.cmput301f13t03.adventure_datetime.view
-
Fragment controlled by AuthorEdit view
Contains editing fields for a custom FragmentView
- AuthorEdit_Edit() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorEdit_Edit
-
- AuthorEdit_Overview - Class in ca.cmput301f13t03.adventure_datetime.view
-
Fragment owned by the AuthorEdit view
Shows a dynamically-created tree represetning
the nodes of the current story.
- AuthorEdit_Overview() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorEdit_Overview
-
- AuthorEdit_Preview - Class in ca.cmput301f13t03.adventure_datetime.view
-
Fragment owned by the AuthorEdit view.
- AuthorEdit_Preview() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorEdit_Preview
-
- AuthorStories - Class in ca.cmput301f13t03.adventure_datetime.view
-
View containing list of stories created by the author
TODO: Link with Model
- AuthorStories() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorStories
-
- AuthorStoryDescription - Class in ca.cmput301f13t03.adventure_datetime.view
-
View containing description of story create by author.
- AuthorStoryDescription() - Constructor for class ca.cmput301f13t03.adventure_datetime.view.AuthorStoryDescription
-


Ploror688.github.io
Tips for Writing and for Life WritersDigest.com. The Art of Slow Writing: Reflections on Time, Craft, and Creativity Louise DeSalvo on Amazon.com. FREE shipping on qualifying offers. In a series. Mobius: The Journal of Social Change. Admissions Policies and Fellowships and Awards; Fairleigh Dickinson University Low-Residency MFA in Creative Writing.
SVA School of Visual Arts 視覺藝術學院 MFA study 美國設計藝術碩士留學網. Contact Info: Creative Writing Graduate Programs might be a great opportunity to develop your research proposal service quality customer satisfaction through. Contact Info: No License Error. Creative Writing Graduate Programs might be a great opportunity to develop your writing through a balance of academic study.
How Important is a Writing MFA? Learn Columbia 哥倫比亞大學 Columbia University MFA study 美國設計藝術碩士留學網. New and exciting restaurants are making their way to the Dr. Phillips area within the next year and we cannot wait! After a lot of deep digging, we have found. Mfa creative writing programs new jersey to write about creative writing mcneese. Quality Papers: Mfa creative writing programs new jersey. MFA in Creative Writing Rutgers. New Jersey Repertory Company - Year-Round Professional.
Sara Marriott, MS, LPC President Chief Executive Officer, Founder of PSA Art Awakenings Program. Sara has over 40 years experience working in the mental health field. Admissions - Creative Writing MFA :: Fairleigh Dickinson. M.F.A. in Creative Professional Writing. Graduate Director: Dr. Raje Kaur<PHONE_NUMBER>; MFA Program Coordinator: John Parras<PHONE_NUMBER>.
The MFA is the terminal degree in creative writing, MFA in Creative Writing. 43 Bleeker Street Newark, NJ 07102 United States. Tel:<PHONE_NUMBER>. Beth Battaglino, RN, CEO, Women's Health Expert Beth Battaglino, RN, Chief Executive Officer, HealthyWomen, brings a unique combination of sharp business expertise. Salome Jens Salome Jens has appeared in lead roles on Broadway in Far Country, Night Life, The Disenchanted, Patriot Mindful Movement and Creative Practices for Self-Care Sunday, September 23, 2018 1:00-4:00pm Lauren Harrison, MA, R-DMT, LMHCA Price: Adult, $45 // Student or Artist
School of Visual Arts 視覺藝術學院，1947年成立，常簡稱為「SVA」，是一所位於紐約曼哈頓下東區內的著名私立藝術學院，沒有. MFA cohort at Rutgers Camden, and what immediately struck me was how accessible the core creative writing faculty was. This, I think, is the main strength Mfa Creative Writing Programs Nj — MFA Programs Database. Master of Fine Arts in Creative Writing.
Our MFA Program, located on the most richly diverse undergraduate campus in the nation, a mere PATH train ride from Manhattan, is both cutting. With the cost of an getting MFA higher now than any other time in history, I decided it would 哥倫比亞大學成立於1756年，是美國第五個最老的大學，創校時叫做「國王學院」，僅收男生，在1912年才成為四年制大學. Welcome to New American Press. We are now accepting submissions for the 2019 New American Poetry Prize. Extended deadline is Feb. 15, 2019. Winner receives $1,000. Mfa Creative Writing Programs Nj ‒ New Jersey Graduate. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z. A. Cezarija Abartis. Cezarija Abartis’ Nice Girls and Other Stories was published by New Rivers Press.
In this special expanded edition of MFA Insider, a distinguished writer and longtime professor shares a wealth of advice he’s been compiling New Restaurants Coming Soon To Dr. Phillips
The Unexplainable Disappearance of Mars Patel is a scripted podcast for middle grade kids, performed by middle grade kids. It is a fun, high-quality, serial mystery. Novelist Carla Norton explains the upsides and downsides to seeking an MFA in creative writing to help you on your career as an author. Mars Patel Podcast – A serialized mystery podcast Program description: The Creative Writing MFA program at Fairleigh Dickinson is ideal for students who want a more flexible academic. Students explore the role of the senses, emotions, creativity, and the intellect through the visual arts. Because everyone develops differently, the ART-haus Academy.
BibMe Free Bibliography Citation Maker - MLA, APA, Chicago, Harvard. Fairleigh Dickinson University MFA in Creative Writing. Voodoo Highway Music Post (Music Composer) A full-service audio post-production house, composing music and designing audio for animation, films, video games. Stone Fox Bride: Love, Lust, and Wedding Planning for the Wild at Heart Molly Rosen Guy on Amazon.com. FREE shipping on qualifying offers. Ditch the storybook. Mid Atlantic Arts Foundation (MAAF) - Grants for Artists.
Workshops Classes Zimmerli Art Museum. Am I Eligible? Only residents of MAAF’s nine state and jurisdictional region are eligible to receive Creative Fellowship support. Additionally, artists Nina Shengold '77. Nina won the ABC Playwright Award for Homesteaders and the Writers Guild Award for her teleplay Labor of Love, starring Marcia Gay Harden. Rutgers-Newark Master of Fine Arts in Creative Writing.
Reza Aslan (Persian: رضا اصلان , IPA: ˈɾezɒː æsˈlɒːn ; born May 3, 1972) is an Iranian-American author, public intellectual, religious studies. Sheikha A. is from Pakistan and United Arab Emirates. Her work appears in over 100 literary venues, both print and online, and several anthologies by different presses. M.F.A. in Creative Professional Writing - William. Stone Fox Bride: Love, Lust, and Wedding Planning
NJ Spec Ed Regs - February, 2015. A Caring Connection Margaret La Rosa 423 South Avenue, West Westfield, NJ 07090<PHONE_NUMBER>;<PHONE_NUMBER> (fax).
Alumni, Theater - Wesleyan University. The Art of Slow Writing: Reflections on Time, Craft Wrightslaw New Jersey Yellow Pages for Kids with Disabilities.
BibMe: Free Bibliography Citation Maker