horoscope 0.0.6 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODE0NmM0NzI1NzlmODI1ZDEyMTY2ZjA5MzNlYjI1Y2MyYWEzZmRjYQ==
5
+ data.tar.gz: !binary |-
6
+ ZDg1NmIwNDUxZDA4NTk5MzI2OTE1MzUzYzgyNjY2MGI5MjVlMjhlZA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YjM2NjI1ZTcyNWIzYmQ2MWQ3N2Y3OTE0Yjc4MzY1ZTAxNDlmNzU1N2EyMDlk
10
+ ODUyMTdmZGE0ZDE0MTA1ZjM5MzAwODg3OGQ5MTI1OTRjMjM3YzBjNjdhM2Fl
11
+ Y2I5YjI2YWY3Njg4ZjcxMmYzODVkZTc0NGUxZTI4ZjUwNWViZTQ=
12
+ data.tar.gz: !binary |-
13
+ ZDA4ZGNmZjc2N2Q5NGEwZTA5M2NhYTljMWZkZmJiMzRmMjM1NzkxODk3M2Q2
14
+ N2NiY2IyOTUwNWRiZmQ3N2EzYTg2ZjQwNzNmNjJiYTgyYmVkNjVkNzM2MGMx
15
+ ZWJiZDRmYjFkMGQ5MmY1ZTk5OTg1MTYyODY1MDRhYmRlNDgyZmU=
@@ -0,0 +1 @@
1
+ horoscope
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p484
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rmagick'
7
+ gem 'erubis'
7
8
 
8
9
  group :development, :test do
9
10
  gem 'rake'
