hyper-d3 1.0.0.lap23

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.
Files changed (204) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +313 -0
  5. data/README.md +118 -0
  6. data/Rakefile +31 -0
  7. data/hyper-d3.gemspec +27 -0
  8. data/lib/d3.rb +68 -0
  9. data/lib/d3/arc.rb +29 -0
  10. data/lib/d3/area.rb +53 -0
  11. data/lib/d3/axis.rb +79 -0
  12. data/lib/d3/band_scale.rb +30 -0
  13. data/lib/d3/collections.rb +9 -0
  14. data/lib/d3/color.rb +76 -0
  15. data/lib/d3/color_schemes.rb +34 -0
  16. data/lib/d3/continuous_scale.rb +60 -0
  17. data/lib/d3/creator.rb +11 -0
  18. data/lib/d3/curve.rb +74 -0
  19. data/lib/d3/dsv.rb +103 -0
  20. data/lib/d3/ease.rb +319 -0
  21. data/lib/d3/format.rb +95 -0
  22. data/lib/d3/histograms.rb +46 -0
  23. data/lib/d3/interpolate.rb +125 -0
  24. data/lib/d3/line.rb +27 -0
  25. data/lib/d3/map.rb +48 -0
  26. data/lib/d3/misc.rb +15 -0
  27. data/lib/d3/native.rb +112 -0
  28. data/lib/d3/nest.rb +100 -0
  29. data/lib/d3/ordinal_scale.rb +39 -0
  30. data/lib/d3/path.rb +24 -0
  31. data/lib/d3/pie.rb +25 -0
  32. data/lib/d3/point_scale.rb +27 -0
  33. data/lib/d3/polygon.rb +18 -0
  34. data/lib/d3/quadtree.rb +89 -0
  35. data/lib/d3/quantile_scale.rb +19 -0
  36. data/lib/d3/quantize_scale.rb +20 -0
  37. data/lib/d3/radial_area.rb +55 -0
  38. data/lib/d3/radial_line.rb +27 -0
  39. data/lib/d3/random.rb +14 -0
  40. data/lib/d3/search.rb +30 -0
  41. data/lib/d3/selection.rb +151 -0
  42. data/lib/d3/sequential_scale.rb +31 -0
  43. data/lib/d3/set.rb +30 -0
  44. data/lib/d3/source/d3-drag.js +234 -0
  45. data/lib/d3/source/d3-scale-chromatic.js +484 -0
  46. data/lib/d3/source/d3.js +17178 -0
  47. data/lib/d3/stack.rb +13 -0
  48. data/lib/d3/statistics.rb +81 -0
  49. data/lib/d3/symbol.rb +70 -0
  50. data/lib/d3/threshold_scale.rb +22 -0
  51. data/lib/d3/time_format.rb +47 -0
  52. data/lib/d3/time_interval.rb +85 -0
  53. data/lib/d3/transformations.rb +16 -0
  54. data/lib/hyper-d3.rb +17 -0
  55. data/lib/hyperloop/d3/component.rb +12 -0
  56. data/lib/hyperloop/d3/mixin.rb +59 -0
  57. data/lib/hyperloop/d3/version.rb +5 -0
  58. data/spec/arc_spec.rb +80 -0
  59. data/spec/area_spec.rb +98 -0
  60. data/spec/axis_spec.rb +174 -0
  61. data/spec/band_scale_spec.rb +73 -0
  62. data/spec/color_spec.rb +74 -0
  63. data/spec/continuous_scale_spec.rb +217 -0
  64. data/spec/coverage_spec.rb +16 -0
  65. data/spec/creator_spec.rb +15 -0
  66. data/spec/curve_spec.rb +206 -0
  67. data/spec/dsv_spec.rb +194 -0
  68. data/spec/ease_spec.rb +370 -0
  69. data/spec/format_spec.rb +87 -0
  70. data/spec/histograms_spec.rb +61 -0
  71. data/spec/html/index.html.erb +11 -0
  72. data/spec/interpolate_spec.rb +152 -0
  73. data/spec/line_spec.rb +54 -0
  74. data/spec/map_spec.rb +80 -0
  75. data/spec/misc_spec.rb +21 -0
  76. data/spec/nest_spec.rb +89 -0
  77. data/spec/objects_spec.rb +22 -0
  78. data/spec/ordinal_scale_spec.rb +59 -0
  79. data/spec/path_spec.rb +65 -0
  80. data/spec/pie_spec.rb +114 -0
  81. data/spec/point_scale_spec.rb +58 -0
  82. data/spec/polygon_spec.rb +51 -0
  83. data/spec/quadtree_spec.rb +128 -0
  84. data/spec/quantile_scale_spec.rb +24 -0
  85. data/spec/quantize_scale_spec.rb +40 -0
  86. data/spec/radial_area_spec.rb +123 -0
  87. data/spec/radial_line_spec.rb +50 -0
  88. data/spec/random_spec.rb +34 -0
  89. data/spec/search_spec.rb +69 -0
  90. data/spec/selection_data_spec.rb +64 -0
  91. data/spec/selection_manipulation_spec.rb +166 -0
  92. data/spec/selection_spec.rb +187 -0
  93. data/spec/sequential_scale_spec.rb +90 -0
  94. data/spec/set_spec.rb +57 -0
  95. data/spec/spec_helper.rb +1 -0
  96. data/spec/stack_spec.rb +5 -0
  97. data/spec/statistics_spec.rb +65 -0
  98. data/spec/symbol_spec.rb +116 -0
  99. data/spec/test_app/.gitignore +23 -0
  100. data/spec/test_app/Gemfile +7 -0
  101. data/spec/test_app/Gemfile.lock +206 -0
  102. data/spec/test_app/README.md +9 -0
  103. data/spec/test_app/Rakefile +6 -0
  104. data/spec/test_app/app/assets/config/manifest.js +3 -0
  105. data/spec/test_app/app/assets/images/.keep +0 -0
  106. data/spec/test_app/app/assets/javascripts/application.js +13 -0
  107. data/spec/test_app/app/assets/javascripts/cable.js +13 -0
  108. data/spec/test_app/app/assets/javascripts/channels/.keep +0 -0
  109. data/spec/test_app/app/assets/javascripts/data/elections_2016.rb +10 -0
  110. data/spec/test_app/app/assets/javascripts/data/harry_potter.rb +19 -0
  111. data/spec/test_app/app/assets/javascripts/data/iphones.rb +29 -0
  112. data/spec/test_app/app/assets/javascripts/data/london_population.rb +26 -0
  113. data/spec/test_app/app/assets/javascripts/data/man_vs_horse.rb +55 -0
  114. data/spec/test_app/app/assets/javascripts/data/mtg_modern_colors.rb +96 -0
  115. data/spec/test_app/app/assets/javascripts/data/mtg_modern_creatures.rb +116 -0
  116. data/spec/test_app/app/assets/javascripts/data/olympics_2016_medals.rb +100 -0
  117. data/spec/test_app/app/assets/javascripts/data/paradox.rb +60 -0
  118. data/spec/test_app/app/assets/javascripts/data/polish_pms.rb +28 -0
  119. data/spec/test_app/app/assets/javascripts/data/star_trek_voyager.rb +183 -0
  120. data/spec/test_app/app/assets/javascripts/data/weather_in_london.rb +381 -0
  121. data/spec/test_app/app/assets/javascripts/elections_2016.rb +27 -0
  122. data/spec/test_app/app/assets/javascripts/harry_potter.rb +42 -0
  123. data/spec/test_app/app/assets/javascripts/iphones.rb +54 -0
  124. data/spec/test_app/app/assets/javascripts/london_population.rb +53 -0
  125. data/spec/test_app/app/assets/javascripts/london_population_area.rb +49 -0
  126. data/spec/test_app/app/assets/javascripts/man_vs_horse.rb +60 -0
  127. data/spec/test_app/app/assets/javascripts/mtg_modern_colors.rb +56 -0
  128. data/spec/test_app/app/assets/javascripts/mtg_modern_creatures.rb +70 -0
  129. data/spec/test_app/app/assets/javascripts/olympics_2016_medals.rb +62 -0
  130. data/spec/test_app/app/assets/javascripts/paradox.rb +64 -0
  131. data/spec/test_app/app/assets/javascripts/polish_pms.rb +60 -0
  132. data/spec/test_app/app/assets/javascripts/star_trek_voyager.rb +44 -0
  133. data/spec/test_app/app/assets/javascripts/weather_in_london.rb +69 -0
  134. data/spec/test_app/app/assets/stylesheets/application.css +15 -0
  135. data/spec/test_app/app/channels/application_cable/channel.rb +4 -0
  136. data/spec/test_app/app/channels/application_cable/connection.rb +4 -0
  137. data/spec/test_app/app/controllers/application_controller.rb +27 -0
  138. data/spec/test_app/app/controllers/concerns/.keep +0 -0
  139. data/spec/test_app/app/helpers/application_helper.rb +2 -0
  140. data/spec/test_app/app/jobs/application_job.rb +2 -0
  141. data/spec/test_app/app/mailers/application_mailer.rb +4 -0
  142. data/spec/test_app/app/models/application_record.rb +3 -0
  143. data/spec/test_app/app/models/concerns/.keep +0 -0
  144. data/spec/test_app/app/views/application/index.erb +18 -0
  145. data/spec/test_app/app/views/application/visualization.erb +28 -0
  146. data/spec/test_app/app/views/layouts/application.html.erb +13 -0
  147. data/spec/test_app/bin/bundle +3 -0
  148. data/spec/test_app/bin/rails +4 -0
  149. data/spec/test_app/bin/rake +4 -0
  150. data/spec/test_app/bin/setup +38 -0
  151. data/spec/test_app/bin/update +29 -0
  152. data/spec/test_app/bin/yarn +11 -0
  153. data/spec/test_app/config.ru +5 -0
  154. data/spec/test_app/config/application.rb +18 -0
  155. data/spec/test_app/config/boot.rb +3 -0
  156. data/spec/test_app/config/cable.yml +10 -0
  157. data/spec/test_app/config/database.yml +25 -0
  158. data/spec/test_app/config/environment.rb +5 -0
  159. data/spec/test_app/config/environments/development.rb +54 -0
  160. data/spec/test_app/config/environments/production.rb +91 -0
  161. data/spec/test_app/config/environments/test.rb +42 -0
  162. data/spec/test_app/config/initializers/application_controller_renderer.rb +8 -0
  163. data/spec/test_app/config/initializers/assets.rb +14 -0
  164. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  165. data/spec/test_app/config/initializers/cookies_serializer.rb +5 -0
  166. data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  167. data/spec/test_app/config/initializers/inflections.rb +16 -0
  168. data/spec/test_app/config/initializers/mime_types.rb +4 -0
  169. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  170. data/spec/test_app/config/locales/en.yml +33 -0
  171. data/spec/test_app/config/puma.rb +56 -0
  172. data/spec/test_app/config/routes.rb +5 -0
  173. data/spec/test_app/config/secrets.yml +32 -0
  174. data/spec/test_app/config/spring.rb +6 -0
  175. data/spec/test_app/db/seeds.rb +7 -0
  176. data/spec/test_app/lib/assets/.keep +0 -0
  177. data/spec/test_app/lib/tasks/.keep +0 -0
  178. data/spec/test_app/log/.keep +0 -0
  179. data/spec/test_app/package.json +5 -0
  180. data/spec/test_app/public/404.html +67 -0
  181. data/spec/test_app/public/422.html +67 -0
  182. data/spec/test_app/public/500.html +66 -0
  183. data/spec/test_app/public/apple-touch-icon-precomposed.png +0 -0
  184. data/spec/test_app/public/apple-touch-icon.png +0 -0
  185. data/spec/test_app/public/favicon.ico +0 -0
  186. data/spec/test_app/public/robots.txt +1 -0
  187. data/spec/test_app/test/application_system_test_case.rb +5 -0
  188. data/spec/test_app/test/controllers/.keep +0 -0
  189. data/spec/test_app/test/fixtures/.keep +0 -0
  190. data/spec/test_app/test/fixtures/files/.keep +0 -0
  191. data/spec/test_app/test/helpers/.keep +0 -0
  192. data/spec/test_app/test/integration/.keep +0 -0
  193. data/spec/test_app/test/mailers/.keep +0 -0
  194. data/spec/test_app/test/models/.keep +0 -0
  195. data/spec/test_app/test/system/.keep +0 -0
  196. data/spec/test_app/test/test_helper.rb +10 -0
  197. data/spec/test_app/tmp/.keep +0 -0
  198. data/spec/test_app/vendor/.keep +0 -0
  199. data/spec/threshold_scale_spec.rb +28 -0
  200. data/spec/time_format_spec.rb +100 -0
  201. data/spec/time_interval_spec.rb +314 -0
  202. data/spec/transformations_spec.rb +51 -0
  203. data/startrekvoyager.png +0 -0
  204. metadata +529 -0
