appoxy_rails 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,12 @@
1
- class OauthToken < SimpleRecord::Base
2
-
3
- belongs_to :user
4
-
5
- has_strings :type, # request or access
6
- :site,
7
- :token,
8
- :secret
9
-
10
- # has_clobs :access_token
11
-
12
- end
1
+ class OauthToken < SimpleRecord::Base
2
+
3
+ belongs_to :user
4
+
5
+ has_strings :type, # request or access
6
+ :site,
7
+ :token,
8
+ :secret
9
+
10
+ # has_clobs :access_token
11
+
12
+ end
@@ -65,7 +65,7 @@ module Appoxy
65
65
  user.last_login = Time.now
66
66
  user.save(:dirty=>true)
67
67
  flash[:info] = "Logged in successfully."
68
-
68
+ after_create
69
69
  else
70
70
  flash[:error] = "Invalid email or password. Please try again."
71
71
  render :action => 'new'
@@ -1,14 +1,14 @@
1
- module Appoxy
2
- module UI
3
- class BindingHack
4
-
5
- def initialize(hash)
6
- @options = hash
7
- end
8
-
9
- def get_binding
10
- binding
11
- end
12
- end
13
- end
1
+ module Appoxy
2
+ module UI
3
+ class BindingHack
4
+
5
+ def initialize(hash)
6
+ @options = hash
7
+ end
8
+
9
+ def get_binding
10
+ binding
11
+ end
12
+ end
13
+ end
14
14
  end
data/lib/ui/test.rb CHANGED
@@ -1,7 +1,7 @@
1
- require 'erb'
2
- require_relative 'binding_hack'
3
-
4
- options = Appoxy::UI::BindingHack.new(:x=>"hi")
5
- template = ERB.new(File.read(File.join(File.dirname(__FILE__), '_geo_location_finder.html.erb')))
6
- ret = template.result(options.get_binding)
7
- p ret
1
+ require 'erb'
2
+ require_relative 'binding_hack'
3
+
4
+ options = Appoxy::UI::BindingHack.new(:x=>"hi")
5
+ template = ERB.new(File.read(File.join(File.dirname(__FILE__), '_geo_location_finder.html.erb')))
6
+ ret = template.result(options.get_binding)
7
+ p ret
@@ -2,24 +2,28 @@ module Appoxy
2
2
  module UI
3
3
  class Visualizations
4
4
 
5
+
6
+ def add_tooltip
7
+ "
8
+ tooltip: {
9
+ formatter: function() {
10
+ return '<b>'+ this.point.name +'</b>: '+ this.y;
11
+ }
12
+ },
13
+ "
14
+ end
15
+
5
16
  def pie(options={})
6
17
 
7
- div_id = options[:title].underscore || "pie_div"
8
- width = options[:width] || "100%"
9
- height = options[:height] || nil
10
- s = <<-EOF
11
- <div id="#{div_id}" style="width:#{200}; #{height ? 'height:' + height : ""}"></div>
18
+ @type = 'pie'
12
19
 