data/README.md CHANGED
@@ -6,6 +6,7 @@ Calculate the accurate horoscope of a person using Vedic Horoscope technique giv
6
6
  [![Code Climate](https://codeclimate.com/github/bragboy/horoscope.png)](https://codeclimate.com/github/bragboy/horoscope)
7
7
  [![Gemnasium ](https://gemnasium.com/bragboy/horoscope.png) ](https://gemnasium.com/bragboy/horoscope)
8
8
  [![Coveralls ](https://coveralls.io/repos/bragboy/horoscope/badge.png)](https://coveralls.io/r/bragboy/horoscope)
9
+ [![Gem Version](https://badge.fury.io/rb/horoscope.png)](http://badge.fury.io/rb/horoscope)
9
10
 
10
11
  ## Installation
11
12
 
@@ -33,6 +34,8 @@ Then you can start using this by passing a Time object along with latitude and l
33
34
 
34
35
  h.create_chart #This will generate the horoscope chart to your working directory
35
36
 
37
+ h.create_chart format: :html #This will generate the horoscope chart as html text and can be embedded onto any html container
38
+
36
39
  ![Sachin Tendulkar's horoscope](http://i.imgur.com/theTdBg.png)
37
40
 
38
41
  ## Contributing
@@ -2,8 +2,13 @@ require 'horoscope/version'
2
2
  require 'horoscope/overrides/math_override'
3
3
  require 'horoscope/planet'
4
4
  require 'RMagick'
5
+ require 'erubis'
5
6
 
6
7
  module Horoscope
8
+ def self.root
9
+ File.expand_path '../..', __FILE__
10
+ end
11
+
7
12
  class Horo
8
13
 
9
14
  PLANETS = ["As", "Su", "Mo", "Ma", "Me", "Ju", "Ve", "Sa", "Ra", "Ke"]
@@ -74,9 +79,25 @@ module Horoscope
74
79
  return @positions
75
80
  end
76
81
 
77
- def create_chart(options={})
78
- self.compute unless @computed
79
- base_chart = Magick::ImageList.new('assets/south_chart.png')
82
+ def create_chart(options= {})
83
+ compute unless @computed
84
+ case options[:format]
85
+ when :html
86
+ draw_chart_as_html
87
+ else
88
+ draw_chart_as_png
89
+ end
90
+ end
91
+
92
+ private
93
+
94
+ def draw_chart_as_html
95
+ input = File.read('views/horoscope_chart_html.eruby')
96
+ eval Erubis::Eruby.new.convert(input)
97
+ end
98
+
99
+ def draw_chart_as_png
100
+ base_chart = Magick::ImageList.new("#{Horoscope.root}/assets/south_chart.png")
80
101
 
81
102
  canvas = Magick::ImageList.new
82
103
  canvas.new_image(IMG_SIZE, IMG_SIZE, Magick::TextureFill.new(base_chart))
@@ -108,8 +129,6 @@ module Horoscope
108
129
  x = canvas.write('output.png')
109
130
  end
110
131
 
111
- private
112
-
113
132
  def validate_values
114
133
  @errors = []
115
134
  @errors << ERRORS[:Date] if @datetime.nil? || !@datetime.is_a?(Time) || @datetime.year > 2300 || @datetime.year < 1600
@@ -119,5 +138,14 @@ module Horoscope
119
138
  @errors
120
139
  end
121
140
 
141
+ def get_planets_at(position)
142
+ @positions_rev[position].join('<br/>')
143
+ end
144
+
145
+ def date_time_info
146
+ "#{ @datetime.strftime('%d %b %Y') } <br/> \
147
+ #{ @datetime.strftime('%I:%M %p') } <br/> \
148
+ Lat: #{@lat.round(1)}, Lon: #{@lon.round(1)}"
149
+ end
122
150
  end
123
151
  end
@@ -1,3 +1,3 @@
1
1
  module Horoscope
2
- VERSION = "0.0.6"
2
+ VERSION = "1.0"
3
3
  end
@@ -74,4 +74,15 @@ describe Horoscope do
74
74
  h.create_chart
75
75
  expect(File).to exist("output.png")
76
76
  end
77
+
78
+ it "can generate chart as html" do
79
+ h = Horoscope::Horo.new(:datetime => Time.utc(1973, 4, 24, 14, 25), :zone => 5.5, :lat => 18.60, :lon => -72.50)
80
+ h.compute
81
+ chart_html = h.create_chart format: :html
82
+ chart_html.should match("<td style = \"width:25%\" cell_index = \"0\">Su<br/>Ve</td>")
83
+ chart_html.should match("<td style = \"width:25%\" cell_index = \"4\">As</td>")
84
+ chart_html.should match("<td style = \"width:25%\" cell_index = \"11\">Me</td>")
85
+ chart_html.should match("<td style = \"width:25%\" cell_index = \"1\">Sa</td>")
86
+ chart_html.should match("<td style = \"width:25%\" cell_index = \"8\">Mo<br/>Ra</td>")
87
+ end
77
88
  end
@@ -0,0 +1,23 @@
1
+ <table style = "text-align:center;width:100%;height:100%;" border = "1">
2
+ <tr>
3
+ <td style = "width:25%" cell_index = "11"><%= get_planets_at(11) %></td>
4
+ <td style = "width:25%" cell_index = "0"><%= get_planets_at(0) %></td>
5
+ <td style = "width:25%" cell_index = "1"><%= get_planets_at(1) %></td>
6
+ <td style = "width:25%" cell_index = "2"><%= get_planets_at(2) %></td>
7
+ </tr>
8
+ <tr>
9
+ <td style = "width:25%" cell_index = "10"><%= get_planets_at(10) %></td>
10
+ <td colspan = "2" rowspan = "2"><%= date_time_info %></td>
11
+ <td style = "width:25%" cell_index = "3"><%= get_planets_at(3) %></td>
12
+ </tr>
13
+ <tr>
14
+ <td style = "width:25%" cell_index = "9"><%= get_planets_at(9) %></td>
15
+ <td style = "width:25%" cell_index = "4"><%= get_planets_at(4) %></td>
16
+ </tr>
17
+ <tr>
18
+ <td style = "width:25%" cell_index = "8"><%= get_planets_at(8) %></td>
19
+ <td style = "width:25%" cell_index = "7"><%= get_planets_at(7) %></td>
20
+ <td style = "width:25%" cell_index = "6"><%= get_planets_at(6) %></td>
21
+ <td style = "width:25%" cell_index = "5"><%= get_planets_at(5) %></td>
22
+ </tr>
23
+ </table>
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: horoscope
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: '1.0'
6
5
  platform: ruby
7
6
  authors:
8
7
  - bragboy
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-26 00:00:00.000000000 Z
11
+ date: 2014-02-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: debugger
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rmagick
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -69,6 +62,8 @@ files:
69
62
  - .coveralls.yml
70
63
  - .gitignore
71
64
  - .rspec
65
+ - .ruby-gemset
66
+ - .ruby-version
72
67
  - .travis.yml
73
68
  - Gemfile
74
69
  - LICENSE.txt
@@ -90,29 +85,29 @@ files:
90
85
  - lib/horoscope/version.rb
91
86
  - spec/horoscope_spec.rb
92
87
  - spec/spec_helper.rb
88
+ - views/horoscope_chart_html.eruby
93
89
  homepage: https://github.com/bragboy/horoscope
94
90
  licenses: []
91
+ metadata: {}
95
92
  post_install_message:
96
93
  rdoc_options: []
97
94
  require_paths:
98
95
  - lib
99
96
  required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
97
  requirements:
102
98
  - - ! '>='
103
99
  - !ruby/object:Gem::Version
104
100
  version: '0'
105
101
  required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
102
  requirements:
108
103
  - - ! '>='
109
104
  - !ruby/object:Gem::Version
110
105
  version: '0'
111
106
  requirements: []
112
107
  rubyforge_project:
113
- rubygems_version: 1.8.25
108
+ rubygems_version: 2.2.1
114
109
  signing_key:
115
- specification_version: 3
110
+ specification_version: 4
116
111
  summary: Calculate the accurate horoscope of a person using Vedic Horoscope technique
117
112
  given the birth time and birth place of the subject.
118
113
  test_files: