Class: Late

Inherits:
Object
  • Object
show all
Defined in:
lib/late.rb,
lib/late/version.rb,
ext/late/late.c

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.epochObject

our new native method; it just returns the seconds since epoch“



26
27
28
29
# File 'ext/late/late.c', line 26

static VALUE late_epoch(VALUE self) {
  time_t current_time = time(NULL);
  return INT2FIX(current_time);
}

.httpdate(rb_epoch) ⇒ Object

Outputs Tue, 05 Mar 2013 16:58:29 GMT



5
6
7
8
9
10
11
12
# File 'ext/late/late.c', line 5

const VALUE late_httpdate(VALUE self, VALUE rb_epoch) {
  time_t epoch = FIX2LONG(rb_epoch);
  struct tm * timeinfo;
  char buffer[80];
  timeinfo = gmtime(&epoch);
  strftime(buffer, 80, "%a, %d %b %Y %H:%M:%S GMT", timeinfo);
  return rb_str_new2(buffer);
}

.pp(rb_epoch, rb_format) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'ext/late/late.c', line 14

const VALUE late_pp(VALUE self, VALUE rb_epoch, VALUE rb_format) {
  time_t epoch = FIX2LONG(rb_epoch);
  char * format = RSTRING_PTR(rb_format);
  struct tm * timeinfo = gmtime(&epoch);
  int buffer_length = RSTRING_LEN(rb_format) + 40;
  char buffer[buffer_length];
  timeinfo = gmtime(&epoch);
  strftime(buffer, buffer_length, format, timeinfo);
  return rb_str_new2(buffer);
}