sweph4ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README +8 -0
- data/SEAS_18.SE1 +0 -0
- data/ext/extconf.rb +12 -0
- data/ext/libswe.a +0 -0
- data/ext/swelib32.lib +0 -0
- data/ext/sweodef.h +318 -0
- data/ext/sweph4ruby.c +101 -0
- data/ext/swephexp.h +643 -0
- data/lib/sweph4ruby.rb +161 -0
- data/test/test.rb +129 -0
- metadata +50 -0
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2005 Pedro Moreira Santos
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
Author:: Pedro Moreira Santos (mailto:pedro.santos@bizarrologia.com)
|
2
|
+
Copyright:: Copyright (c) 2005 Pedro Moreira Santos
|
3
|
+
License:: MIT
|
4
|
+
|
5
|
+
|
6
|
+
sweph4ruby provides a ruby interface for the SWISS EPHEMERIS [http://www.astro.com/swisseph/] a library for the computation of planetary positions implemented in C.
|
7
|
+
|
8
|
+
Swiss Ephemeris is a compression of the JPL-Ephemeris DE406 that can be found here [http://www.jpl.nasa.gov], more information about SWISS EPHEMERIS can be found in the user manual [http://www.astro.com/swisseph/swisseph.htm?lang=f].
|
data/SEAS_18.SE1
ADDED
Binary file
|
data/ext/extconf.rb
ADDED
data/ext/libswe.a
ADDED
Binary file
|
data/ext/swelib32.lib
ADDED
Binary file
|
data/ext/sweodef.h
ADDED
@@ -0,0 +1,318 @@
|
|
1
|
+
/************************************************************
|
2
|
+
$Header: sweodef.h,v 1.65 2003/06/14 13:02:34 alois Exp $
|
3
|
+
definitions and constants for all Swiss Ephemeris source files,
|
4
|
+
only required for compiling the libraries, not for the external
|
5
|
+
interface of the libraries.
|
6
|
+
|
7
|
+
The definitions are a subset of Astrodienst's ourdef.h content
|
8
|
+
and must be kept compatible. Everything not used in SwissEph
|
9
|
+
has been deleted.
|
10
|
+
|
11
|
+
Does auto-dectection of MSDOS (TURBO_C or MS_C) or HPUNIX.
|
12
|
+
Must be extended for more portability; there should be a way
|
13
|
+
to detect byte order and file system type.
|
14
|
+
|
15
|
+
************************************************************/
|
16
|
+
|
17
|
+
/* Copyright (C) 1997, 1998 Astrodienst AG, Switzerland. All rights reserved.
|
18
|
+
|
19
|
+
This file is part of Swiss Ephemeris Free Edition.
|
20
|
+
|
21
|
+
Swiss Ephemeris is distributed with NO WARRANTY OF ANY KIND. No author
|
22
|
+
or distributor accepts any responsibility for the consequences of using it,
|
23
|
+
or for whether it serves any particular purpose or works at all, unless he
|
24
|
+
or she says so in writing. Refer to the Swiss Ephemeris Public License
|
25
|
+
("SEPL" or the "License") for full details.
|
26
|
+
|
27
|
+
Every copy of Swiss Ephemeris must include a copy of the License,
|
28
|
+
normally in a plain ASCII text file named LICENSE. The License grants you
|
29
|
+
the right to copy, modify and redistribute Swiss Ephemeris, but only
|
30
|
+
under certain conditions described in the License. Among other things, the
|
31
|
+
License requires that the copyright notices and this notice be preserved on
|
32
|
+
all copies.
|
33
|
+
|
34
|
+
For uses of the Swiss Ephemeris which do not fall under the definitions
|
35
|
+
laid down in the Public License, the Swiss Ephemeris Professional Edition
|
36
|
+
must be purchased by the developer before he/she distributes any of his
|
37
|
+
software or makes available any product or service built upon the use of
|
38
|
+
the Swiss Ephemeris.
|
39
|
+
|
40
|
+
Authors of the Swiss Ephemeris: Dieter Koch and Alois Treindl
|
41
|
+
|
42
|
+
The authors of Swiss Ephemeris have no control or influence over any of
|
43
|
+
the derived works, i.e. over software or services created by other
|
44
|
+
programmers which use Swiss Ephemeris functions.
|
45
|
+
|
46
|
+
The names of the authors or of the copyright holder (Astrodienst) must not
|
47
|
+
be used for promoting any software, product or service which uses or contains
|
48
|
+
the Swiss Ephemeris. This copyright notice is the ONLY place where the
|
49
|
+
names of the authors can legally appear, except in cases where they have
|
50
|
+
given special permission in writing.
|
51
|
+
|
52
|
+
The trademarks 'Swiss Ephemeris' and 'Swiss Ephemeris inside' may be used
|
53
|
+
for promoting such software, products or services.
|
54
|
+
*/
|
55
|
+
#ifndef _OURDEF_INCLUDED /* ourdef.h is a superset of sweodef.h */
|
56
|
+
#ifndef _SWEODEF_INCLUDED /* allow multiple #includes */
|
57
|
+
#define _SWEODEF_INCLUDED
|
58
|
+
|
59
|
+
# define MY_TRUE 1 /* for use in other defines, before TRUE is defined */
|
60
|
+
# define MY_FALSE 0 /* for use in other defines, before TRUE is defined */
|
61
|
+
|
62
|
+
|
63
|
+
#ifdef _WIN32 /* Microsoft VC 5.0 does not define MSDOS anymore */
|
64
|
+
# undef MSDOS
|
65
|
+
# define MSDOS MY_TRUE
|
66
|
+
#include <wtypes.h>
|
67
|
+
#include <objbase.h>
|
68
|
+
#include <wincon.h>
|
69
|
+
#include <winbase.h>
|
70
|
+
#include <io.h>
|
71
|
+
#include <windows.h>
|
72
|
+
# define sleep(x) Sleep((x) * 1000)
|
73
|
+
#endif
|
74
|
+
|
75
|
+
#ifdef _MSC_VER
|
76
|
+
# define MS_VC
|
77
|
+
#endif
|
78
|
+
|
79
|
+
#ifdef WIN32 /* Microsoft VC 5.0 does not define MSDOS anymore */
|
80
|
+
# define MSDOS MY_TRUE
|
81
|
+
#endif
|
82
|
+
|
83
|
+
#ifdef MSDOS /* already defined by some DOS compilers */
|
84
|
+
# undef MSDOS
|
85
|
+
# define MSDOS MY_TRUE
|
86
|
+
#endif
|
87
|
+
|
88
|
+
#ifdef __TURBOC__ /* defined by turboc */
|
89
|
+
# ifndef MSDOS
|
90
|
+
# define MSDOS MY_TRUE
|
91
|
+
# endif
|
92
|
+
# define TURBO_C
|
93
|
+
#endif
|
94
|
+
|
95
|
+
#ifdef __SC__ /* defined by Symantec C */
|
96
|
+
# ifndef MSDOS
|
97
|
+
# define MSDOS MY_TRUE
|
98
|
+
# endif
|
99
|
+
# define SYMANTEC_C
|
100
|
+
#endif
|
101
|
+
|
102
|
+
#ifdef __WATCOMC__ /* defined by WatcomC */
|
103
|
+
# ifndef MSDOS
|
104
|
+
# define MSDOS MY_TRUE
|
105
|
+
# endif
|
106
|
+
# define WATCOMC
|
107
|
+
#endif
|
108
|
+
|
109
|
+
#ifdef __MWERKS__ /* defined on Macintosh CodeWarrior */
|
110
|
+
# if macintosh && powerc
|
111
|
+
# define MACOS MY_TRUE /* let it undefined otherwise */
|
112
|
+
# define MSDOS MY_FALSE /* in case one above fired falsely */
|
113
|
+
# endif
|
114
|
+
#endif
|
115
|
+
|
116
|
+
#if MSDOS
|
117
|
+
# define HPUNIX MY_FALSE
|
118
|
+
# define INTEL_BYTE_ORDER 1
|
119
|
+
# ifndef TURBO_C
|
120
|
+
# define MS_C /* assume Microsoft C compiler */
|
121
|
+
# endif
|
122
|
+
# define MYFAR far
|
123
|
+
# define UNIX_FS MY_FALSE
|
124
|
+
#else
|
125
|
+
# ifdef MACOS
|
126
|
+
# define HPUNIX MY_FALSE
|
127
|
+
# define MYFAR
|
128
|
+
# define UNIX_FS MY_FALSE
|
129
|
+
# else
|
130
|
+
# define MSDOS MY_FALSE
|
131
|
+
# define HPUNIX MY_TRUE
|
132
|
+
# ifndef _HPUX_SOURCE
|
133
|
+
# define _HPUX_SOURCE
|
134
|
+
# endif
|
135
|
+
# define MYFAR
|
136
|
+
# define UNIX_FS MY_TRUE
|
137
|
+
# endif
|
138
|
+
#endif
|
139
|
+
|
140
|
+
#include <math.h>
|
141
|
+
#include <stdlib.h>
|
142
|
+
#ifndef FILE
|
143
|
+
# include <stdio.h>
|
144
|
+
#endif
|
145
|
+
|
146
|
+
#if HPUNIX
|
147
|
+
# include <unistd.h>
|
148
|
+
#endif
|
149
|
+
|
150
|
+
/*
|
151
|
+
* if we have 16-bit ints, we define INT_16; we will need %ld to printf an int32
|
152
|
+
* if we have 64-bit long, we define LONG_64
|
153
|
+
* If none is defined, we have int = long = 32 bit, and use %d to printf an int32
|
154
|
+
*/
|
155
|
+
#include <limits.h>
|
156
|
+
#if INT_MAX < 40000
|
157
|
+
# define INT_16
|
158
|
+
#else
|
159
|
+
# if LONG_MAX > INT_MAX
|
160
|
+
# define LONG_64
|
161
|
+
# endif
|
162
|
+
#endif
|
163
|
+
|
164
|
+
#ifdef BYTE_ORDER
|
165
|
+
#ifdef LITTLE_ENDIAN
|
166
|
+
# if BYTE_ORDER == LITTLE_ENDIAN
|
167
|
+
# define INTEL_BYTE_ORDER
|
168
|
+
# endif
|
169
|
+
#endif
|
170
|
+
#endif
|
171
|
+
|
172
|
+
#ifdef INT_16
|
173
|
+
typedef long int32;
|
174
|
+
typedef unsigned long uint32;
|
175
|
+
typedef int int16;
|
176
|
+
typedef double REAL8; /* real with at least 64 bit precision */
|
177
|
+
typedef long INT4; /* signed integer with at least 32 bit precision */
|
178
|
+
typedef unsigned long UINT4;
|
179
|
+
/* unsigned integer with at least 32 bit precision */
|
180
|
+
typedef int AS_BOOL;
|
181
|
+
typedef unsigned int UINT2; /* unsigned 16 bits */
|
182
|
+
# define ABS4 labs /* abs function for long */
|
183
|
+
#else
|
184
|
+
typedef int int32;
|
185
|
+
typedef unsigned int uint32;
|
186
|
+
typedef short int16;
|
187
|
+
typedef double REAL8; /* real with at least 64 bit precision */
|
188
|
+
typedef int INT4; /* signed integer with at least 32 bit precision */
|
189
|
+
typedef unsigned int UINT4;
|
190
|
+
/* unsigned integer with at least 32 bit precision */
|
191
|
+
typedef int AS_BOOL;
|
192
|
+
typedef unsigned short UINT2; /* unsigned 16 bits */
|
193
|
+
# define ABS4 abs /* abs function for long */
|
194
|
+
#endif
|
195
|
+
|
196
|
+
#if MSDOS
|
197
|
+
# ifdef TURBO_C
|
198
|
+
# include <alloc.h> /* MSC needs malloc ! */
|
199
|
+
# else
|
200
|
+
# include <malloc.h>
|
201
|
+
# endif
|
202
|
+
# define SIGALRM SIGINT
|
203
|
+
#endif
|
204
|
+
|
205
|
+
#ifndef TRUE
|
206
|
+
# define TRUE 1
|
207
|
+
# define FALSE 0
|
208
|
+
#endif
|
209
|
+
|
210
|
+
#ifndef OK
|
211
|
+
# define OK (0)
|
212
|
+
# define ERR (-1)
|
213
|
+
#endif
|
214
|
+
|
215
|
+
/* hack because UCHAR is already used by mingw gcc */
|
216
|
+
#ifdef __GNUC__
|
217
|
+
#ifdef _WIN32
|
218
|
+
#define UCHAR SWE_UCHAR
|
219
|
+
#endif
|
220
|
+
#endif
|
221
|
+
|
222
|
+
typedef unsigned char UCHAR;
|
223
|
+
#define UCP (UCHAR*)
|
224
|
+
#define SCP (char*)
|
225
|
+
|
226
|
+
# define CHARSET_ISO_LATIN_1 TRUE /* used by ctype256 */
|
227
|
+
|
228
|
+
#ifdef DOS_DEGREE /* use compiler switch to get DOS character! */
|
229
|
+
# define ODEGREE_CHAR 248 /* DOS degree character */
|
230
|
+
#else
|
231
|
+
# ifdef MACOS
|
232
|
+
# define ODEGREE_CHAR 161 /* Macintosh degree character */
|
233
|
+
# else
|
234
|
+
# define ODEGREE_CHAR 176 /* Latin1 degree character */
|
235
|
+
# endif
|
236
|
+
#endif
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
#ifndef HUGE
|
241
|
+
# define HUGE 1.7E+308 /* biggest value for REAL8 */
|
242
|
+
#endif
|
243
|
+
#ifndef M_PI
|
244
|
+
# define M_PI 3.14159265358979323846
|
245
|
+
#endif
|
246
|
+
|
247
|
+
#define forward static
|
248
|
+
|
249
|
+
#define AS_MAXCH 256 /* used for string declarations, allowing 255 char+\0 */
|
250
|
+
|
251
|
+
#define DEGTORAD 0.0174532925199433
|
252
|
+
#define RADTODEG 57.2957795130823
|
253
|
+
|
254
|
+
typedef int32 centisec; /* centiseconds used for angles and times */
|
255
|
+
#define CS (centisec) /* use for casting */
|
256
|
+
#define CSEC centisec /* use for typing */
|
257
|
+
|
258
|
+
#define DEG 360000 /* degree expressed in centiseconds */
|
259
|
+
#define DEG7_30 (2700000) /* 7.5 degrees */
|
260
|
+
#define DEG15 (15 * DEG)
|
261
|
+
#define DEG24 (24 * DEG)
|
262
|
+
#define DEG30 (30 * DEG)
|
263
|
+
#define DEG60 (60 * DEG)
|
264
|
+
#define DEG90 (90 * DEG)
|
265
|
+
#define DEG120 (120 * DEG)
|
266
|
+
#define DEG150 (150 * DEG)
|
267
|
+
#define DEG180 (180 * DEG)
|
268
|
+
#define DEG270 (270 * DEG)
|
269
|
+
#define DEG360 (360 * DEG)
|
270
|
+
|
271
|
+
#define CSTORAD 4.84813681109536E-08 /* centisec to rad: pi / 180 /3600/100 */
|
272
|
+
#define RADTOCS 2.06264806247096E+07 /* rad to centisec 180*3600*100/pi */
|
273
|
+
|
274
|
+
#define CS2DEG (1.0/360000.0) /* centisec to degree */
|
275
|
+
|
276
|
+
/* control strings for fopen() */
|
277
|
+
#if UNIX_FS
|
278
|
+
# define BFILE_R_ACCESS "r" /* open binary file for reading */
|
279
|
+
# define BFILE_RW_ACCESS "r+" /* open binary file for writing and reading */
|
280
|
+
# define BFILE_W_CREATE "w" /* create/open binary file for write*/
|
281
|
+
# define BFILE_A_ACCESS "a+" /* create/open binary file for append*/
|
282
|
+
# define FILE_R_ACCESS "r" /* open text file for reading */
|
283
|
+
# define FILE_RW_ACCESS "r+" /* open text file for writing and reading */
|
284
|
+
# define FILE_W_CREATE "w" /* create/open text file for write*/
|
285
|
+
# define FILE_A_ACCESS "a+" /* create/open text file for append*/
|
286
|
+
# define O_BINARY 0 /* for open(), not defined in Unix */
|
287
|
+
# define OPEN_MODE 0666 /* default file creation mode */
|
288
|
+
# define DIR_GLUE "/" /* glue string for directory/file */
|
289
|
+
# define PATH_SEPARATOR ";:" /* semicolon or colon may be used */
|
290
|
+
#else
|
291
|
+
# define BFILE_R_ACCESS "rb" /* open binary file for reading */
|
292
|
+
# define BFILE_RW_ACCESS "r+b" /* open binary file for writing and reading */
|
293
|
+
# define BFILE_W_CREATE "wb" /* create/open binary file for write*/
|
294
|
+
# define BFILE_A_ACCESS "a+b" /* create/open binary file for append*/
|
295
|
+
# define PATH_SEPARATOR ";" /* semicolon as PATH separator */
|
296
|
+
# define OPEN_MODE 0666 /* default file creation mode */
|
297
|
+
# ifdef MACOS
|
298
|
+
# define FILE_R_ACCESS "r" /* open text file for reading */
|
299
|
+
# define FILE_RW_ACCESS "r+" /* open text file for writing and reading */
|
300
|
+
# define FILE_W_CREATE "w" /* create/open text file for write*/
|
301
|
+
# define FILE_A_ACCESS "a+" /* create/open text file for append*/
|
302
|
+
# define DIR_GLUE ":" /* glue string for directory/file */
|
303
|
+
# else
|
304
|
+
# define FILE_R_ACCESS "rt" /* open text file for reading */
|
305
|
+
# define FILE_RW_ACCESS "r+t" /* open text file for writing and reading */
|
306
|
+
# define FILE_W_CREATE "wt" /* create/open text file for write*/
|
307
|
+
# define FILE_A_ACCESS "a+t" /* create/open text file for append*/
|
308
|
+
/* attention, all backslashes for msdos directry names must be written as \\,
|
309
|
+
because it is the C escape character */
|
310
|
+
# define DIR_GLUE "\\" /* glue string for directory/file */
|
311
|
+
# endif
|
312
|
+
#endif
|
313
|
+
|
314
|
+
#include <string.h>
|
315
|
+
#include <ctype.h>
|
316
|
+
|
317
|
+
#endif /* _SWEODEF_INCLUDED */
|
318
|
+
#endif /* _OURDEF_INCLUDED */
|
data/ext/sweph4ruby.c
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
#include "ruby.h"
|
2
|
+
#include "swephexp.h"
|
3
|
+
|
4
|
+
static VALUE t_init(VALUE self)
|
5
|
+
{
|
6
|
+
return self;
|
7
|
+
}
|
8
|
+
|
9
|
+
static VALUE t_swe_set_ephe_path(VALUE self, VALUE path)
|
10
|
+
{
|
11
|
+
swe_set_ephe_path(StringValuePtr(path));
|
12
|
+
return self;
|
13
|
+
}
|
14
|
+
|
15
|
+
static VALUE t_swe_julday(VALUE self, VALUE year, VALUE month, VALUE day, VALUE hour)
|
16
|
+
{
|
17
|
+
VALUE julday = swe_julday( NUM2INT(year), NUM2INT(month), NUM2INT(day), NUM2DBL(hour), SE_GREG_CAL );
|
18
|
+
return rb_float_new(julday);
|
19
|
+
}
|
20
|
+
|
21
|
+
static VALUE t_swe_calc(VALUE self, VALUE julian_day, VALUE body)
|
22
|
+
{
|
23
|
+
double results[6];
|
24
|
+
char serr[AS_MAXCH];
|
25
|
+
VALUE arr = rb_ary_new();
|
26
|
+
int id_push = rb_intern("push");
|
27
|
+
int i =0;
|
28
|
+
|
29
|
+
if ( swe_calc(NUM2DBL(julian_day), NUM2INT(body), SEFLG_SPEED, results, serr) < 0 )
|
30
|
+
rb_raise (rb_eRuntimeError, serr);
|
31
|
+
|
32
|
+
for ( i = 0; i < 6; i++)
|
33
|
+
rb_funcall(arr, id_push, 1, rb_float_new(results[i]));
|
34
|
+
|
35
|
+
return arr;
|
36
|
+
}
|
37
|
+
|
38
|
+
static VALUE t_swe_houses(VALUE self, VALUE julian_day, VALUE latitude, VALUE longitude, VALUE house_system)
|
39
|
+
{
|
40
|
+
double cusps[13];
|
41
|
+
double ascmc[10];
|
42
|
+
char serr[AS_MAXCH];
|
43
|
+
VALUE arr = rb_ary_new();
|
44
|
+
int id_push = rb_intern("push");
|
45
|
+
int i =0;
|
46
|
+
|
47
|
+
if ( swe_houses(NUM2DBL(julian_day), NUM2DBL(latitude), NUM2DBL(longitude), NUM2CHR(house_system), cusps, ascmc) < 0 )
|
48
|
+
rb_raise (rb_eRuntimeError, serr);
|
49
|
+
|
50
|
+
for ( i = 0; i < 13; i++)
|
51
|
+
rb_funcall(arr, id_push, 1, rb_float_new(cusps[i]));
|
52
|
+
|
53
|
+
for ( i = 0; i < 10; i++)
|
54
|
+
rb_funcall(arr, id_push, 1, rb_float_new(ascmc[i]));
|
55
|
+
|
56
|
+
return arr;
|
57
|
+
}
|
58
|
+
|
59
|
+
static VALUE t_swe_get_planet_name(VALUE self, VALUE body_number)
|
60
|
+
{
|
61
|
+
char snam[40];
|
62
|
+
|
63
|
+
swe_get_planet_name(NUM2INT(body_number), snam);
|
64
|
+
return rb_str_new2(snam);
|
65
|
+
}
|
66
|
+
|
67
|
+
static VALUE t_swe_house_pos(VALUE self, VALUE armc, VALUE geolat, VALUE eps, VALUE house_system, VALUE lon, VALUE lat)
|
68
|
+
{
|
69
|
+
double xpin[2];
|
70
|
+
char serr[AS_MAXCH];
|
71
|
+
VALUE house;
|
72
|
+
|
73
|
+
xpin[0] = NUM2DBL(lon);
|
74
|
+
xpin[1] = NUM2DBL(lat);
|
75
|
+
|
76
|
+
house = swe_house_pos(NUM2DBL(armc), NUM2DBL(geolat), NUM2DBL(eps), NUM2CHR(house_system), xpin, serr);
|
77
|
+
return rb_float_new(house);
|
78
|
+
}
|
79
|
+
|
80
|
+
static VALUE t_swe_deltat(VALUE self, VALUE tjd)
|
81
|
+
{
|
82
|
+
VALUE ret;
|
83
|
+
|
84
|
+
ret = swe_deltat(NUM2DBL(tjd));
|
85
|
+
return rb_float_new(ret);
|
86
|
+
}
|
87
|
+
|
88
|
+
VALUE cSweph;
|
89
|
+
|
90
|
+
void Init_sweph4ruby()
|
91
|
+
{
|
92
|
+
cSweph = rb_define_class("Sweph", rb_cObject);
|
93
|
+
rb_define_method(cSweph, "initialize", t_init, 0);
|
94
|
+
rb_define_method(cSweph, "swe_set_ephe_path", t_swe_set_ephe_path, 1);
|
95
|
+
rb_define_method(cSweph, "swe_julday", t_swe_julday, 4);
|
96
|
+
rb_define_method(cSweph, "swe_calc", t_swe_calc, 2);
|
97
|
+
rb_define_method(cSweph, "swe_houses", t_swe_houses, 4);
|
98
|
+
rb_define_method(cSweph, "swe_get_planet_name", t_swe_get_planet_name, 1);
|
99
|
+
rb_define_method(cSweph, "swe_house_pos", t_swe_house_pos, 6);
|
100
|
+
rb_define_method(cSweph, "swe_deltat", t_swe_deltat, 1);
|
101
|
+
}
|