13
- <script type="text/javascript">
14
- var age_pie_chart;
15
- $(document).ready(function() {
16
- age_pie_chart = new Highcharts.Chart({
17
- chart: {
18
- renderTo: '#{div_id}',
19
- plotBackgroundColor: null,
20
- plotBorderWidth: null,
21
- plotShadow: false
22
- },
20
+ @options = options
21
+ common_values(options)
22
+
23
+ s = ""
24
+ s << add_div()
25
+ s << add_chart_start()
26
+ s << "
23
27
  plotOptions: {
24
28
  pie: {
25
29
  allowPointSelect: true,
@@ -35,49 +39,123 @@ module Appoxy
35
39
  showInLegend: true
36
40
  }
37
41
  },
38
- EOF
39
- if options[:title]
40
- s << "title: {
41
- text: '#{options[:title]}'
42
- },"
43
- end
42
+ "
43
+ s << add_title
44
44
 
45
- s << "
46
- tooltip: {
47
- formatter: function() {
48
- return '<b>'+ this.point.name +'</b>: '+ this.y;
49
- }
50
- },
51
- "
45
+ s << add_tooltip()
52
46
 
53
- s << "
54
- series: [{
55
- type: 'pie',
56
- name: '#{options[:title]}',
57
- data: [
58
- "
59
- data = options[:data]
60
- data.each_with_index do |d, i|
61
- # todo: should check for hash and allow like:
62
- # {
63
- # name: 'Chrome',
64
- # y: 12.8,
65
- # sliced: true,
66
- # selected: true
67
- # },
68
- s << "['#{d[0]}', #{d[1]}]"
69
- if i < data.size - 1
70
- s << ",\n"
71
- end
47
+ unless @options[:series]
48
+ # make the default series
49
+ serieses = [{:name=>options[:title, :data=>options[:data]]}]
50
+ @options[:series] = serieses
72
51
  end
73
- s << "]
74
- }]
52
+
53
+ if @options[:series]
54
+ s << add_series
55
+ else
56
+ # todo: DELETE THIS SECTION
57
+ # Single set of data
58
+ # s << "
59
+ # series: [{
60
+ # type: '#{@type}',
61
+ # name: '#{options[:title]}',
62
+ # data: [
63
+ # "
64
+ # s << add_data
65
+ # s << "]
66
+ # }]"
67
+ end
68
+ s << "
75
69
  });
76
70
  });
77
71
  </script>\n"
78
72
  s.html_safe
79
73
 
80
74
  end
75
+
76
+ def add_series
77
+ s = "series: [
78
+ "
79
+ series = @options[:series]
80
+ series.each_with_index do |ser, i|
81
+ # each series is a hash
82
+ s << "{
83
+ type: '#{@type}',
84
+ name: '#{ser[:name]}',
85
+ data: ["
86
+ s << add_data(ser[:data])
87
+ s << "
88
+ }
89
+ "
90
+ if i < series.size - 1
91
+ s << ",\n"
92
+ end
93
+ end
94
+ s
95
+ end
96
+
97
+ def add_data(data)
98
+ s = ""
99
+ # data ||= @options[:data]
100
+ if data.is_a?(Array)
101
+ data.each_with_index do |d, i|
102
+ if d.is_a?(Array)
103
+ s << "['#{d[0]}', #{d[1]}]"
104
+ elsif d.is_a?(Hash)
105
+ s << "
106
+ {
107
+ name: '#{d[:name]}',
108
+ y: #{d[:y]}
109
+ // sliced: #{d[:sliced]},
110
+ // selected: #{d[:selected]}
111
+ }"
112
+ else
113
+ raise "Expected array or hash for data series elements."
114
+ end
115
+ if i < data.size - 1
116
+ s << ",\n"
117
+ end
118
+ end
119
+ end
120
+ s
121
+ end
122
+
123
+
124
+ def add_div
125
+ "<div id=\"#{@div_id}\" style=\"width:#{@width}; #{@height ? 'height:' + @height : ""}\"></div>"
126
+ end
127
+
128
+ def add_chart_start
129
+ "<script type=\"text/javascript\">
130
+ var #{@id}_chart;
131
+ $(document).ready(function() {
132
+ #{@id}_chart = new Highcharts.Chart({
133
+ chart: {
134
+ renderTo: '#{@div_id}',
135
+ plotBackgroundColor: null,
136
+ plotBorderWidth: null,
137
+ plotShadow: false,
138
+ defaultSeriesType: '#{@type}'
139
+ },
140
+ "
141
+ end
142
+
143
+ def add_title
144
+ s= ""
145
+ if @options[:title]
146
+ s << "title: {
147
+ text: '#{@options[:title]}'
148
+ },"
149
+ end
150
+ ""
151
+ end
152
+
153
+ def common_values(options)
154
+ @id = options[:title].underscore
155
+ @div_id = "#{@id}_div" || "#{@type}_div"
156
+ @width = options[:width] || "100%"
157
+ @height = options[:height] || nil
158
+ end
81
159
  end
82
160
 
83
161
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 17
9
- version: 0.0.17
8
+ - 18
9
+ version: 0.0.18
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Reeder
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-04 00:00:00 -08:00
17
+ date: 2011-02-07 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency