astro_moon 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README +3 -0
  2. data/lib/astro/moon.rb +18 -6
  3. metadata +2 -2
data/README CHANGED
@@ -4,3 +4,6 @@ This file is a thoughtless manual compilation of Astro::MoonPhase perl
4
4
  module (which, in turn, is influenced by moontool.c). I don't know
5
5
  how it all works.
6
6
 
7
+ This gem contains an example script (bin/moon.rb), which hopefully helps to
8
+ understand the API of this module.
9
+
@@ -11,13 +11,25 @@ module Astro # :nodoc:
11
11
  module Moon # :doc:
12
12
  class << self
13
13
 
14
- # a container structure for phase() return value.
14
+ # a container structure for phase() return value. accessors:
15
+ # phase - moon phase, 0 or 1 for new moon, 0.5 for full moon, etc
16
+ # illumination - moon illumination, 0.0 .. 0.1
17
+ # age - moon age, in days from the most recent new moon
18
+ # distance - moon distance from earth, in kilometers
19
+ # angle - moon angle
20
+ # sun_distance - sun distance from earth, in kilometers
21
+ # sun_angle - sun angle
15
22
  Phase = Struct.new(:phase, :illumination, :age, :distance, :angle,
16
23
  :sun_distance, :sun_angle)
17
24
 
18
- # a container structure for phasehunt() return value.
25
+ # a container structure for phasehunt() return value. accessors:
26
+ # moon_start - a DateTime of the most recent new moon
27
+ # moon_end - a DateTime of the next new moon
28
+ # moon_fill - a DateTime of the full moon of this lunar month
29
+ # first_quarter, last_quarter -- <...>
19
30
  PhaseHunt = Struct.new(:moon_start, :first_quarter, :moon_full,
20
31
  :last_quarter, :moon_end)
32
+
21
33
  # Astronomical constants.
22
34
  # 1980 January 0.0
23
35
  EPOCH = 2444238.5
@@ -60,7 +72,7 @@ module Astro # :nodoc:
60
72
 
61
73
  # Finds the key dates of the specified lunar month.
62
74
  # Takes a DateTime object (or creates one using now() function).
63
- # Returns a PhaseHunt struct instance.
75
+ # Returns a PhaseHunt struct instance. (see Constants section)
64
76
  #
65
77
  # # find the date/time of the full moon in this lunar month
66
78
  # Astro::Moon.phasehunt.moon_full.strftime("%D %T %Z") \
@@ -71,7 +83,7 @@ module Astro # :nodoc:
71
83
  sdate = date.ajd
72
84
 
73
85
  adate = sdate - 45
74
- ad1 = DateTime.new1(adate)
86
+ ad1 = DateTime.jd(adate)
75
87
 
76
88
  k1 = ((ad1.year + ((ad1.month - 1) *
77
89
  (1.0 / 12.0)) - 1900) * 12.3685).floor
@@ -100,7 +112,7 @@ module Astro # :nodoc:
100
112
 
101
113
  # Finds the lunar phase for the specified date.
102
114
  # Takes a DateTime object (or creates one using now() function).
103
- # Returns a Phase struct instance.
115
+ # Returns a Phase struct instance. (see Constants section)
104
116
  #
105
117
  # # find the current moon illumination, in percents
106
118
  # Astro::Moon.phase.illumination * 100 # => 63.1104513958699
@@ -304,7 +316,7 @@ module Astro # :nodoc:
304
316
  if !apcor || apcor == 0
305
317
  raise "truephase() called with invalid phase selector (#{phase})."
306
318
  end
307
- return DateTime.new1(pt + 0.5)
319
+ return DateTime.jd(pt + 0.5)
308
320
  end
309
321
 
310
322
  def kepler(m, ecc)
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: astro_moon
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.1"
7
- date: 2007-03-10 00:00:00 +03:00
6
+ version: "0.2"
7
+ date: 2007-03-15 00:00:00 +03:00
8
8
  summary: A library for calculating the lunar phases and dates
9
9
  require_paths:
10
10
  - lib