wayfarer 0.0.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (339) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yaml +32 -0
  3. data/.gitignore +3 -4
  4. data/.rubocop.yml +25 -9
  5. data/.ruby-version +1 -1
  6. data/Dockerfile +5 -0
  7. data/Gemfile +1 -7
  8. data/Gemfile.lock +212 -0
  9. data/RELEASING.md +17 -0
  10. data/Rakefile +38 -90
  11. data/bin/wayfarer +1 -111
  12. data/docker-compose.yml +32 -0
  13. data/docs/cookbook/querying_html.md +42 -0
  14. data/docs/cookbook/screenshots.md +27 -0
  15. data/docs/cookbook/user_agent.md +7 -0
  16. data/docs/guides/browser_automation/capybara.md +3 -0
  17. data/docs/guides/browser_automation/ferrum.md +37 -0
  18. data/docs/guides/browser_automation/selenium.md +59 -0
  19. data/docs/guides/callbacks.md +27 -34
  20. data/docs/guides/configuration.md +20 -171
  21. data/docs/guides/error_handling.md +18 -33
  22. data/docs/guides/jobs.md +75 -0
  23. data/docs/guides/networking.md +20 -0
  24. data/docs/guides/pages.md +52 -0
  25. data/docs/guides/performance.md +22 -0
  26. data/docs/guides/tasks.md +38 -0
  27. data/docs/index.md +34 -68
  28. data/docs/reference/api/base.md +162 -0
  29. data/docs/reference/api/route.md +182 -0
  30. data/docs/reference/cli.md +139 -0
  31. data/docs/reference/environment_variables.md +85 -0
  32. data/lib/wayfarer/base.rb +60 -0
  33. data/lib/wayfarer/cli/base.rb +23 -0
  34. data/lib/wayfarer/cli/generate.rb +17 -0
  35. data/lib/wayfarer/cli/job.rb +58 -0
  36. data/lib/wayfarer/cli/route.rb +27 -0
  37. data/lib/wayfarer/cli/route_printer.rb +116 -0
  38. data/lib/wayfarer/cli/runner.rb +34 -0
  39. data/lib/wayfarer/cli/templates/Gemfile.tt +5 -0
  40. data/lib/wayfarer/cli/templates/job.rb.tt +8 -0
  41. data/lib/wayfarer/config.rb +67 -0
  42. data/lib/wayfarer/gc.rb +19 -0
  43. data/lib/wayfarer/middleware/chain.rb +19 -0
  44. data/lib/wayfarer/middleware/dedup.rb +25 -0
  45. data/lib/wayfarer/middleware/fetch.rb +32 -0
  46. data/lib/wayfarer/middleware/normalize.rb +25 -0
  47. data/lib/wayfarer/middleware/router.rb +21 -0
  48. data/lib/wayfarer/middleware/stage.rb +23 -0
  49. data/lib/wayfarer/middleware/worker.rb +47 -0
  50. data/lib/wayfarer/networking/ferrum.rb +70 -0
  51. data/lib/wayfarer/networking/healer.rb +21 -0
  52. data/lib/wayfarer/networking/net_http.rb +52 -0
  53. data/lib/wayfarer/networking/pool.rb +34 -0
  54. data/lib/wayfarer/networking/result.rb +18 -0
  55. data/lib/wayfarer/networking/selenium.rb +70 -0
  56. data/lib/wayfarer/page.rb +15 -71
  57. data/lib/wayfarer/parsing/json.rb +17 -0
  58. data/lib/wayfarer/parsing/xml.rb +17 -0
  59. data/lib/wayfarer/redis/barrier.rb +36 -0
  60. data/lib/wayfarer/redis/connection.rb +13 -0
  61. data/lib/wayfarer/redis/counter.rb +29 -0
  62. data/lib/wayfarer/redis/pool.rb +18 -0
  63. data/lib/wayfarer/redis/version.rb +19 -0
  64. data/lib/wayfarer/routing/custom_matcher.rb +21 -0
  65. data/lib/wayfarer/routing/dsl.rb +57 -0
  66. data/lib/wayfarer/routing/host_matcher.rb +23 -0
  67. data/lib/wayfarer/routing/path_finder.rb +46 -0
  68. data/lib/wayfarer/routing/path_matcher.rb +46 -0
  69. data/lib/wayfarer/routing/{query_rule.rb → query_matcher.rb} +24 -16
  70. data/lib/wayfarer/routing/result.rb +15 -0
  71. data/lib/wayfarer/routing/root_route.rb +7 -0
  72. data/lib/wayfarer/routing/route.rb +41 -0
  73. data/lib/wayfarer/routing/scheme_matcher.rb +21 -0
  74. data/lib/wayfarer/routing/suffix_matcher.rb +21 -0
  75. data/lib/wayfarer/routing/target_route.rb +7 -0
  76. data/lib/wayfarer/routing/url_matcher.rb +21 -0
  77. data/lib/wayfarer/serializer.rb +17 -0
  78. data/lib/wayfarer/stringify.rb +41 -0
  79. data/lib/wayfarer/task.rb +34 -0
  80. data/lib/wayfarer.rb +47 -58
  81. data/mkdocs.yml +47 -0
  82. data/requirements.txt +1 -0
  83. data/spec/base_spec.rb +219 -0
  84. data/spec/cli/generate_spec.rb +39 -0
  85. data/spec/cli/job_spec.rb +74 -0
  86. data/spec/cli/version_spec.rb +13 -0
  87. data/spec/config_spec.rb +144 -0
  88. data/spec/factories/queue/chain.rb +11 -0
  89. data/spec/factories/queue/middleware.rb +15 -0
  90. data/spec/factories/queue/page.rb +78 -0
  91. data/spec/factories/queue/task.rb +12 -0
  92. data/spec/fixtures/dummy_job.rb +7 -0
  93. data/spec/gc_spec.rb +61 -0
  94. data/spec/middleware/chain_spec.rb +96 -0
  95. data/spec/middleware/dedup_spec.rb +76 -0
  96. data/spec/middleware/fetch_spec.rb +72 -0
  97. data/spec/middleware/normalize_spec.rb +28 -0
  98. data/spec/middleware/router_spec.rb +46 -0
  99. data/spec/middleware/stage_spec.rb +39 -0
  100. data/spec/middleware/worker_spec.rb +90 -0
  101. data/spec/networking/adapter.rb +135 -0
  102. data/spec/networking/ferrum_spec.rb +28 -0
  103. data/spec/networking/healer_spec.rb +46 -0
  104. data/spec/networking/net_http_spec.rb +37 -0
  105. data/spec/networking/pool_spec.rb +42 -0
  106. data/spec/networking/selenium_spec.rb +28 -0
  107. data/spec/page_spec.rb +21 -12
  108. data/spec/{parsers/json_parser_spec.rb → parsing/json_spec.rb} +5 -4
  109. data/spec/{parsers/xml_parser_spec.rb → parsing/xml_spec.rb} +3 -2
  110. data/spec/redis/barrier_spec.rb +78 -0
  111. data/spec/redis/counter_spec.rb +32 -0
  112. data/spec/redis/pool_spec.rb +18 -0
  113. data/spec/redis/version_spec.rb +13 -0
  114. data/spec/routing/custom_matcher_spec.rb +31 -0
  115. data/spec/routing/dsl_spec.rb +98 -0
  116. data/spec/routing/host_matcher_spec.rb +49 -0
  117. data/spec/routing/integration_spec.rb +110 -0
  118. data/spec/routing/path_finder_spec.rb +33 -0
  119. data/spec/routing/path_matcher_spec.rb +43 -0
  120. data/spec/routing/{query_rule_spec.rb → query_matcher_spec.rb} +39 -26
  121. data/spec/routing/root_route_spec.rb +29 -0
  122. data/spec/routing/route_spec.rb +43 -0
  123. data/spec/routing/scheme_matcher_spec.rb +25 -0
  124. data/spec/routing/{filetypes_rule_spec.rb → suffix_matcher_spec.rb} +14 -13
  125. data/spec/routing/uri_matcher_spec.rb +27 -0
  126. data/spec/spec_helpers.rb +65 -38
  127. data/spec/stringify_spec.rb +23 -0
  128. data/{support → spec/support}/static/finders.html +0 -0
  129. data/{support → spec/support}/static/graph/details/a.html +0 -0
  130. data/{support → spec/support}/static/graph/details/b.html +0 -0
  131. data/{support → spec/support}/static/graph/index.html +0 -0
  132. data/{support → spec/support}/static/json/dummy.json +0 -0
  133. data/{support → spec/support}/static/links/links.html +0 -0
  134. data/{support → spec/support}/static/xml/dummy.xml +0 -0
  135. data/{support → spec/support}/test_app.rb +9 -2
  136. data/spec/task_spec.rb +27 -0
  137. data/spec/wayfarer_spec.rb +2 -13
  138. data/wayfarer.gemspec +39 -42
  139. metadata +191 -368
  140. data/.travis.yml +0 -5
  141. data/Changelog.md +0 -10
  142. data/README.md +0 -21
  143. data/benchmark/frontiers.rb +0 -143
  144. data/docs/.gitignore +0 -2
  145. data/docs/_config.yml +0 -15
  146. data/docs/_includes/base.html +0 -7
  147. data/docs/_includes/head.html +0 -10
  148. data/docs/_includes/navigation.html +0 -187
  149. data/docs/_layouts/default.html +0 -42
  150. data/docs/_sass/base.scss +0 -439
  151. data/docs/_sass/variables.scss +0 -24
  152. data/docs/_sass/vendor/bourbon/_bourbon-deprecate.scss +0 -19
  153. data/docs/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss +0 -425
  154. data/docs/_sass/vendor/bourbon/_bourbon.scss +0 -90
  155. data/docs/_sass/vendor/bourbon/addons/_border-color.scss +0 -29
  156. data/docs/_sass/vendor/bourbon/addons/_border-radius.scss +0 -48
  157. data/docs/_sass/vendor/bourbon/addons/_border-style.scss +0 -28
  158. data/docs/_sass/vendor/bourbon/addons/_border-width.scss +0 -28
  159. data/docs/_sass/vendor/bourbon/addons/_buttons.scss +0 -69
  160. data/docs/_sass/vendor/bourbon/addons/_clearfix.scss +0 -25
  161. data/docs/_sass/vendor/bourbon/addons/_ellipsis.scss +0 -30
  162. data/docs/_sass/vendor/bourbon/addons/_font-stacks.scss +0 -31
  163. data/docs/_sass/vendor/bourbon/addons/_hide-text.scss +0 -27
  164. data/docs/_sass/vendor/bourbon/addons/_margin.scss +0 -29
  165. data/docs/_sass/vendor/bourbon/addons/_padding.scss +0 -29
  166. data/docs/_sass/vendor/bourbon/addons/_position.scss +0 -51
  167. data/docs/_sass/vendor/bourbon/addons/_prefixer.scss +0 -66
  168. data/docs/_sass/vendor/bourbon/addons/_retina-image.scss +0 -27
  169. data/docs/_sass/vendor/bourbon/addons/_size.scss +0 -56
  170. data/docs/_sass/vendor/bourbon/addons/_text-inputs.scss +0 -118
  171. data/docs/_sass/vendor/bourbon/addons/_timing-functions.scss +0 -34
  172. data/docs/_sass/vendor/bourbon/addons/_triangle.scss +0 -63
  173. data/docs/_sass/vendor/bourbon/addons/_word-wrap.scss +0 -29
  174. data/docs/_sass/vendor/bourbon/css3/_animation.scss +0 -61
  175. data/docs/_sass/vendor/bourbon/css3/_appearance.scss +0 -5
  176. data/docs/_sass/vendor/bourbon/css3/_backface-visibility.scss +0 -5
  177. data/docs/_sass/vendor/bourbon/css3/_background-image.scss +0 -44
  178. data/docs/_sass/vendor/bourbon/css3/_background.scss +0 -57
  179. data/docs/_sass/vendor/bourbon/css3/_border-image.scss +0 -61
  180. data/docs/_sass/vendor/bourbon/css3/_calc.scss +0 -6
  181. data/docs/_sass/vendor/bourbon/css3/_columns.scss +0 -67
  182. data/docs/_sass/vendor/bourbon/css3/_filter.scss +0 -6
  183. data/docs/_sass/vendor/bourbon/css3/_flex-box.scss +0 -327
  184. data/docs/_sass/vendor/bourbon/css3/_font-face.scss +0 -29
  185. data/docs/_sass/vendor/bourbon/css3/_font-feature-settings.scss +0 -6
  186. data/docs/_sass/vendor/bourbon/css3/_hidpi-media-query.scss +0 -12
  187. data/docs/_sass/vendor/bourbon/css3/_hyphens.scss +0 -6
  188. data/docs/_sass/vendor/bourbon/css3/_image-rendering.scss +0 -15
  189. data/docs/_sass/vendor/bourbon/css3/_keyframes.scss +0 -38
  190. data/docs/_sass/vendor/bourbon/css3/_linear-gradient.scss +0 -40
  191. data/docs/_sass/vendor/bourbon/css3/_perspective.scss +0 -12
  192. data/docs/_sass/vendor/bourbon/css3/_placeholder.scss +0 -10
  193. data/docs/_sass/vendor/bourbon/css3/_radial-gradient.scss +0 -40
  194. data/docs/_sass/vendor/bourbon/css3/_selection.scss +0 -44
  195. data/docs/_sass/vendor/bourbon/css3/_text-decoration.scss +0 -27
  196. data/docs/_sass/vendor/bourbon/css3/_transform.scss +0 -21
  197. data/docs/_sass/vendor/bourbon/css3/_transition.scss +0 -81
  198. data/docs/_sass/vendor/bourbon/css3/_user-select.scss +0 -5
  199. data/docs/_sass/vendor/bourbon/functions/_assign-inputs.scss +0 -16
  200. data/docs/_sass/vendor/bourbon/functions/_contains-falsy.scss +0 -25
  201. data/docs/_sass/vendor/bourbon/functions/_contains.scss +0 -31
  202. data/docs/_sass/vendor/bourbon/functions/_is-length.scss +0 -16
  203. data/docs/_sass/vendor/bourbon/functions/_is-light.scss +0 -26
  204. data/docs/_sass/vendor/bourbon/functions/_is-number.scss +0 -16
  205. data/docs/_sass/vendor/bourbon/functions/_is-size.scss +0 -23
  206. data/docs/_sass/vendor/bourbon/functions/_modular-scale.scss +0 -74
  207. data/docs/_sass/vendor/bourbon/functions/_px-to-em.scss +0 -24
  208. data/docs/_sass/vendor/bourbon/functions/_px-to-rem.scss +0 -26
  209. data/docs/_sass/vendor/bourbon/functions/_shade.scss +0 -24
  210. data/docs/_sass/vendor/bourbon/functions/_strip-units.scss +0 -22
  211. data/docs/_sass/vendor/bourbon/functions/_tint.scss +0 -24
  212. data/docs/_sass/vendor/bourbon/functions/_transition-property-name.scss +0 -37
  213. data/docs/_sass/vendor/bourbon/functions/_unpack.scss +0 -32
  214. data/docs/_sass/vendor/bourbon/helpers/_convert-units.scss +0 -26
  215. data/docs/_sass/vendor/bourbon/helpers/_directional-values.scss +0 -108
  216. data/docs/_sass/vendor/bourbon/helpers/_font-source-declaration.scss +0 -53
  217. data/docs/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss +0 -24
  218. data/docs/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss +0 -35
  219. data/docs/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss +0 -51
  220. data/docs/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss +0 -77
  221. data/docs/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss +0 -41
  222. data/docs/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss +0 -74
  223. data/docs/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss +0 -55
  224. data/docs/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss +0 -28
  225. data/docs/_sass/vendor/bourbon/helpers/_render-gradients.scss +0 -31
  226. data/docs/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss +0 -15
  227. data/docs/_sass/vendor/bourbon/helpers/_str-to-num.scss +0 -55
  228. data/docs/_sass/vendor/bourbon/settings/_asset-pipeline.scss +0 -7
  229. data/docs/_sass/vendor/bourbon/settings/_deprecation-warnings.scss +0 -8
  230. data/docs/_sass/vendor/bourbon/settings/_prefixer.scss +0 -9
  231. data/docs/_sass/vendor/bourbon/settings/_px-to-em.scss +0 -1
  232. data/docs/_sass/vendor/neat/_neat-helpers.scss +0 -11
  233. data/docs/_sass/vendor/neat/_neat.scss +0 -23
  234. data/docs/_sass/vendor/neat/functions/_new-breakpoint.scss +0 -49
  235. data/docs/_sass/vendor/neat/functions/_private.scss +0 -114
  236. data/docs/_sass/vendor/neat/grid/_box-sizing.scss +0 -15
  237. data/docs/_sass/vendor/neat/grid/_direction-context.scss +0 -33
  238. data/docs/_sass/vendor/neat/grid/_display-context.scss +0 -28
  239. data/docs/_sass/vendor/neat/grid/_fill-parent.scss +0 -22
  240. data/docs/_sass/vendor/neat/grid/_media.scss +0 -92
  241. data/docs/_sass/vendor/neat/grid/_omega.scss +0 -87
  242. data/docs/_sass/vendor/neat/grid/_outer-container.scss +0 -34
  243. data/docs/_sass/vendor/neat/grid/_pad.scss +0 -25
  244. data/docs/_sass/vendor/neat/grid/_private.scss +0 -35
  245. data/docs/_sass/vendor/neat/grid/_row.scss +0 -52
  246. data/docs/_sass/vendor/neat/grid/_shift.scss +0 -50
  247. data/docs/_sass/vendor/neat/grid/_span-columns.scss +0 -94
  248. data/docs/_sass/vendor/neat/grid/_to-deprecate.scss +0 -97
  249. data/docs/_sass/vendor/neat/grid/_visual-grid.scss +0 -42
  250. data/docs/_sass/vendor/neat/mixins/_clearfix.scss +0 -25
  251. data/docs/_sass/vendor/neat/settings/_disable-warnings.scss +0 -13
  252. data/docs/_sass/vendor/neat/settings/_grid.scss +0 -51
  253. data/docs/_sass/vendor/neat/settings/_visual-grid.scss +0 -27
  254. data/docs/_sass/vendor/normalize-3.0.2.scss +0 -427
  255. data/docs/_sass/vendor/pygments.scss +0 -356
  256. data/docs/automating_browsers/capybara.md +0 -70
  257. data/docs/css/screen.scss +0 -7
  258. data/docs/guides/cli.md +0 -52
  259. data/docs/guides/frontiers.md +0 -93
  260. data/docs/guides/halting.md +0 -23
  261. data/docs/guides/job_queues.md +0 -26
  262. data/docs/guides/locals.md +0 -36
  263. data/docs/guides/logging.md +0 -22
  264. data/docs/guides/page_objects.md +0 -67
  265. data/docs/guides/peeking.md +0 -46
  266. data/docs/guides/selenium_capybara.md +0 -100
  267. data/docs/guides/tutorial.md +0 -452
  268. data/docs/js/navigation.js +0 -11
  269. data/docs/misc/contributing.md +0 -20
  270. data/docs/misc/testing.md +0 -11
  271. data/docs/recipes/authentication.md +0 -23
  272. data/docs/recipes/csv.md +0 -29
  273. data/docs/recipes/javascript.md +0 -20
  274. data/docs/recipes/multiple_uris.md +0 -18
  275. data/docs/recipes/screenshots.md +0 -20
  276. data/docs/routing/custom_rules.md +0 -16
  277. data/docs/routing/filetypes_rules.md +0 -21
  278. data/docs/routing/host_rules.md +0 -24
  279. data/docs/routing/path_rules.md +0 -33
  280. data/docs/routing/protocol_rules.md +0 -17
  281. data/docs/routing/query_rules.md +0 -69
  282. data/docs/routing/routes.md +0 -96
  283. data/docs/routing/uri_rules.md +0 -18
  284. data/examples/collect_github_issues.rb +0 -65
  285. data/examples/find_foobar_on_wikipedia.rb +0 -23
  286. data/lib/wayfarer/configuration.rb +0 -86
  287. data/lib/wayfarer/crawl.rb +0 -79
  288. data/lib/wayfarer/crawl_observer.rb +0 -103
  289. data/lib/wayfarer/dispatcher.rb +0 -104
  290. data/lib/wayfarer/finders.rb +0 -61
  291. data/lib/wayfarer/frontiers/frontier.rb +0 -79
  292. data/lib/wayfarer/frontiers/memory_bloomfilter.rb +0 -32
  293. data/lib/wayfarer/frontiers/memory_frontier.rb +0 -76
  294. data/lib/wayfarer/frontiers/memory_trie_frontier.rb +0 -39
  295. data/lib/wayfarer/frontiers/normalize_uris.rb +0 -48
  296. data/lib/wayfarer/frontiers/redis_bloomfilter.rb +0 -34
  297. data/lib/wayfarer/frontiers/redis_frontier.rb +0 -83
  298. data/lib/wayfarer/http_adapters/adapter_pool.rb +0 -62
  299. data/lib/wayfarer/http_adapters/net_http_adapter.rb +0 -77
  300. data/lib/wayfarer/http_adapters/selenium_adapter.rb +0 -80
  301. data/lib/wayfarer/job.rb +0 -211
  302. data/lib/wayfarer/locals.rb +0 -40
  303. data/lib/wayfarer/parsers/json_parser.rb +0 -20
  304. data/lib/wayfarer/parsers/xml_parser.rb +0 -27
  305. data/lib/wayfarer/processor.rb +0 -103
  306. data/lib/wayfarer/routing/custom_rule.rb +0 -21
  307. data/lib/wayfarer/routing/filetypes_rule.rb +0 -20
  308. data/lib/wayfarer/routing/host_rule.rb +0 -19
  309. data/lib/wayfarer/routing/path_rule.rb +0 -54
  310. data/lib/wayfarer/routing/protocol_rule.rb +0 -21
  311. data/lib/wayfarer/routing/router.rb +0 -71
  312. data/lib/wayfarer/routing/rule.rb +0 -114
  313. data/lib/wayfarer/routing/uri_rule.rb +0 -21
  314. data/spec/configuration_spec.rb +0 -26
  315. data/spec/crawl_spec.rb +0 -48
  316. data/spec/finders_spec.rb +0 -49
  317. data/spec/frontiers/memory_bloomfilter_spec.rb +0 -6
  318. data/spec/frontiers/memory_frontier_spec.rb +0 -6
  319. data/spec/frontiers/memory_trie_frontier_spec.rb +0 -6
  320. data/spec/frontiers/normalize_uris_spec.rb +0 -59
  321. data/spec/frontiers/redis_bloomfilter_spec.rb +0 -6
  322. data/spec/frontiers/redis_frontier_spec.rb +0 -6
  323. data/spec/http_adapters/adapter_pool_spec.rb +0 -33
  324. data/spec/http_adapters/net_http_adapter_spec.rb +0 -83
  325. data/spec/http_adapters/selenium_adapter_spec.rb +0 -53
  326. data/spec/integration/callbacks_spec.rb +0 -42
  327. data/spec/integration/locals_spec.rb +0 -106
  328. data/spec/integration/peeking_spec.rb +0 -61
  329. data/spec/job_spec.rb +0 -122
  330. data/spec/processor_spec.rb +0 -31
  331. data/spec/routing/custom_rule_spec.rb +0 -26
  332. data/spec/routing/host_rule_spec.rb +0 -48
  333. data/spec/routing/path_rule_spec.rb +0 -66
  334. data/spec/routing/protocol_rule_spec.rb +0 -26
  335. data/spec/routing/router_spec.rb +0 -67
  336. data/spec/routing/rule_spec.rb +0 -251
  337. data/spec/routing/uri_rule_spec.rb +0 -24
  338. data/spec/shared/frontier.rb +0 -96
  339. data/wayfarer-jruby.gemspec +0 -49