@@ -0,0 +1,9 @@
1
+ To give it a try:
2
+
3
+ ```
4
+ cd demo
5
+ bundle install
6
+ bundle exec rackup
7
+ ```
8
+
9
+
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
File without changes
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
5
+ // vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require hyperloop-loader
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);
@@ -0,0 +1,10 @@
1
+ require "ostruct"
2
+
3
+ Elections2016 = [
4
+ { name: "Donald Trump", votes: 62_979_879, color: "#ff8c00" },
5
+ { name: "Hillary Clinton", votes: 65_844_954, color: "#98abc5" },
6
+ { name: "Gary Johnson", votes: 4_488_919, color: "#8a89a6" },
7
+ { name: "Jill Stein", votes: 1_457_044, color: "#7b6888" },
8
+ { name: "Evan McMullin", votes: 725_902, color: "#6b486b" },
9
+ { name: "Darrell Castle", votes: 202_979, color: "#a05d56" },
10
+ ].map{|o| OpenStruct.new(o) }
@@ -0,0 +1,19 @@
1
+ require "ostruct"
2
+ require "time"
3
+
4
+ # Pages for UK releases, according to Harry Potter wikia
5
+ HarryPotterBooks = [
6
+ ["Philosopher's Stone", "1997-06-26", 223],
7
+ ["Chamber of Secrets", "1998-07-02", 251],
8
+ ["Prisoner of Azkaban", "1999-07-08", 317],
9
+ ["Goblet of Fire", "2000-07-08", 636],
10
+ ["Order of the Phoenix", "2003-06-21", 766],
11
+ ["Half-Blood Prince", "2005-07-16", 607],
12
+ ["Deathly Hallows", "2007-07-21", 610],
13
+ ].map do |title, time, pages|
14
+ OpenStruct.new(
15
+ title: title,
16
+ date: Time.parse(time),
17
+ pages: pages
18
+ )
19
+ end
@@ -0,0 +1,29 @@
1
+ require "date"
2
+ require "time"
3
+ require "ostruct"
4
+
5
+ IPhones = [
6
+ ["iPhone", "2007-06-29", [4,8,16]],
7
+ ["iPhone 3G", "2008-07-11", [8,16]],
8
+ ["iPhone 3GS", "2009-06-19", [8,16,32]],
9
+ ["iPhone 4", "2010-06-24", [8,16,32]],
10
+ ["iPhone 4S", "2011-10-14", [8,16,32,64]],
11
+ ["iPhone 5", "2012-09-21", [16,32,64]],
12
+ ["iPhone 5C", "2013-09-20", [8,16,32]],
13
+ ["iPhone 5S", "2013-09-20", [16,32,64]],
14
+ ["iPhone 6", "2014-09-19", [16,64,128]],
15
+ ["iPhone 6 Plus", "2014-09-19", [16,64,128]],
16
+ ["iPhone 6S", "2015-09-25", [16,32,64,128]],
17
+ ["iPhone 6S Plus", "2015-09-25", [16,32,64,128]],
18
+ ["iPhone SE", "2016-03-31", [16,64]],
19
+ ["iPhone 7", "2016-09-16", [32,128,256]],
20
+ ["iPhone 7 Plus", "2016-09-16", [32,128,256]],
21
+ ].map{|n,d,s|
22
+ OpenStruct.new(name: n, released: Time.parse(d), sizes: s)
23
+ }
24
+
25
+ IPhoneVariants = IPhones.flat_map do |i|
26
+ i.sizes.map do |sz|
27
+ OpenStruct.new(name: i.name, released: i.released, size: sz)
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ require "ostruct"
2
+
3
+ LondonPopulation = [
4
+ {"year": 1801, "inner": 879491, "outer": 131666, "greater": 1011157 },
5
+ {"year": 1811, "inner": 1040033, "outer": 157640, "greater": 1197673 },
6
+ {"year": 1821, "inner": 1263975, "outer": 186147, "greater": 1450122 },
7
+ {"year": 1831, "inner": 1515557, "outer": 214392, "greater": 1729949 },
8
+ {"year": 1841, "inner": 1661346, "outer": 255667, "greater": 1917013 },
9
+ {"year": 1851, "inner": 1995846, "outer": 290763, "greater": 2286609 },
10
+ {"year": 1861, "inner": 2634143, "outer": 460248, "greater": 3094391 },
11
+ {"year": 1871, "inner": 3272441, "outer": 629737, "greater": 3902178 },
12
+ {"year": 1881, "inner": 3910735, "outer": 799225, "greater": 4709960 },
13
+ {"year": 1891, "inner": 4422340, "outer": 1143516, "greater": 5565856 },
14
+ {"year": 1901, "inner": 4670177, "outer": 1556317, "greater": 6226494 },
15
+ {"year": 1911, "inner": 4997741, "outer": 2160134, "greater": 7157875 },
16
+ {"year": 1921, "inner": 4936803, "outer": 2616723, "greater": 7553526 },
17
+ {"year": 1931, "inner": 4887932, "outer": 3211010, "greater": 8098942 },
18
+ {"year": 1941, "inner": 4224135, "outer": 3763801, "greater": 7987936 },
19
+ {"year": 1951, "inner": 3680821, "outer": 4483595, "greater": 8164416 },
20
+ {"year": 1961, "inner": 3336557, "outer": 4444785, "greater": 7781342 },
21
+ {"year": 1971, "inner": 3030490, "outer": 4418694, "greater": 7449184 },
22
+ {"year": 1981, "inner": 2425534, "outer": 4182979, "greater": 6608513 },
23
+ {"year": 1991, "inner": 2625245, "outer": 4262035, "greater": 6887280 },
24
+ {"year": 2001, "inner": 2765975, "outer": 4406061, "greater": 7172036 },
25
+ {"year": 2011, "inner": 3231900, "outer": 4942100, "greater": 8173900 },
26
+ ].map{|o| OpenStruct.new(o)}
@@ -0,0 +1,55 @@
1
+ require "ostruct"
2
+
3
+ ManVsHorse = [
4
+ [2016, "Horse", "Lindsey Walters", "Deliva Crianza", "2:17:58", "Ross MacDonald", "2:37:51"],
5
+ [2015, "Horse", "Geoffrey Allen", "Leo", "2:20:46", "Hugh Aggleton", "2:30:35"],
6
+ [2014, "Horse", "Geoffrey Allen", "Leo", "2:22:53", "Jonathan Albon", "2:42:49"],
7
+ [2013, "Horse", "Beti Gordon", "Next in line Grangeway", "2:18:03", "Hugh Aggleton", "2:46:25"],
8
+ [2012, "Horse", "Iola Evans", "Rheidol Star", "2:00:51", "Huw Lobb", "2:25:57"],
9
+ [2011, "Horse", "Beti Gordon", "Next in line Grangeway", "2:08:37", "Charlie Pearson", "2:25:45"],
10
+ [2010, "Horse", "Llinos Mair Jones", "Sly Dai", "2:07:04", "Haggai Chepkwony", "2:17:27"],
11
+ [2009, "Horse", "Geoffrey Allen", "Dukes Touch of Fun", "2:11:43", "Martin Cox", "2:20:02"],
12
+ [2008, "Horse", "Geoffrey Allen", "Dukes Touch of Fun", "2:18:13", "John Macfarlane", "2:18:43"],
13
+ [2007, "Human", "Geoffrey Allen", "Lucy", "2:31:26", "Florian Holzinger", "2:20:30"],
14
+ [2006, "Horse", "Denise Meldrum", "Tarran Bay", "2:10:29", "Haggai Chepkwony", "2:19:06"],
15
+ [2005, "Horse", "Lise Cooke", "Gifted Lady", "2:19:11", "Stephen Goulding", "2:33:22"],
16
+ [2004, "Human", "Zoe White", "Kay Bee Jay", "2:07:36", "Huw Lobb", "2:05:19"],
17
+ [2003, "Horse", "Robyn Petrie-Ritchie", "Druimguiga Shemal", "2:02:01", "Mark Croasdale", "2:19:02"],
18
+ [2002, "Horse", "Robyn Petrie-Ritchie", "Druimguiga Shemal", "2:02:23", "James McQueen", "2:18:52"],
19
+ [2001, "Horse", "Heather Evans", "Royal Mikado", "2:08:06", "Martin Cox", "2:17:17"],
20
+ [2000, "Horse", "Heather Evans", "Royal Mikado", "2:08", "Mark Croasdale", "2:10"],
21
+ [1999, "Horse", "Jackie Gilmour", "Ruama", "1:58", "Mark Palmer", "2:16"],
22
+ [1998, "Horse", "Jackie Gilmour", "Ruama", "1:46", "Stuart Major", "2:16"],
23
+ [1997, "Horse", "Megan Lewis", "unknown", "1:52", "Paul Cadwallader", "2:09"],
24
+ [1996, "Horse", "Ken Mapp", "Ahmaar", "1:57", "Mark Palmer", "2:12"],
25
+ [1995, "Horse", "Ken Mapp", "Ahmaar", "1:57", "Paul Cadwallader", "2:06"],
26
+ [1994, "Horse", "Celia Tymons", "Eskalabar", "1:52", "Mark Croasdale", "2:09"],
27
+ [1993, "Horse", "John Hudson", "unknown", "1:47", "Robin Bergstrand", "2:03"],
28
+ [1992, "Horse", "Zoe Jennings", "Hussar", "1:38", "Derek Green", "2:09"],
29
+ [1991, "Horse", "Zoe Jennings", "Hussar", "1:30", "Mark Croasdale", "2:05"],
30
+ [1990, "Horse", "Ray Jenkins", "The Doid", "1:36", "Glyn Williams", "2:07"],
31
+ [1989, "Horse", "Ray Jenkins", "The Doid", "1:54", "Mark Croasdale", "2:10"],
32
+ [1988, "Horse", "John Davies", "Mavies", "1:47", "Mark Croasdale", "2:08"],
33
+ [1987, "Horse", "Ray Jenkins", "The Doid", "1:32", "Paul Wheeler", "1:57"],
34
+ [1986, "Horse", "Nia Tudno-Jones", "Jenny", "1:44", "Fuselier Hughes", "2:08"],
35
+ [1985, "Horse", "Nia Tudno-Jones", "Jenny", "1:40", "David Woodhead", "2:08"],
36
+ [1984, "Horse", "William Jones", "Solitaire", "1:20", "David Woodhead", "2:05"],
37
+ [1983, "Horse", "Ann Thomas", "Nutmeg", "1:26", "Dic Evans", "2:02"],
38
+ [1982, "Horse", "Sue Thomas", "Simon", "2:06", "Paul Brownson", "2:10"],
39
+ [1981, "Horse", "Clive Powell", "Sultan", "2:02", "Dic Evans", "2:24"],
40
+ [1980, "Horse", "Glyn Jones", "Solomon", "1:27", "Dic Evans", "2:10"],
41
+ ].map{|y,w,rn,hn,ht,mn,mt|
42
+ h,m,s = ht.split(":").map(&:to_i)
43
+ ht = h*60+m+(s||0)
44
+ h,m,s = mt.split(":").map(&:to_i)
45
+ mt = h*60+m+(s||0)
46
+ OpenStruct.new(
47
+ year: y,
48
+ winner: w,
49
+ rider: rn,
50
+ horse: hn,
51
+ horse_time: ht,
52
+ human: mn,
53
+ human_time: mt,
54
+ )
55
+ }
@@ -0,0 +1,96 @@
1
+ require "ostruct"
2
+
3
+ # As of AER
4
+ MtgModernColors = [
5
+ [0, "b", 3],
6
+ [0, "g", 1],
7
+ [0, "r", 2],
8
+ [0, "u", 3],
9
+ [0, "w", 2],
10
+ [0, "x", 29],
11
+ [1, "b", 180],
12
+ [1, "g", 198],
13
+ [1, "m", 35],
14
+ [1, "r", 203],
15
+ [1, "u", 161],
16
+ [1, "w", 215],
17
+ [1, "x", 148],
18
+ [2, "b", 293],
19
+ [2, "g", 324],
20
+ [2, "m", 237],
21
+ [2, "r", 303],
22
+ [2, "u", 332],
23
+ [2, "w", 392],
24
+ [2, "x", 266],
25
+ [3, "b", 364],
26
+ [3, "g", 344],
27
+ [3, "m", 287],
28
+ [3, "r", 369],
29
+ [3, "u", 344],
30
+ [3, "w", 347],
31
+ [3, "x", 328],
32
+ [4, "b", 300],
33
+ [4, "g", 293],
34
+ [4, "m", 225],
35
+ [4, "r", 316],
36
+ [4, "u", 311],
37
+ [4, "w", 299],
38
+ [4, "x", 201],
39
+ [5, "b", 225],
40
+ [5, "g", 214],
41
+ [5, "m", 205],
42
+ [5, "r", 202],
43
+ [5, "u", 197],
44
+ [5, "w", 182],
45
+ [5, "x", 109],
46
+ [6, "b", 119],
47
+ [6, "g", 120],
48
+ [6, "m", 116],
49
+ [6, "r", 125],
50
+ [6, "u", 115],
51
+ [6, "w", 87],
52
+ [6, "x", 77],
53
+ [7, "b", 48],
54
+ [7, "g", 58],
55
+ [7, "m", 47],
56
+ [7, "r", 36],
57
+ [7, "u", 42],
58
+ [7, "w", 45],
59
+ [7, "x", 44],
60
+ [8, "b", 12],
61
+ [8, "g", 23],
62
+ [8, "m", 20],
63
+ [8, "r", 16],
64
+ [8, "u", 11],
65
+ [8, "w", 10],
66
+ [8, "x", 18],
67
+ [9, "b", 8],
68
+ [9, "g", 5],
69
+ [9, "r", 6],
70
+ [9, "u", 8],
71
+ [9, "w", 5],
72
+ [9, "x", 9],
73
+ [10, "b", 2],
74
+ [10, "g", 2],
75
+ [10, "m", 2],
76
+ [10, "r", 2],
77
+ [10, "u", 8],
78
+ [10, "w", 2],
79
+ [10, "x", 6],
80
+ [11, "g", 1],
81
+ [11, "u", 1],
82
+ [11, "x", 6],
83
+ [12, "m", 1],
84
+ [12, "u", 1],
85
+ [12, "x", 2],
86
+ [13, "x", 1],
87
+ [14, "u", 1],
88
+ [15, "m", 1],
89
+ [15, "x", 1],
90
+ ].map do |cmc, color, count|
91
+ OpenStruct.new(
92
+ cmc: cmc,
93
+ color: color,
94
+ count: count,
95
+ )
96
+ end
@@ -0,0 +1,116 @@
1
+ require "ostruct"
2
+
3
+ # As of AER
4
+ # get rid of all *-cards
5
+ MtgModernCreatures = [
6
+ [-1, -1, 1],
7
+ [-1, 3, 1],
8
+ ["*", "*", 70],
9
+ ["*", 1, 2],
10
+ ["*", "1+*", 2],
11
+ ["*", 3, 3],
12
+ ["*", 4, 1],
13
+ ["*", 5, 1],
14
+ [0, "*", 1],
15
+ [0, 0, 86],
16
+ [0, 1, 47],
17
+ [0, 2, 32],
18
+ [0, 3, 42],
19
+ [0, 4, 41],
20
+ [0, 5, 18],
21
+ [0, 6, 9],
22
+ [0, 7, 2],
23
+ [0, 8, 2],
24
+ [0, 13, 2],
25
+ [1, 1, 757],
26
+ [1, 2, 178],
27
+ [1, 3, 147],
28
+ [1, 4, 70],
29
+ [1, 5, 23],
30
+ [1, 6, 4],
31
+ [1, 7, 2],
32
+ [1, 8, 1],
33
+ ["1+*", "1+*", 1],
34
+ [2, "*", 1],
35
+ [2, 0, 1],
36
+ [2, 1, 423],
37
+ [2, 2, 956],
38
+ [2, 3, 271],
39
+ [2, 4, 111],
40
+ [2, 5, 35],
41
+ [2, 6, 5],
42
+ [2, 7, 3],
43
+ [2, 8, 2],
44
+ [2, 10, 1],
45
+ [3, 1, 111],
46
+ [3, 2, 219],
47
+ [3, 3, 532],
48
+ [3, 4, 121],
49
+ [3, 5, 49],
50
+ [3, 6, 17],
51
+ [3, 7, 4],
52
+ [3, 8, 1],
53
+ [4, 1, 31],
54
+ [4, 2, 53],
55
+ [4, 3, 106],
56
+ [4, 4, 338],
57
+ [4, 5, 75],
58
+ [4, 6, 27],
59
+ [4, 7, 7],
60
+ [4, 8, 1],
61
+ [4, 9, 2],
62
+ [5, 1, 11],
63
+ [5, 2, 16],
64
+ [5, 3, 40],
65
+ [5, 4, 77],
66
+ [5, 5, 203],
67
+ [5, 6, 34],
68
+ [5, 7, 17],
69
+ [5, 8, 3],
70
+ [5, 9, 1],
71
+ [6, 1, 8],
72
+ [6, 2, 4],
73
+ [6, 3, 8],
74
+ [6, 4, 32],
75
+ [6, 5, 31],
76
+ [6, 6, 125],
77
+ [6, 7, 8],
78
+ [6, 8, 2],
79
+ [6, 9, 1],
80
+ [7, 2, 3],
81
+ [7, 3, 1],
82
+ [7, 4, 5],
83
+ [7, 5, 7],
84
+ [7, 6, 13],
85
+ [7, 7, 47],
86
+ [7, 8, 2],
87
+ [7, 10, 1],
88
+ [7, 11, 2],
89
+ [8, 0, 1],
90
+ [8, 4, 1],
91
+ [8, 5, 3],
92
+ [8, 7, 1],
93
+ [8, 8, 30],
94
+ [8, 9, 1],
95
+ [9, 5, 1],
96
+ [9, 7, 2],
97
+ [9, 8, 1],
98
+ [9, 9, 11],
99
+ [9, 10, 1],
100
+ [9, 14, 1],
101
+ [10, 2, 1],
102
+ [10, 8, 1],
103
+ [10, 9, 1],
104
+ [10, 10, 13],
105
+ [11, 9, 1],
106
+ [11, 11, 4],
107
+ [12, 12, 3],
108
+ [13, 13, 5],
109
+ [15, 15, 2],
110
+ ].map do |p,t,c|
111
+ OpenStruct.new(
112
+ power: p,
113
+ toughness: t,
114
+ count: c,
115
+ )
116
+ end.select{|cg| cg.power.is_a?(Integer) and cg.toughness.is_a?(Integer) }
@@ -0,0 +1,100 @@
1
+ require "ostruct"
2
+
3
+ Olympics2016Medals = [
4
+ ["United States", "USA", 46, 37, 38],
5
+ ["Great Britain", "GBR", 27, 23, 17],
6
+ ["China", "CHN", 26, 18, 26],
7
+ ["Russia", "RUS", 19, 17, 19],
8
+ ["Germany", "GER", 17, 10, 15],
9
+ ["Japan", "JPN", 12, 8, 21],
10
+ ["France", "FRA", 10, 18, 14],
11
+ ["South Korea", "KOR", 9, 3, 9],
12
+ ["Italy", "ITA", 8, 12, 8],
13
+ ["Australia", "AUS", 8, 11, 10],
14
+ ["Netherlands", "NED", 8, 7, 4],
15
+ ["Hungary", "HUN", 8, 3, 4],
16
+ ["Brazil", "BRA", 7, 6, 6],
17
+ ["Spain", "ESP", 7, 4, 6],
18
+ ["Kenya", "KEN", 6, 6, 1],
19
+ ["Jamaica", "JAM", 6, 3, 2],
20
+ ["Croatia", "CRO", 5, 3, 2],
21
+ ["Cuba", "CUB", 5, 2, 4],
22
+ ["New Zealand", "NZL", 4, 9, 5],
23
+ ["Canada", "CAN", 4, 3, 15],
24
+ ["Uzbekistan", "UZB", 4, 2, 7],
25
+ ["Kazakhstan", "KAZ", 3, 5, 9],
26
+ ["Colombia", "COL", 3, 2, 3],
27
+ ["Switzerland", "SUI", 3, 2, 2],
28
+ ["Iran", "IRI", 3, 1, 4],
29
+ ["Greece", "GRE", 3, 1, 2],
30
+ ["Argentina", "ARG", 3, 1, 0],
31
+ ["Denmark", "DEN", 2, 6, 7],
32
+ ["Sweden", "SWE", 2, 6, 3],
33
+ ["South Africa", "RSA", 2, 6, 2],
34
+ ["Ukraine", "UKR", 2, 5, 4],
35
+ ["Serbia", "SRB", 2, 4, 2],
36
+ ["Poland", "POL", 2, 3, 6],
37
+ ["North Korea", "PRK", 2, 3, 2],
38
+ ["Belgium", "BEL", 2, 2, 2],
39
+ ["Thailand", "THA", 2, 2, 2],
40
+ ["Slovakia", "SVK", 2, 2, 0],
41
+ ["Georgia", "GEO", 2, 1, 4],
42
+ ["Azerbaijan", "AZE", 1, 7, 10],
43
+ ["Belarus", "BLR", 1, 4, 4],
44
+ ["Turkey", "TUR", 1, 3, 4],
45
+ ["Armenia", "ARM", 1, 3, 0],
46
+ ["Czech Republic", "CZE", 1, 2, 7],
47
+ ["Ethiopia", "ETH", 1, 2, 5],
48
+ ["Slovenia", "SLO", 1, 2, 1],
49
+ ["Indonesia", "INA", 1, 2, 0],
50
+ ["Romania", "ROU", 1, 1, 2],
51
+ ["Bahrain", "BRN", 1, 1, 0],
52
+ ["Vietnam", "VIE", 1, 1, 0],
53
+ ["Chinese Taipei", "TPE", 1, 0, 2],
54
+ ["Bahamas", "BAH", 1, 0, 1],
55
+ ["Côte d'Ivoire", "CIV", 1, 0, 1],
56
+ ["Independent", "IOA", 1, 0, 1],
57
+ ["Fiji", "FIJ", 1, 0, 0],
58
+ ["Jordan", "JOR", 1, 0, 0],
59
+ ["Kosovo", "KOS", 1, 0, 0],
60
+ ["Puerto Rico", "PUR", 1, 0, 0],
61
+ ["Singapore", "SIN", 1, 0, 0],
62
+ ["Tajikistan", "TJK", 1, 0, 0],
63
+ ["Malaysia", "MAS", 0, 4, 1],
64
+ ["Mexico", "MEX", 0, 3, 2],
65
+ ["Algeria", "ALG", 0, 2, 0],
66
+ ["Ireland", "IRL", 0, 2, 0],
67
+ ["Lithuania", "LTU", 0, 1, 3],
68
+ ["Bulgaria", "BUL", 0, 1, 2],
69
+ ["Venezuela", "VEN", 0, 1, 2],
70
+ ["India", "IND", 0, 1, 1],
71
+ ["Mongolia", "MGL", 0, 1, 1],
72
+ ["Burundi", "BDI", 0, 1, 0],
73
+ ["Grenada", "GRN", 0, 1, 0],
74
+ ["Niger", "NIG", 0, 1, 0],
75
+ ["Philippines", "PHI", 0, 1, 0],
76
+ ["Qatar", "QAT", 0, 1, 0],
77
+ ["Norway", "NOR", 0, 0, 4],
78
+ ["Egypt", "EGY", 0, 0, 3],
79
+ ["Tunisia", "TUN", 0, 0, 3],
80
+ ["Israel", "ISR", 0, 0, 2],
81
+ ["Austria", "AUT", 0, 0, 1],
82
+ ["Dominican Republic", "DOM", 0, 0, 1],
83
+ ["Estonia", "EST", 0, 0, 1],
84
+ ["Finland", "FIN", 0, 0, 1],
85
+ ["Morocco", "MAR", 0, 0, 1],
86
+ ["Moldova", "MDA", 0, 0, 1],
87
+ ["Nigeria", "NGR", 0, 0, 1],
88
+ ["Portugal", "POR", 0, 0, 1],
89
+ ["Trinidad and Tobago", "TTO", 0, 0, 1],
90
+ ["United Arab Emirates", "UAE", 0, 0, 1],
91
+ ].map{|n,a,g,s,b|
92
+ OpenStruct.new(
93
+ name: n,
94
+ acronym: a,
95
+ gold: g,
96
+ silver: s,
97
+ bronze: b,
98
+ total: g+s+b,
99
+ )
100
+ }