astro_calc 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78d710da84395842dabec7d3ac0de7791ba8a071
4
- data.tar.gz: 760bdedc548b5eac2f208e8a6b8b417928267983
3
+ metadata.gz: 4a8e0b60b8e1b16a575cb20d2efa86f535aecffa
4
+ data.tar.gz: 0f136bbcfc26c4e90fd905ada9fbbefa2907b902
5
5
  SHA512:
6
- metadata.gz: 152af051960ac0f2ddd7fd8f4acd92e5cec683c8ee279e47e65a15e825e09ffd756853451e22cf417a6ac2f5dcc38d54e69c33c6eff4ac1bd8dac8b2306ad71b
7
- data.tar.gz: fa2ae5f5274da324ef2f4c275b1d9e46571c13aea340e5b9f419064368fcb8548b626e2bb97066b7e97f1f93376d69b0e9f8c2cac404d52da20e366f09f96273
6
+ metadata.gz: d3dab24f219f3fd660223073ee66a52a2e966628261d1a5686cc7c73fde3c13f3d16eacbb5535cbdd0c3005c00ba3b61448aa5b57acef14f6a7aa347e441a6be
7
+ data.tar.gz: 1f990ba295a59e20ae0c27bb8014676b5f7d9169dc12411e4d6832bcd1832a0b68fb16fc2560df624b9ba4d9d360c958c8d1b82123adf275c6882313da6d5823
@@ -7,16 +7,21 @@ class MoonPhases
7
7
  LIMIT_JULIAN_CALENDAR = 2299160
8
8
  JULIAN_DAYS_IN_MONTH = 29.530588853
9
9
 
10
- attr_reader :phase, :age, :distance, :latitude, :longitude, :constellation
10
+ attr_reader :phase, :age, :distance, :latitude, :longitude, :constellation, :date
11
11
  attr_reader :sweep, :magnitude # for svg
12
12
 
13
13
  attr_reader :detailed_position, :detailed_age, :detailed_distance, :detailed_constellation
14
14
 
15
15
 
16
16
  def initialize(date = Date.today)
17
- year = date.year
18
- month = date.month
19
- day = date.day
17
+ @date = date
18
+ perform_calculations
19
+ end
20
+
21
+ def perform_calculations
22
+ year = @date.year
23
+ month = @date.month
24
+ day = @date.day
20
25
 
21
26
  #calculate the Julian date at 12h UT
22
27
  y = year - ((12 - month) / 10.0).floor
@@ -113,47 +118,26 @@ class MoonPhases
113
118
  # @return [String] the unicode string showing the moon phase
114
119
  def unicode
115
120
  case @phase
116
- when 0.0625..0.1875 then "\uD83C\uDF12"
117
- when 0.1875..0.3125 then "\uD83C\uDF13"
118
- when 0.3125..0.4375 then "\uD83C\uDF14"
119
- when 0.4375..0.5625 then "\uD83C\uDF15"
120
- when 0.5625..0.6875 then "\uD83C\uDF16"
121
- when 0.6875..0.8125 then "\uD83C\uDF17"
122
- when 0.8125..0.9375 then "\uD83C\uDF18"
123
- else "\uD83C\uDF11"
121
+ when 0.0625..0.1875 then "🌒"
122
+ when 0.1875..0.3125 then "🌓"
123
+ when 0.3125..0.4375 then "🌔"
124
+ when 0.4375..0.5625 then "🌕"
125
+ when 0.5625..0.6875 then "🌖"
126
+ when 0.6875..0.8125 then "🌗"
127
+ when 0.8125..0.9375 then "🌘"
128
+ else "🌑"
124
129
  end
125
130
  end
126
131
 
127
132
  # Calculates the magnification for a given telescope and eyepiece
128
133
  #
129
- # @param options [Hash] the options for SVG generation
130
134
  # @return [String] the SVG output
131
- def svg(options = {})
132
- default_options = {
133
- include_style: true,
134
- height: "200px",
135
- background_color: "#111111",
136
- left: "35%",
137
- top: "75px",
138
- moon_color: "#CDCDCD",
139
- shadow_color: "#000000"
140
- }
141
- options = default_options.merge(options)
142
-
135
+ def svg
143
136
  output = ""
144
-
145
- if options[:include_style] then
146
- output << "<style>"
147
- output << "#moonholder { height: #{options[:height]}; background-color: #{options[:background_color]}; }"
148
- output << "#moon { position:absolute; left:#{options[:left]}; top:#{options[:top]}; }"
149
- output << ".moon { fill: #{options[:moon_color]}; }"
150
- output << ".moonback { stroke: #{options[:shadow_color]}; stroke-width: 1px; height: 180px; }"
151
- output << "</style>"
152
- end
153
-
154
- output << "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100% 100%' version='1.1' id='moon'>"
155
- output << " <path d='m100,0 a20,20 0 1,1 0,150 a20,20 0 1,1 0,-150' class='moonback'></path>"
156
- output << " <path d='m100,0 a#{@magnitude.round(2)},20 0 1,#{@sweep[0]} 0,150 a20,20 0 1,#{@sweep[1]} 0,-150' class='moon'></path>"
137
+ output << "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100% 100%' version='1.1' id='moon_phase'>"
138
+ output << "<path d='m100,0 a20,20 0 1,1 0,150 a20,20 0 1,1 0,-150' class='moon_back'></path>"
139
+ output << "<image xlink:href='moon.jpg; x='0' y='0' height='200px' width='200px'/>"
140
+ output << "<path d='m100,0 a#{@magnitude.round(2)},20 0 1,#{@sweep[0]} 0,150 a20,20 0 1,#{@sweep[1]} 0,-150' class='moon'></path>"
157
141
  output << "</svg>"
158
142
  output.html_safe
159
143
  end
@@ -1,3 +1,3 @@
1
1
  module AstroCalc
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
Binary file
@@ -0,0 +1,5 @@
1
+ .moon_back { background-image: image-url('starfield.png') !important; height: 200px; }
2
+ .moon { background-image: image-url("moon.png"); }
3
+
4
+ .moon_back { height: 200px; background-color: #000000; }
5
+ .moon_phase { position:absolute; left:35%; top:75px; stroke: #999999; stroke-width: 1px; height: 180px; }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: astro_calc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reuben Mallaby
@@ -76,6 +76,8 @@ files:
76
76
  - lib/astro_calc/telescopes.rb
77
77
  - lib/astro_calc/version.rb
78
78
  - vendor/assets/images/moon.png
79
+ - vendor/assets/images/starfield.png
80
+ - vendor/assets/stylesheets/astro.css.scss
79
81
  homepage: http://mallaby.me/projects/astro_calc
80
82
  licenses:
81
83
  - MIT