@@ -1,55 +0,0 @@
1
- @function _radial-gradient-parser($image) {
2
- @if $output-bourbon-deprecation-warnings == true {
3
- @warn "[Bourbon] [Deprecation] `_radial-gradient-parser` is " +
4
- "deprecated and will be removed in 5.0.0.";
5
- }
6
-
7
- $image: unquote($image);
8
- $gradients: ();
9
- $start: str-index($image, "(");
10
- $end: str-index($image, ",");
11
- $first-val: str-slice($image, $start + 1, $end - 1);
12
-
13
- $prefix: str-slice($image, 1, $start);
14
- $suffix: str-slice($image, $end, str-length($image));
15
-
16
- $is-spec-syntax: str-index($first-val, "at");
17
-
18
- @if $is-spec-syntax and $is-spec-syntax > 1 {
19
- $keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
20
- $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
21
- $pos: append($pos, $keyword, comma);
22
-
23
- $gradients: (
24
- webkit-image: -webkit- + $prefix + $pos + $suffix,
25
- spec-image: $image
26
- );
27
- }
28
-
29
- @else if $is-spec-syntax == 1 {
30
- $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
31
-
32
- $gradients: (
33
- webkit-image: -webkit- + $prefix + $pos + $suffix,
34
- spec-image: $image
35
- );
36
- }
37
-
38
- @else if str-index($image, "cover") or str-index($image, "contain") {
39
- @warn "Radial-gradient needs to be updated to conform to latest spec.";
40
-
41
- $gradients: (
42
- webkit-image: null,
43
- spec-image: $image
44
- );
45
- }
46
-
47
- @else {
48
- $gradients: (
49
- webkit-image: -webkit- + $image,
50
- spec-image: $image
51
- );
52
- }
53
-
54
- @return $gradients;
55
- }
@@ -1,28 +0,0 @@
1
- @function _radial-positions-parser($gradient-pos) {
2
- @if $output-bourbon-deprecation-warnings == true {
3
- @warn "[Bourbon] [Deprecation] `_radial-positions-parser` is " +
4
- "deprecated and will be removed in 5.0.0.";
5
- }
6
-
7
- $user-deprecation-warnings-setting: $output-bourbon-deprecation-warnings;
8
- $output-bourbon-deprecation-warnings: false !global;
9
-
10
- $shape-size: nth($gradient-pos, 1);
11
- $pos: nth($gradient-pos, 2);
12
- $shape-size-spec: _shape-size-stripper($shape-size);
13
-
14
- $pre-spec: unquote(if($pos, "#{$pos}, ", null))
15
- unquote(if($shape-size, "#{$shape-size},", null));
16
- $pos-spec: if($pos, "at #{$pos}", null);
17
-
18
- $spec: "#{$shape-size-spec} #{$pos-spec}";
19
-
20
- // Add comma
21
- @if ($spec != " ") {
22
- $spec: "#{$spec},";
23
- }
24
-
25
- $output-bourbon-deprecation-warnings: $user-deprecation-warnings-setting !global;
26
-
27
- @return $pre-spec $spec;
28
- }
@@ -1,31 +0,0 @@
1
- // User for linear and radial gradients within background-image or border-image properties
2
-
3
- @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
4
- @if $output-bourbon-deprecation-warnings == true {
5
- @warn "[Bourbon] [Deprecation] `_render-gradients` is " +
6
- "deprecated and will be removed in 5.0.0.";
7
- }
8
-
9
- $pre-spec: null;
10
- $spec: null;
11
- $vendor-gradients: null;
12
- @if $gradient-type == linear {
13
- @if $gradient-positions {
14
- $pre-spec: nth($gradient-positions, 1);
15
- $spec: nth($gradient-positions, 2);
16
- }
17
- }
18
- @else if $gradient-type == radial {
19
- $pre-spec: nth($gradient-positions, 1);
20
- $spec: nth($gradient-positions, 2);
21
- }
22
-
23
- @if $vendor {
24
- $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
25
- }
26
- @else if $vendor == false {
27
- $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
28
- $vendor-gradients: unquote($vendor-gradients);
29
- }
30
- @return $vendor-gradients;
31
- }
@@ -1,15 +0,0 @@
1
- @function _shape-size-stripper($shape-size) {
2
- @if $output-bourbon-deprecation-warnings == true {
3
- @warn "[Bourbon] [Deprecation] `_shape-size-stripper` is " +
4
- "deprecated and will be removed in 5.0.0.";
5
- }
6
-
7
- $shape-size-spec: null;
8
- @each $value in $shape-size {
9
- @if ($value == "cover") or ($value == "contain") {
10
- $value: null;
11
- }
12
- $shape-size-spec: "#{$shape-size-spec} #{$value}";
13
- }
14
- @return $shape-size-spec;
15
- }
@@ -1,55 +0,0 @@
1
- //************************************************************************//
2
- // Helper function for linear/radial-gradient-parsers.
3
- // Source: http://sassmeister.com/gist/9647408
4
- //************************************************************************//
5
- @function _str-to-num($string) {
6
- @if $output-bourbon-deprecation-warnings == true {
7
- @warn "[Bourbon] [Deprecation] `_str-to-num` is " +
8
- "deprecated and will be removed in 5.0.0.";
9
- }
10
-
11
- // Matrices
12
- $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
13
- $numbers: 0 1 2 3 4 5 6 7 8 9;
14
-
15
- // Result
16
- $result: 0;
17
- $divider: 0;
18
- $minus: false;
19
-
20
- // Looping through all characters
21
- @for $i from 1 through str-length($string) {
22
- $character: str-slice($string, $i, $i);
23
- $index: index($strings, $character);
24
-
25
- @if $character == "-" {
26
- $minus: true;
27
- }
28
-
29
- @else if $character == "." {
30
- $divider: 1;
31
- }
32
-
33
- @else {
34
- @if not $index {
35
- $result: if($minus, $result * -1, $result);
36
- @return _convert-units($result, str-slice($string, $i));
37
- }
38
-
39
- $number: nth($numbers, $index);
40
-
41
- @if $divider == 0 {
42
- $result: $result * 10;
43
- }
44
-
45
- @else {
46
- // Move the decimal dot to the left
47
- $divider: $divider * 10;
48
- $number: $number / $divider;
49
- }
50
-
51
- $result: $result + $number;
52
- }
53
- }
54
- @return if($minus, $result * -1, $result);
55
- }
@@ -1,7 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it.
4
- ///
5
- /// @type Bool
6
-
7
- $asset-pipeline: false !default;
@@ -1,8 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Enable or disable output of Bourbon’s deprecation-related Sass warnings.
4
- /// This variable must be declared _before_ importing Bourbon.
5
- ///
6
- /// @type Bool
7
-
8
- $output-bourbon-deprecation-warnings: true !default;
@@ -1,9 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Global variables to enable or disable vendor prefixes
4
-
5
- $prefix-for-webkit: true !default;
6
- $prefix-for-mozilla: true !default;
7
- $prefix-for-microsoft: true !default;
8
- $prefix-for-opera: true !default;
9
- $prefix-for-spec: true !default;
@@ -1 +0,0 @@
1
- $em-base: 16px !default;
@@ -1,11 +0,0 @@
1
- // Mixins
2
- @import "mixins/clearfix";
3
-
4
- // Functions
5
- @import "functions/private";
6
- @import "functions/new-breakpoint";
7
-
8
- // Settings
9
- @import "settings/grid";
10
- @import "settings/visual-grid";
11
- @import "settings/disable-warnings";
@@ -1,23 +0,0 @@
1
- // Neat 1.8.0
2
- // http://neat.bourbon.io
3
- // Copyright 2012-2015 thoughtbot, inc.
4
- // MIT License
5
-
6
- // Helpers
7
- @import "neat-helpers";
8
-
9
- // Grid
10
- @import "grid/private";
11
- @import "grid/box-sizing";
12
- @import "grid/omega";
13
- @import "grid/outer-container";
14
- @import "grid/span-columns";
15
- @import "grid/row";
16
- @import "grid/shift";
17
- @import "grid/pad";
18
- @import "grid/fill-parent";
19
- @import "grid/media";
20
- @import "grid/to-deprecate";
21
- @import "grid/visual-grid";
22
- @import "grid/display-context";
23
- @import "grid/direction-context";
@@ -1,49 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat.
4
- ///
5
- /// @param {List} $query
6
- /// A list of media query features and values. Each `$feature` should have a corresponding `$value`.
7
- ///
8
- /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
9
- ///
10
- /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
11
- ///
12
- /// @param {Number (unitless)} $total-columns [$grid-columns]
13
- /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
14
- ///
15
- /// @example scss - Usage
16
- /// $mobile: new-breakpoint(max-width 480px 4);
17
- ///
18
- /// .element {
19
- /// @include media($mobile) {
20
- /// @include span-columns(4);
21
- /// }
22
- /// }
23
- ///
24
- /// @example css - CSS Output
25
- /// @media screen and (max-width: 480px) {
26
- /// .element {
27
- /// display: block;
28
- /// float: left;
29
- /// margin-right: 7.42297%;
30
- /// width: 100%;
31
- /// }
32
- /// .element:last-child {
33
- /// margin-right: 0;
34
- /// }
35
- /// }
36
-
37
- @function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) {
38
- @if length($query) == 1 {
39
- $query: $default-feature nth($query, 1) $total-columns;
40
- } @else if is-even(length($query)) {
41
- $query: append($query, $total-columns);
42
- }
43
-
44
- @if is-not(belongs-to($query, $visual-grid-breakpoints)) {
45
- $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global;
46
- }
47
-
48
- @return $query;
49
- }
@@ -1,114 +0,0 @@
1
- // Not function for Libsass compatibility
2
- // https://github.com/sass/libsass/issues/368
3
- @function is-not($value) {
4
- @return if($value, false, true);
5
- }
6
-
7
- // Checks if a number is even
8
- @function is-even($int) {
9
- @return $int % 2 == 0;
10
- }
11
-
12
- // Checks if an element belongs to a list or not
13
- @function belongs-to($tested-item, $list) {
14
- @return is-not(not-belongs-to($tested-item, $list));
15
- }
16
-
17
- @function not-belongs-to($tested-item, $list) {
18
- @return is-not(index($list, $tested-item));
19
- }
20
-
21
- // Contains display value
22
- @function contains-display-value($query) {
23
- @return belongs-to(table, $query)
24
- or belongs-to(block, $query)
25
- or belongs-to(inline-block, $query)
26
- or belongs-to(inline, $query);
27
- }
28
-
29
- // Parses the first argument of span-columns()
30
- @function container-span($span: $span) {
31
- @if length($span) == 3 {
32
- $container-columns: nth($span, 3);
33
- @return $container-columns;
34
- } @else if length($span) == 2 {
35
- $container-columns: nth($span, 2);
36
- @return $container-columns;
37
- }
38
-
39
- @return $grid-columns;
40
- }
41
-
42
- @function container-shift($shift: $shift) {
43
- $parent-columns: $grid-columns !default !global;
44
-
45
- @if length($shift) == 3 {
46
- $container-columns: nth($shift, 3);
47
- @return $container-columns;
48
- } @else if length($shift) == 2 {
49
- $container-columns: nth($shift, 2);
50
- @return $container-columns;
51
- }
52
-
53
- @return $parent-columns;
54
- }
55
-
56
- // Generates a striped background
57
- @function gradient-stops($grid-columns, $color: $visual-grid-color) {
58
- $transparent: transparent;
59
-
60
- $column-width: flex-grid(1, $grid-columns);
61
- $gutter-width: flex-gutter($grid-columns);
62
- $column-offset: $column-width;
63
-
64
- $values: ($transparent 0, $color 0);
65
-
66
- @for $i from 1 to $grid-columns*2 {
67
- @if is-even($i) {
68
- $values: append($values, $transparent $column-offset, comma);
69
- $values: append($values, $color $column-offset, comma);
70
- $column-offset: $column-offset + $column-width;
71
- } @else {
72
- $values: append($values, $color $column-offset, comma);
73
- $values: append($values, $transparent $column-offset, comma);
74
- $column-offset: $column-offset + $gutter-width;
75
- }
76
- }
77
-
78
- @return $values;
79
- }
80
-
81
- // Layout direction
82
- @function get-direction($layout, $default) {
83
- $direction: null;
84
-
85
- @if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" {
86
- $direction: direction-from-layout($layout);
87
- } @else {
88
- $direction: direction-from-layout($default);
89
- }
90
-
91
- @return $direction;
92
- }
93
-
94
- @function direction-from-layout($layout) {
95
- $direction: null;
96
-
97
- @if to-upper-case($layout) == "LTR" {
98
- $direction: right;
99
- } @else {
100
- $direction: left;
101
- }
102
-
103
- @return $direction;
104
- }
105
-
106
- @function get-opposite-direction($direction) {
107
- $opposite-direction: left;
108
-
109
- @if $direction == "left" {
110
- $opposite-direction: right;
111
- }
112
-
113
- @return $opposite-direction;
114
- }
@@ -1,15 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- @if $border-box-sizing == true {
4
- html { // http://bit.ly/1qk2tVR
5
- box-sizing: border-box;
6
- }
7
-
8
- * {
9
- &,
10
- &::after,
11
- &::before {
12
- box-sizing: inherit;
13
- }
14
- }
15
- }
@@ -1,33 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Changes the direction property used by other mixins called in the code block argument.
4
- ///
5
- /// @param {String} $direction [left-to-right]
6
- /// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`.
7
- ///
8
- /// @example scss - Usage
9
- /// @include direction-context(right-to-left) {
10
- /// .right-to-left-block {
11
- /// @include span-columns(6);
12
- /// }
13
- /// }
14
- ///
15
- /// @example css - CSS Output
16
- /// .right-to-left-block {
17
- /// float: right;
18
- /// ...
19
- /// }
20
-
21
- @mixin direction-context($direction: left-to-right) {
22
- $scope-direction: $layout-direction;
23
-
24
- @if to-lower-case($direction) == "left-to-right" {
25
- $layout-direction: LTR !global;
26
- } @else if to-lower-case($direction) == "right-to-left" {
27
- $layout-direction: RTL !global;
28
- }
29
-
30
- @content;
31
-
32
- $layout-direction: $scope-direction !global;
33
- }
@@ -1,28 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Changes the display property used by other mixins called in the code block argument.
4
- ///
5
- /// @param {String} $display [block]
6
- /// Display value to be used within the block. Can be `table` or `block`.
7
- ///
8
- /// @example scss
9
- /// @include display-context(table) {
10
- /// .display-table {
11
- /// @include span-columns(6);
12
- /// }
13
- /// }
14
- ///
15
- /// @example css
16
- /// .display-table {
17
- /// display: table-cell;
18
- /// ...
19
- /// }
20
-
21
- @mixin display-context($display: block) {
22
- $scope-display: $container-display-table;
23
- $container-display-table: $display == table !global;
24
-
25
- @content;
26
-
27
- $container-display-table: $scope-display !global;
28
- }
@@ -1,22 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Forces the element to fill its parent container.
4
- ///
5
- /// @example scss - Usage
6
- /// .element {
7
- /// @include fill-parent;
8
- /// }
9
- ///
10
- /// @example css - CSS Output
11
- /// .element {
12
- /// width: 100%;
13
- /// box-sizing: border-box;
14
- /// }
15
-
16
- @mixin fill-parent() {
17
- width: 100%;
18
-
19
- @if $border-box-sizing == false {
20
- box-sizing: border-box;
21
- }
22
- }
@@ -1,92 +0,0 @@
1
- @charset "UTF-8";
2
-
3
- /// Outputs a media-query block with an optional grid context (the total number of columns used in the grid).
4
- ///
5
- /// @param {List} $query
6
- /// A list of media query features and values, where each `$feature` should have a corresponding `$value`.
7
- /// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
8
- ///
9
- /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
10
- ///
11
- /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`).
12
- ///
13
- ///
14
- /// @param {Number (unitless)} $total-columns [$grid-columns]
15
- /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
16
- ///
17
- /// @example scss - Usage
18
- /// .responsive-element {
19
- /// @include media(769px) {
20
- /// @include span-columns(6);
21
- /// }
22
- /// }
23
- ///
24
- /// .new-context-element {
25
- /// @include media(min-width 320px max-width 480px, 6) {
26
- /// @include span-columns(6);
27
- /// }
28
- /// }
29
- ///
30
- /// @example css - CSS Output
31
- /// @media screen and (min-width: 769px) {
32
- /// .responsive-element {
33
- /// display: block;
34
- /// float: left;
35
- /// margin-right: 2.35765%;
36
- /// width: 48.82117%;
37
- /// }
38
- ///
39
- /// .responsive-element:last-child {
40
- /// margin-right: 0;
41
- /// }
42
- /// }
43
- ///
44
- /// @media screen and (min-width: 320px) and (max-width: 480px) {
45
- /// .new-context-element {
46
- /// display: block;
47
- /// float: left;
48
- /// margin-right: 4.82916%;
49
- /// width: 100%;
50
- /// }
51
- ///
52
- /// .new-context-element:last-child {
53
- /// margin-right: 0;
54
- /// }
55
- /// }
56
-
57
- @mixin media($query: $feature $value $columns, $total-columns: $grid-columns) {
58
- @if length($query) == 1 {
59
- @media screen and ($default-feature: nth($query, 1)) {
60
- $default-grid-columns: $grid-columns;
61
- $grid-columns: $total-columns !global;
62
- @content;
63
- $grid-columns: $default-grid-columns !global;
64
- }
65
- } @else {
66
- $loop-to: length($query);
67
- $media-query: "screen and ";
68
- $default-grid-columns: $grid-columns;
69
- $grid-columns: $total-columns !global;
70
-
71
- @if is-not(is-even(length($query))) {
72
- $grid-columns: nth($query, $loop-to) !global;
73
- $loop-to: $loop-to - 1;
74
- }
75
-
76
- $i: 1;
77
- @while $i <= $loop-to {
78
- $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") ";
79
-
80
- @if ($i + 1) != $loop-to {
81
- $media-query: $media-query + "and ";
82
- }
83
-
84
- $i: $i + 2;
85
- }
86
-
87
- @media #{$media-query} {
88
- @content;
89
- $grid-columns: $default-grid-columns !global;
90
- }
91
- }
92
- }