pyk 0.0.3 → 0.0.5

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.
@@ -20,6 +20,16 @@ module Pyk::NumberHelpers
20
20
  end
21
21
  end
22
22
 
23
+ def stock_market(d)
24
+ if d < 0
25
+ return "<span style='color: red;'><i class='icon-arrow-down'></i></span> #{d}%".html_safe
26
+ elsif d > 0
27
+ return "<span style='color: green;'><i class='icon-arrow-up'></i></span> #{d}%".html_safe
28
+ else
29
+ return d
30
+ end
31
+ end
32
+
23
33
  def color_amount(d)
24
34
  if d < 0
25
35
  "<span class='red'>(#{number_to_currency(d, unit: '')})</span>".html_safe
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 5
9
+ version: 0.0.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Pykih Software LLP
@@ -118,10 +118,6 @@ files:
118
118
  - app/assets/images/sprites/file-icons-16-px.png
119
119
  - app/assets/images/sprites/signup.png
120
120
  - app/assets/images/sprites/so.png
121
- - app/assets/javascripts/pyk/bubbles_geo.js
122
- - app/assets/javascripts/pyk/CustomTooltip.js
123
- - app/assets/javascripts/pyk/types_bubbles.js
124
- - app/assets/javascripts/pyk.js
125
121
  - app/assets/stylesheets/pyk/bootstrap.css.scss
126
122
  - app/assets/stylesheets/pyk/global.css.scss
127
123
  - app/assets/stylesheets/pyk/helpers.css.scss
@@ -1,49 +0,0 @@
1
- function CustomTooltip(tooltipId, width){
2
- var tooltipId = tooltipId;
3
- $("body").append("<div class='tooltip' id='"+tooltipId+"'></div>");
4
-
5
- if(width){
6
- $("#"+tooltipId).css("width", width);
7
- }
8
-
9
- hideTooltip();
10
-
11
- function showTooltip(content, event){
12
- $("#"+tooltipId).html(content);
13
- $("#"+tooltipId).show();
14
-
15
- updatePosition(event);
16
- }
17
-
18
- function hideTooltip(){
19
- $("#"+tooltipId).hide();
20
- }
21
-
22
- function updatePosition(event){
23
- var ttid = "#"+tooltipId;
24
- var xOffset = 20;
25
- var yOffset = 10;
26
-
27
- var ttw = $(ttid).width();
28
- var tth = $(ttid).height();
29
- var wscrY = $(window).scrollTop();
30
- var wscrX = $(window).scrollLeft();
31
- var curX = (document.all) ? event.clientX + wscrX : event.pageX;
32
- var curY = (document.all) ? event.clientY + wscrY : event.pageY;
33
- var ttleft = ((curX - wscrX + xOffset*2 + ttw) > $(window).width()) ? curX - ttw - xOffset*2 : curX + xOffset;
34
- if (ttleft < wscrX + xOffset){
35
- ttleft = wscrX + xOffset;
36
- }
37
- var tttop = ((curY - wscrY + yOffset*2 + tth) > $(window).height()) ? curY - tth - yOffset*2 : curY + yOffset;
38
- if (tttop < wscrY + yOffset){
39
- tttop = curY + yOffset;
40
- }
41
- $(ttid).css('top', tttop + 'px').css('left', ttleft + 'px');
42
- }
43
-
44
- return {
45
- showTooltip: showTooltip,
46
- hideTooltip: hideTooltip,
47
- updatePosition: updatePosition
48
- }
49
- }
@@ -1,56 +0,0 @@
1
- var map;
2
-
3
- function initialize() {
4
- var mapOptions = {
5
- zoom: 1,
6
- center: new google.maps.LatLng(51.4788, 0.0106),
7
- mapTypeId: google.maps.MapTypeId.SATELLITE
8
- };
9
-
10
- map = new google.maps.Map(document.getElementById('map-canvas'),
11
- mapOptions);
12
-
13
-
14
- // Create a script tag and set the USGS URL as the source.
15
- // Append this tag to the document's <head>.
16
- var script = document.createElement('script');
17
- //script.src = 'http://earthquake.usgs.gov/earthquakes/feed/geojsonp/2.5/week';
18
- script.src = '/data/bubbles_geo.json';
19
- document.getElementsByTagName('head')[0].appendChild(script);
20
- }
21
-
22
- window.eqfeed_callback = function(results) {
23
- for (var i = 0; i < results.features.length; i++) {
24
- var earthquake = results.features[i];
25
- var coords = earthquake.geometry.coordinates;
26
- var latLng = new google.maps.LatLng(coords[1],coords[0]);
27
- var marker = new google.maps.Marker({
28
- position: latLng,
29
- map: map,
30
- icon: getCircle(earthquake),
31
- title: earthquake.data.tooltip_contents
32
- });
33
- var infowindow = new google.maps.InfoWindow({
34
- content: earthquake.data.tooltip_contents ,
35
- maxWidth: 200,
36
- position: marker.getPosition()
37
- });
38
- google.maps.event.addListener(marker, 'click', function() {
39
- alert("tip" + earthquake.data.tooltip_contents);
40
- infowindow.open(map,marker);
41
- });
42
- }
43
-
44
- }
45
-
46
- function getCircle(mark) {
47
- return {
48
- path: google.maps.SymbolPath.CIRCLE,
49
- fillColor: mark.data.background_color,
50
- fillOpacity: mark.data.background_opacity,
51
- radius: mark.data.weight,
52
- scale: 10,
53
- strokeColor: mark.data.border_color,
54
- strokeWeight: mark.data.border_weight
55
- };
56
- }
@@ -1,224 +0,0 @@
1
-
2
- var custom_bubble_chart = (function(d3, CustomTooltip
3
- ) {
4
- "use strict";
5
-
6
- var width = 800,
7
- height = 600,
8
- tooltip = CustomTooltip("gates_tooltip", 240),
9
- layout_gravity = -0.01,
10
- damper = 0.1,
11
- nodes = [],
12
- year_centers = [],
13
- years_x = [],
14
- vis, force, circles, radius_scale;
15
-
16
- var center = {x: width /2, y: height/3};
17
-
18
-
19
- function find_unique_elements(data, param, deltaWidthParam) {
20
- var birthDates = {};
21
- $.each(data, function() {
22
- if (!birthDates[this[param]])
23
- birthDates[this[param]] = [];
24
- birthDates[this[param]].push(this);
25
- })
26
- var length = 0;
27
- for (var d in birthDates) {
28
- length ++;
29
- };
30
- var rows = Math.floor(length / 3) + 1;
31
- var col =3;
32
- var deltaWidth = (height /rows);
33
- var h = deltaWidthParam;
34
- for(var d in birthDates) {
35
- var key = d;
36
- var w;
37
- if (col > 0) {
38
- switch(col) {
39
- case 3 : w = width /5; break;
40
- case 2 : w = width /2; break;
41
- case 1 : w = 4 * width /5;break;
42
-
43
- }
44
- year_centers[key] = {
45
- x: w,
46
- y: h
47
- }
48
- years_x[key] = {
49
- x:w
50
- }
51
- console.log("key:"+ key + " x:" + w+ "y:"+h);
52
- if (col == 3) {
53
- rows --;
54
-
55
- }
56
- col --;
57
- if (col == 0) {col = 3;h += deltaWidth;}
58
- }
59
-
60
- }
61
- }
62
-
63
- function custom_chart(data, type, divId) {
64
- var max_amount = d3.max(data, function(d) { return parseInt(d.weight/10, 10); } );
65
- radius_scale = d3.scale.pow().exponent(0.5).domain([0, max_amount]).range([10, 100]);
66
-
67
- //create node objects from original data
68
- //that will serve as the data behind each
69
- //bubble in the vis, then add each node
70
- //to nodes to be used later
71
- data.forEach(function(d){
72
- var node = {
73
- id: d.id,
74
- radius: radius_scale(parseInt(d.weight/10, 10)),
75
- value: d.weight,
76
- name: d.name,
77
- visits: d.visits,
78
- calls: d.calls,
79
- leads: d.leads,
80
- color: d.color,
81
- genre: d.genre,
82
- genre2:d.genre2,
83
- x: Math.random() * 900,
84
- y: Math.random() * 800
85
- }
86
- nodes.push(node);
87
- });
88
-
89
- nodes.sort(function(a, b) {return b.value- a.value; });
90
-
91
- vis = d3.select("#"+ divID).append("svg")
92
- .attr("width", width)
93
- .attr("height", height)
94
- .attr("id", "svg_vis");
95
-
96
- circles = vis.selectAll("circle")
97
- .data(nodes, function(d) { return d.id ;});
98
-
99
- circles.enter().append("circle")
100
- .attr("r", 0)
101
- .attr("fill", function(d) { return d.color ;})
102
- .attr("stroke-width", 2)
103
- .attr("stroke", function(d) {return d3.rgb(d.color).darker();})
104
- .attr("id", function(d) { return "bubble_" + d.id; })
105
- .on("mouseover", function(d, i) {show_details(d, i, this);} )
106
- .on("mouseout", function(d, i) {hide_details(d, i, this);} )
107
-
108
- circles.transition().duration(2000).attr("r", function(d) { return d.radius; });
109
- }
110
-
111
- function charge(d) {
112
- return -Math.pow(d.radius, 2.0) / 8;
113
- }
114
-
115
- function start() {
116
- force = d3.layout.force()
117
- .nodes(nodes)
118
- .size([width, height]);
119
- }
120
-
121
- function display_group_all() {
122
- force.gravity(layout_gravity)
123
- .charge(charge)
124
- .friction(0.9)
125
- .on("tick", function(e) {
126
- circles.each(move_towards_center(e.alpha))
127
- .attr("cx", function(d) {return d.x;})
128
- .attr("cy", function(d) {return d.y;});
129
- });
130
- force.start();
131
- hide_years();
132
- }
133
-
134
- function move_towards_center(alpha) {
135
- return function(d) {
136
- d.x = d.x + (center.x - d.x) * (damper + 0.02) * alpha;
137
- d.y = d.y + (center.y - d.y) * (damper + 0.02) * alpha;
138
- };
139
- }
140
-
141
- function display_by_year(type) {
142
- force.gravity(layout_gravity)
143
- .charge(charge)
144
- .friction(0.9)
145
- .on("tick", function(e) {
146
- circles.each(move_towards_year(e.alpha, type))
147
- .attr("cx", function(d) {return d.x;})
148
- .attr("cy", function(d) {return d.y;});
149
- });
150
- force.start();
151
- display_years();
152
- }
153
-
154
- function move_towards_year(alpha, type1) {
155
- return function(d) {
156
- var key1 = "";
157
- for(var k in d) {
158
- if (type1 == k) {
159
- key1 = d[k];
160
- break;
161
- }
162
- }
163
- var target = year_centers[key1];
164
- d.x = d.x + (target.x - d.x) * (damper + 0.02) * alpha * 1.1;
165
- d.y = d.y + (target.y - d.y) * (damper + 0.02) * alpha * 1.1;
166
- };
167
- }
168
-
169
-
170
- function display_years() {
171
- var years_data = d3.keys(year_centers);
172
- var years = vis.selectAll(".years")
173
- .data(years_data);
174
-
175
- years.enter().append("text")
176
- .attr("class", "years")
177
- .attr("x", function(d) { return year_centers[d].x; } )
178
- .attr("y", function(d) { return year_centers[d].y;})
179
- .attr("text-anchor", "middle")
180
- .attr("fill", "white")
181
- .text(function(d) { return d;});
182
-
183
- }
184
-
185
- function hide_years() {
186
- var years = vis.selectAll(".years").remove();
187
- }
188
-
189
-
190
- function show_details(data, i, element) {
191
- d3.select(element).attr("stroke", "black");
192
- var content = "<h3>" + data.name + "</h3>";
193
- content +="<span class=\"name\">Visits:</span><span class=\"value\"> " + data.visits + "</span><br/>";
194
- content +="<span class=\"name\">Calls:</span><span class=\"value\"> " + data.calls + "</span><br/>";
195
- content +="<span class=\"name\">Leads:</span><span class=\"value\"> " + data.leads + "</span><br/>";
196
-
197
- tooltip.showTooltip(content, d3.event);
198
- }
199
-
200
- function hide_details(data, i, element) {
201
- d3.select(element).attr("stroke", function(d) { return d3.rgb(d.color).darker();} );
202
- tooltip.hideTooltip();
203
- }
204
-
205
- var my_mod = {};
206
- my_mod.init = function (_data, type, deltaWidthParam,divId) {
207
- custom_chart(_data, type, divId);
208
- find_unique_elements(_data, type, deltaWidthParam);
209
- start();
210
- };
211
-
212
- my_mod.display_all = display_group_all;
213
- my_mod.display_year = display_by_year;
214
- my_mod.toggle_view = function(view_type, type) {
215
- if (view_type == 'year') {
216
- display_by_year(type);
217
- } else {
218
- display_group_all();
219
- }
220
- };
221
-
222
- return my_mod;
223
- })(d3, CustomTooltip
224
- );
@@ -1 +0,0 @@
1
- //= require_tree ./launchpad/