docks_app 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. data/.editorconfig +8 -0
  2. data/.gitignore +22 -0
  3. data/.rubocop.yml +20 -0
  4. data/.travis.yml +10 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +35 -0
  8. data/Rakefile +3 -0
  9. data/bin/docks +5 -0
  10. data/config/json/docks_config.json +71 -0
  11. data/config/ruby/docks_config.rb +127 -0
  12. data/config/yaml/docks_config.yml +70 -0
  13. data/docks.gemspec +38 -0
  14. data/lib/docks/build.rb +300 -0
  15. data/lib/docks/cache.rb +143 -0
  16. data/lib/docks/command_line.rb +65 -0
  17. data/lib/docks/configuration.rb +217 -0
  18. data/lib/docks/containers/base_container.rb +103 -0
  19. data/lib/docks/containers/class_container.rb +39 -0
  20. data/lib/docks/containers/component_container.rb +92 -0
  21. data/lib/docks/containers/demo_container.rb +105 -0
  22. data/lib/docks/containers/factory_container.rb +12 -0
  23. data/lib/docks/containers/function_container.rb +46 -0
  24. data/lib/docks/containers/mixin_container.rb +19 -0
  25. data/lib/docks/containers/pattern_container.rb +168 -0
  26. data/lib/docks/containers/pattern_library_container.rb +77 -0
  27. data/lib/docks/containers/state_container.rb +9 -0
  28. data/lib/docks/containers/symbol_container.rb +77 -0
  29. data/lib/docks/containers/variable_container.rb +47 -0
  30. data/lib/docks/containers/variant_container.rb +9 -0
  31. data/lib/docks/containers/variation_container.rb +38 -0
  32. data/lib/docks/containers.rb +25 -0
  33. data/lib/docks/descriptor.rb +60 -0
  34. data/lib/docks/errors.rb +5 -0
  35. data/lib/docks/group.rb +66 -0
  36. data/lib/docks/helpers/github_helper.rb +29 -0
  37. data/lib/docks/helpers/path_helper.rb +94 -0
  38. data/lib/docks/helpers/render_helper.rb +87 -0
  39. data/lib/docks/helpers.rb +19 -0
  40. data/lib/docks/languages/base_language.rb +17 -0
  41. data/lib/docks/languages/coffeescript_language.rb +30 -0
  42. data/lib/docks/languages/common_types/markup_language.rb +71 -0
  43. data/lib/docks/languages/css_language.rb +13 -0
  44. data/lib/docks/languages/erb_language.rb +21 -0
  45. data/lib/docks/languages/haml_language.rb +21 -0
  46. data/lib/docks/languages/html_language.rb +10 -0
  47. data/lib/docks/languages/javascript_language.rb +42 -0
  48. data/lib/docks/languages/json_language.rb +18 -0
  49. data/lib/docks/languages/less_language.rb +33 -0
  50. data/lib/docks/languages/markdown_language.rb +10 -0
  51. data/lib/docks/languages/sass_language.rb +36 -0
  52. data/lib/docks/languages/slim_language.rb +21 -0
  53. data/lib/docks/languages/stylus_language.rb +26 -0
  54. data/lib/docks/languages/yaml_language.rb +18 -0
  55. data/lib/docks/languages.rb +103 -0
  56. data/lib/docks/markdown.rb +18 -0
  57. data/lib/docks/messenger.rb +69 -0
  58. data/lib/docks/naming_conventions/base_naming_convention.rb +9 -0
  59. data/lib/docks/naming_conventions/bem_naming_convention.rb +45 -0
  60. data/lib/docks/naming_conventions/suit_naming_convention.rb +45 -0
  61. data/lib/docks/naming_conventions.rb +21 -0
  62. data/lib/docks/ostruct.rb +17 -0
  63. data/lib/docks/parser.rb +86 -0
  64. data/lib/docks/parsers/base_parser.rb +128 -0
  65. data/lib/docks/parsers/coffeescript_parser.rb +30 -0
  66. data/lib/docks/parsers/css_parser.rb +27 -0
  67. data/lib/docks/parsers/javascript_parser.rb +30 -0
  68. data/lib/docks/parsers/less_parser.rb +22 -0
  69. data/lib/docks/parsers/sass_parser.rb +31 -0
  70. data/lib/docks/parsers/stylus_parser.rb +28 -0
  71. data/lib/docks/process.rb +60 -0
  72. data/lib/docks/processors.rb +416 -0
  73. data/lib/docks/renderers/base_renderer.rb +64 -0
  74. data/lib/docks/renderers/common_features/capturable.rb +69 -0
  75. data/lib/docks/renderers/common_features/helperable.rb +23 -0
  76. data/lib/docks/renderers/erb_renderer.rb +68 -0
  77. data/lib/docks/renderers/haml_renderer.rb +37 -0
  78. data/lib/docks/renderers/slim_renderer.rb +33 -0
  79. data/lib/docks/symbol_sources/base_symbol_source.rb +12 -0
  80. data/lib/docks/symbol_sources/jquery_symbol_source.rb +17 -0
  81. data/lib/docks/symbol_sources/mdn_symbol_source.rb +35 -0
  82. data/lib/docks/symbol_sources/sass_symbol_source.rb +27 -0
  83. data/lib/docks/symbol_sources.rb +28 -0
  84. data/lib/docks/tags/access_tag.rb +27 -0
  85. data/lib/docks/tags/activate_with_tag.rb +17 -0
  86. data/lib/docks/tags/active_tag.rb +14 -0
  87. data/lib/docks/tags/alias_tag.rb +17 -0
  88. data/lib/docks/tags/author_tag.rb +19 -0
  89. data/lib/docks/tags/base_tag.rb +52 -0
  90. data/lib/docks/tags/beta_tag.rb +26 -0
  91. data/lib/docks/tags/class_tag.rb +16 -0
  92. data/lib/docks/tags/compatibility_tag.rb +19 -0
  93. data/lib/docks/tags/demo_type_tag.rb +14 -0
  94. data/lib/docks/tags/deprecated_tag.rb +26 -0
  95. data/lib/docks/tags/description_tag.rb +99 -0
  96. data/lib/docks/tags/example_tag.rb +20 -0
  97. data/lib/docks/tags/factory_tag.rb +16 -0
  98. data/lib/docks/tags/for_tag.rb +23 -0
  99. data/lib/docks/tags/group_tag.rb +10 -0
  100. data/lib/docks/tags/helper_tag.rb +13 -0
  101. data/lib/docks/tags/include_with_tag.rb +57 -0
  102. data/lib/docks/tags/javascript_action_tag.rb +10 -0
  103. data/lib/docks/tags/link_tag.rb +18 -0
  104. data/lib/docks/tags/markup_tag.rb +106 -0
  105. data/lib/docks/tags/member_tag.rb +37 -0
  106. data/lib/docks/tags/method_tag.rb +18 -0
  107. data/lib/docks/tags/name_tag.rb +10 -0
  108. data/lib/docks/tags/object_tag.rb +15 -0
  109. data/lib/docks/tags/param_tag.rb +94 -0
  110. data/lib/docks/tags/pattern_tag.rb +21 -0
  111. data/lib/docks/tags/preclude_tag.rb +17 -0
  112. data/lib/docks/tags/private_tag.rb +15 -0
  113. data/lib/docks/tags/property_tag.rb +18 -0
  114. data/lib/docks/tags/public_tag.rb +15 -0
  115. data/lib/docks/tags/require_tag.rb +47 -0
  116. data/lib/docks/tags/returns_tag.rb +31 -0
  117. data/lib/docks/tags/set_by_tag.rb +18 -0
  118. data/lib/docks/tags/signature_tag.rb +35 -0
  119. data/lib/docks/tags/since_tag.rb +26 -0
  120. data/lib/docks/tags/source_tag.rb +12 -0
  121. data/lib/docks/tags/state_tag.rb +21 -0
  122. data/lib/docks/tags/static_tag.rb +14 -0
  123. data/lib/docks/tags/subcomponent_tag.rb +68 -0
  124. data/lib/docks/tags/subtitle_tag.rb +11 -0
  125. data/lib/docks/tags/symbol_type_tag.rb +10 -0
  126. data/lib/docks/tags/throws_tag.rb +30 -0
  127. data/lib/docks/tags/title_tag.rb +10 -0
  128. data/lib/docks/tags/type_tag.rb +10 -0
  129. data/lib/docks/tags/value_tag.rb +10 -0
  130. data/lib/docks/tags/variant_tag.rb +21 -0
  131. data/lib/docks/tags/variation_tag.rb +136 -0
  132. data/lib/docks/tags.rb +103 -0
  133. data/lib/docks/templates.rb +122 -0
  134. data/lib/docks/themes.rb +19 -0
  135. data/lib/docks/types.rb +26 -0
  136. data/lib/docks/version.rb +3 -0
  137. data/lib/docks.rb +37 -0
  138. data/spec/fixtures/build/scripts/bar/bar_2.js +1 -0
  139. data/spec/fixtures/build/scripts/bar.js +1 -0
  140. data/spec/fixtures/build/styles/foo/foo-2.css +1 -0
  141. data/spec/fixtures/build/styles/foo.css +1 -0
  142. data/spec/fixtures/build/templates/baz/baz_2.erb +1 -0
  143. data/spec/fixtures/build/templates/baz.erb +1 -0
  144. data/spec/fixtures/grouper/components/button/button.coffee +0 -0
  145. data/spec/fixtures/grouper/components/button/button.haml +0 -0
  146. data/spec/fixtures/grouper/components/button/button.scss +0 -0
  147. data/spec/fixtures/grouper/components/checkbox/_checkbox.haml +0 -0
  148. data/spec/fixtures/grouper/components/checkbox/_checkbox.scss +0 -0
  149. data/spec/fixtures/grouper/components/checkbox/checkbox.coffee +0 -0
  150. data/spec/fixtures/grouper/components/form/form.coffee +0 -0
  151. data/spec/fixtures/grouper/components/form/form.m +0 -0
  152. data/spec/fixtures/grouper/components/form/form.scss +0 -0
  153. data/spec/fixtures/grouper/components/next-expanding-textarea/_next-expanding-textarea.scss +0 -0
  154. data/spec/fixtures/grouper/components/next-expanding-textarea/_next_expanding_textarea.coffee +0 -0
  155. data/spec/fixtures/grouper/components/next-expanding-textarea/next-expanding-textarea.haml +0 -0
  156. data/spec/fixtures/grouper/components/next-tab/next-tab.coffee +0 -0
  157. data/spec/fixtures/grouper/components/next-tab/next-tab.haml +0 -0
  158. data/spec/fixtures/grouper/components/next-tab/next-tab.scss +0 -0
  159. data/spec/fixtures/grouper/components/segmented control/segmented control.coffee +0 -0
  160. data/spec/fixtures/grouper/components/segmented control/segmented control.haml +0 -0
  161. data/spec/fixtures/grouper/components/segmented control/segmented control.min.html +0 -0
  162. data/spec/fixtures/grouper/components/segmented control/segmented control.scss +0 -0
  163. data/spec/fixtures/grouper/markup/list-view.haml +0 -0
  164. data/spec/fixtures/grouper/markup/resizable/resizable.haml +0 -0
  165. data/spec/fixtures/grouper/markup/toggle.haml +0 -0
  166. data/spec/fixtures/grouper/scripts/resizable/resizable.coffee +0 -0
  167. data/spec/fixtures/grouper/scripts/toggle.coffee +0 -0
  168. data/spec/fixtures/grouper/style/_list-view.scss +0 -0
  169. data/spec/fixtures/grouper/style/_toggle.scss +0 -0
  170. data/spec/fixtures/languages/stub.json +3 -0
  171. data/spec/fixtures/languages/stub.yml +2 -0
  172. data/spec/fixtures/parsers/coffeescript_parser_fixture_basic.coffee +20 -0
  173. data/spec/fixtures/parsers/coffeescript_parser_fixture_complex.coffee +80 -0
  174. data/spec/fixtures/parsers/css_parser_fixture_basic.css +44 -0
  175. data/spec/fixtures/parsers/css_parser_fixture_complex.css +120 -0
  176. data/spec/fixtures/parsers/javascript_parser_fixture_basic.js +27 -0
  177. data/spec/fixtures/parsers/javascript_parser_fixture_complex.js +85 -0
  178. data/spec/fixtures/parsers/sass_parser_fixture_basic.scss +39 -0
  179. data/spec/fixtures/parsers/sass_parser_fixture_complex.scss +149 -0
  180. data/spec/fixtures/parsers/stylus_parser_fixture_basic.styl +34 -0
  181. data/spec/fixtures/parsers/stylus_parser_fixture_complex.styl +113 -0
  182. data/spec/fixtures/processors/join_with_smart_line_breaks/code_blocks.txt +10 -0
  183. data/spec/fixtures/processors/join_with_smart_line_breaks/headings.txt +15 -0
  184. data/spec/fixtures/processors/join_with_smart_line_breaks/lists.txt +21 -0
  185. data/spec/fixtures/processors/join_with_smart_line_breaks/lists_with_nesting.txt +13 -0
  186. data/spec/fixtures/processors/join_with_smart_line_breaks/multiple_paragraphs.txt +11 -0
  187. data/spec/fixtures/renderers/helpers.rb +37 -0
  188. data/spec/fixtures/renderers/html_output.html +7 -0
  189. data/spec/fixtures/renderers/templates/layouts/application.html.erb +0 -0
  190. data/spec/fixtures/renderers/templates/layouts/more/subdirectory.html.erb +0 -0
  191. data/spec/fixtures/renderers/templates/partials/_leading_underscore.html.erb +1 -0
  192. data/spec/fixtures/renderers/templates/partials/more/_subdirectory.html.erb +1 -0
  193. data/spec/fixtures/renderers/templates/partials/partial.html.erb +0 -0
  194. data/spec/fixtures/renderers/templates/partials/template.html.erb +1 -0
  195. data/spec/fixtures/renderers/templates/template.html.erb +1 -0
  196. data/spec/fixtures/tags/description/button.md +24 -0
  197. data/spec/fixtures/tags/description/class.md +27 -0
  198. data/spec/fixtures/tags/description/component.md +23 -0
  199. data/spec/fixtures/tags/description/function.md +30 -0
  200. data/spec/lib/build_spec.rb +467 -0
  201. data/spec/lib/cache_spec.rb +175 -0
  202. data/spec/lib/command_line_spec.rb +77 -0
  203. data/spec/lib/configuration_spec.rb +180 -0
  204. data/spec/lib/containers/base_container_spec.rb +214 -0
  205. data/spec/lib/containers/class_container_spec.rb +209 -0
  206. data/spec/lib/containers/component_container_spec.rb +158 -0
  207. data/spec/lib/containers/demo_container_spec.rb +113 -0
  208. data/spec/lib/containers/function_container_spec.rb +116 -0
  209. data/spec/lib/containers/mixin_container_spec.rb +4 -0
  210. data/spec/lib/containers/pattern_container_spec.rb +291 -0
  211. data/spec/lib/containers/pattern_library_container_spec.rb +130 -0
  212. data/spec/lib/containers/symbol_container_spec.rb +216 -0
  213. data/spec/lib/containers/variable_container_spec.rb +116 -0
  214. data/spec/lib/containers/variation_container_spec.rb +52 -0
  215. data/spec/lib/containers_spec.rb +22 -0
  216. data/spec/lib/descriptor_spec.rb +73 -0
  217. data/spec/lib/group_spec.rb +151 -0
  218. data/spec/lib/helpers/path_helper_spec.rb +202 -0
  219. data/spec/lib/helpers/render_helper_spec.rb +159 -0
  220. data/spec/lib/helpers_spec.rb +35 -0
  221. data/spec/lib/languages/base_language_spec.rb +32 -0
  222. data/spec/lib/languages/coffeescript_language_spec.rb +52 -0
  223. data/spec/lib/languages/css_language_spec.rb +13 -0
  224. data/spec/lib/languages/erb_language_spec.rb +33 -0
  225. data/spec/lib/languages/haml_language_spec.rb +32 -0
  226. data/spec/lib/languages/javascript_language_spec.rb +54 -0
  227. data/spec/lib/languages/json_language_spec.rb +24 -0
  228. data/spec/lib/languages/less_language_spec.rb +39 -0
  229. data/spec/lib/languages/markup_language_spec.rb +95 -0
  230. data/spec/lib/languages/sass_language_spec.rb +53 -0
  231. data/spec/lib/languages/slim_language_spec.rb +32 -0
  232. data/spec/lib/languages/stylus_language_spec.rb +34 -0
  233. data/spec/lib/languages/yaml_language_spec.rb +24 -0
  234. data/spec/lib/languages_spec.rb +127 -0
  235. data/spec/lib/markdown_spec.rb +63 -0
  236. data/spec/lib/messenger_spec.rb +1 -0
  237. data/spec/lib/naming_conventions/bem_naming_convention_spec.rb +112 -0
  238. data/spec/lib/naming_conventions/suit_naming_convention_spec.rb +107 -0
  239. data/spec/lib/naming_conventions_spec.rb +28 -0
  240. data/spec/lib/ostruct_spec.rb +15 -0
  241. data/spec/lib/parser_spec.rb +93 -0
  242. data/spec/lib/parsers/base_parser_spec.rb +128 -0
  243. data/spec/lib/parsers/coffeescript_parser_spec.rb +184 -0
  244. data/spec/lib/parsers/css_parser_spec.rb +136 -0
  245. data/spec/lib/parsers/javascript_parser_spec.rb +216 -0
  246. data/spec/lib/parsers/less_parser_spec.rb +111 -0
  247. data/spec/lib/parsers/sass_parser_spec.rb +233 -0
  248. data/spec/lib/parsers/stylus_parser_spec.rb +212 -0
  249. data/spec/lib/process_spec.rb +96 -0
  250. data/spec/lib/processors_spec.rb +555 -0
  251. data/spec/lib/renderers/base_renderer_spec.rb +122 -0
  252. data/spec/lib/renderers/common_features/helperable_spec.rb +30 -0
  253. data/spec/lib/renderers/erb_renderer_spec.rb +119 -0
  254. data/spec/lib/renderers/haml_renderer_spec.rb +103 -0
  255. data/spec/lib/renderers/slim_renderer_spec.rb +103 -0
  256. data/spec/lib/symbol_sources/jquery_symbol_source_spec.rb +25 -0
  257. data/spec/lib/symbol_sources/mdn_symbol_source_spec.rb +40 -0
  258. data/spec/lib/symbol_sources/sass_symbol_source_spec.rb +39 -0
  259. data/spec/lib/symbol_sources_spec.rb +19 -0
  260. data/spec/lib/tags/access_tag_spec.rb +32 -0
  261. data/spec/lib/tags/activate_with_tag_spec.rb +31 -0
  262. data/spec/lib/tags/active_tag_spec.rb +24 -0
  263. data/spec/lib/tags/alias_tag_spec.rb +31 -0
  264. data/spec/lib/tags/author_tag_spec.rb +172 -0
  265. data/spec/lib/tags/base_tag_spec.rb +21 -0
  266. data/spec/lib/tags/beta_tag_spec.rb +52 -0
  267. data/spec/lib/tags/class_tag_spec.rb +29 -0
  268. data/spec/lib/tags/compatibility_tag_spec.rb +159 -0
  269. data/spec/lib/tags/demo_type_tag_spec.rb +24 -0
  270. data/spec/lib/tags/deprecated_tag_spec.rb +50 -0
  271. data/spec/lib/tags/description_tag_spec.rb +242 -0
  272. data/spec/lib/tags/example_tag_spec.rb +37 -0
  273. data/spec/lib/tags/factory_tag_spec.rb +29 -0
  274. data/spec/lib/tags/for_tag_spec.rb +45 -0
  275. data/spec/lib/tags/group_tag_spec.rb +20 -0
  276. data/spec/lib/tags/helper_tag_spec.rb +22 -0
  277. data/spec/lib/tags/include_with_tag_spec.rb +74 -0
  278. data/spec/lib/tags/javascript_action_tag_spec.rb +20 -0
  279. data/spec/lib/tags/link_tag_spec.rb +49 -0
  280. data/spec/lib/tags/markup_tag_spec.rb +255 -0
  281. data/spec/lib/tags/member_tag_spec.rb +167 -0
  282. data/spec/lib/tags/method_tag_spec.rb +27 -0
  283. data/spec/lib/tags/name_tag_spec.rb +20 -0
  284. data/spec/lib/tags/object_tag_spec.rb +24 -0
  285. data/spec/lib/tags/param_tag_spec.rb +261 -0
  286. data/spec/lib/tags/pattern_tag_spec.rb +49 -0
  287. data/spec/lib/tags/preclude_tag_spec.rb +31 -0
  288. data/spec/lib/tags/private_tag_spec.rb +31 -0
  289. data/spec/lib/tags/property_tag_spec.rb +27 -0
  290. data/spec/lib/tags/public_tag_spec.rb +29 -0
  291. data/spec/lib/tags/require_tag_spec.rb +133 -0
  292. data/spec/lib/tags/returns_tag_spec.rb +85 -0
  293. data/spec/lib/tags/set_by_tag_spec.rb +92 -0
  294. data/spec/lib/tags/signature_tag_spec.rb +125 -0
  295. data/spec/lib/tags/since_tag_spec.rb +48 -0
  296. data/spec/lib/tags/state_tag_spec.rb +199 -0
  297. data/spec/lib/tags/static_tag_spec.rb +27 -0
  298. data/spec/lib/tags/subcomponent_tag_spec.rb +78 -0
  299. data/spec/lib/tags/subtitle_tag_spec.rb +13 -0
  300. data/spec/lib/tags/symbol_type_tag_spec.rb +20 -0
  301. data/spec/lib/tags/throws_tag_spec.rb +49 -0
  302. data/spec/lib/tags/title_tag_spec.rb +20 -0
  303. data/spec/lib/tags/type_tag_spec.rb +20 -0
  304. data/spec/lib/tags/value_tag_spec.rb +20 -0
  305. data/spec/lib/tags/variant_tag_spec.rb +13 -0
  306. data/spec/lib/tags/variation_tag_spec.rb +154 -0
  307. data/spec/lib/tags_spec.rb +264 -0
  308. data/spec/lib/templates_spec.rb +185 -0
  309. data/spec/lib/themes_spec.rb +32 -0
  310. data/spec/spec_helper.rb +34 -0
  311. data/tasks/rspec.rake +7 -0
  312. data/tasks/rubocop.rake +8 -0
  313. metadata +740 -0
data/.editorconfig ADDED
@@ -0,0 +1,8 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ trim_trailing_whitespace = true
7
+ end_of_line = lf
8
+ insert_final_newline = true
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .ruby-version
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ .docks
8
+ Gemfile.lock
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ tmp
17
+ *.bundle
18
+ *.so
19
+ *.o
20
+ *.a
21
+ mkmf.log
22
+ */.*
data/.rubocop.yml ADDED
@@ -0,0 +1,20 @@
1
+ Documentation:
2
+ Enabled: false
3
+
4
+ Style/StringLiterals:
5
+ EnforcedStyle: double_quotes
6
+
7
+ Style/MultilineOperationIndentation:
8
+ Enabled: false
9
+
10
+ Metrics/MethodLength:
11
+ Max: 15
12
+
13
+ Metrics/ClassLength:
14
+ Max: 125
15
+
16
+ Metrics/LineLength:
17
+ Max: 100
18
+
19
+ Metrics/AbcSize:
20
+ Max: 20
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1
6
+ - 2.2
7
+ - rbx-2
8
+ - ruby-head
9
+ notifications:
10
+ slack: lemon:SeSji4OVQ1qGtQ2Gg2iTLCge
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in docks.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Chris Sauve
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Docks
2
+
3
+ [![Build Status](https://travis-ci.org/docks-app/docks.svg?branch=master)](https://travis-ci.org/docks-app/docks)
4
+
5
+ Docks is for creating beautiful, live, styleguides.
6
+
7
+ A styleguide is a collection of your application’s visual and programmatic patterns.
8
+
9
+ Docks supports patterns for JavaScript, CoffeeScript, Sass, Less, Stylus, ERB, Slim, and Haml.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ gem 'docks'
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install docks
24
+
25
+ ## Usage
26
+
27
+ TODO: Write usage instructions here
28
+
29
+ ## Contributing
30
+
31
+ 1. Fork it ( https://github.com/[my-github-username]/docks/fork )
32
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
33
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
34
+ 4. Push to the branch (`git push origin my-new-feature`)
35
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ Dir.glob('tasks/**/*.rake').each(&method(:import))
data/bin/docks ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ require "docks"
3
+ require "docks/command_line"
4
+
5
+ Docks::CommandLine.new(ARGV).run
@@ -0,0 +1,71 @@
1
+ {
2
+ // An array of glob patterns specifying all source files. These will be the
3
+ // sources for all of your library's patterns. Include any style, script,
4
+ // markup, stub, and description files you have to document your patterns.
5
+ // These paths should be relative to the root of your project.
6
+ "sources": {{{sources}}},
7
+
8
+ // The destination folder in which you would like to generate the static
9
+ // pattern library. This path should be relative to the root of your project.
10
+ "destination": {{{destination}}},
11
+
12
+ // When generating your static styleguide, these assets will be included
13
+ // in the default layout file automatically (via a `link` tag when the asset
14
+ // is a stylesheet, and via a `script` tag when it is a JavaScript file).
15
+ //
16
+ // These assets must be compiled — Docks will not compile assets for you
17
+ // automatically. Feel free to omit this option if you are going to manually
18
+ // add the required asset tags to your layout file. These paths should be
19
+ // relative to the root of your project.
20
+ "compiled_assets": {{{compiled_assets}}},
21
+
22
+ "templates": {{{templates}}},
23
+
24
+ // The root path of your pattern library. When generating a static version,
25
+ // all pattern files will be nested inside this directory.
26
+ "mount_at": {{{mount_at}}},
27
+
28
+ "use_theme_assets": {{{use_theme_assets}}},
29
+
30
+ // The name of the Github repo for this project. This can either be the URL or
31
+ // in the form `<username>/<repo>`. The default theme uses this option, if
32
+ // passed, to provide links to create issue and view source for your pattern
33
+ // library's files.
34
+ "github_repo": {{{github_repo}}},
35
+
36
+ // This option allows you to specify the default template files to use and
37
+ // provide a list of patterns that will use custom templates for rendering.
38
+ // The special key `default` will set the default template to render for
39
+ // patterns that do not have a custom template. The special key `demo` will
40
+ // specify the template to use for rendering demos (the content that will
41
+ // appear in iframes in the default theme).
42
+ //
43
+ // To provide a custom template for any other pattern, simply use the pattern
44
+ // identifier as a key and the custom template (relative to the
45
+ // `asset_folders.templates` directory inside of the `library_assets` folder)
46
+ // as the value. For example, you could use `color: color.erb` to have the
47
+ // pattern with an ID of `color` use the template in (using the default
48
+ // folders): `<root>/pattern_library_assets/templates/color.erb`. To provide
49
+ // more complex matching or custom layouts in addition to custom templates,
50
+ // you must use the `.rb` version of this config file.
51
+ "custom_templates": {{{custom_templates}}},
52
+
53
+ // The naming convention to use for such things as identifying a state versus
54
+ // a variant and determining the base class of a given variation. There are
55
+ // a few bundled naming conventions, viewable under lib/docks/naming_conventions.
56
+ // You can either pass a string with the name of the desired naming convention
57
+ // (capitalization is important) or pass an instance of a naming convention
58
+ // class. If creating your own naming convention, make sure to inherit and
59
+ // override all methods in `Docks::NamingConventions::Base`.
60
+ "naming_convention": {{{ naming_convention }}},
61
+
62
+ // A list of file names that contain helper modules needed to render your
63
+ // components, or that you want available to be used inside your views. Every
64
+ // module in each of these files will be included in the renderer so that you
65
+ // have access to them in all of your templates. These files should be relative
66
+ // to the root of your project.
67
+ "helpers": {{{helpers}}},
68
+
69
+ "theme": {{{theme}}},
70
+ "paginate": {{{paginate}}}
71
+ }
@@ -0,0 +1,127 @@
1
+ Docks.configure do |config|
2
+
3
+ # An array of glob patterns specifying all source files. These will be the
4
+ # sources for all of your library's patterns. Include any style, script,
5
+ # markup, stub, and description files you have to document your patterns.
6
+ # These paths should be relative to the root of your project.
7
+ config.sources = {{{sources}}}
8
+
9
+ # The destination folder in which you would like to generate the static
10
+ # pattern library. This path should be relative to the root of your project.
11
+ config.destination = {{{destination}}}
12
+
13
+ # When generating your static styleguide, these assets will be included
14
+ # in the default layout file automatically (via a `link` tag when the asset
15
+ # is a stylesheet, and via a `script` tag when it is a JavaScript file).
16
+ #
17
+ # These assets must be compiled — Docks will not compile assets for you
18
+ # automatically. Feel free to omit this option if you are going to manually
19
+ # add the required asset tags to your layout file. These paths should be
20
+ # relative to the root of your project.
21
+ config.compiled_assets = {{{compiled_assets}}}
22
+
23
+ config.templates = {{{templates}}}
24
+
25
+ # The root path of your pattern library. When generating a static version,
26
+ # all pattern files will be nested inside this directory.
27
+ config.mount_at = {{{mount_at}}}
28
+
29
+ config.use_theme_assets = {{{use_theme_assets}}}
30
+
31
+ # The name of the Github repo for this project. This can either be the URL or
32
+ # in the form `<username>/<repo>`. The default theme uses this option, if
33
+ # passed, to provide links to create issue and view source for your pattern
34
+ # library's files.
35
+ config.github_repo = {{{github_repo}}}
36
+
37
+ # Yields an object that allows you to register custom templates for particular
38
+ # patterns. See `Docks::Templates` for all of the available template
39
+ # customizations. The basics are that you can set the fallback template,
40
+ # fallback layout file, and the template for demos with the `fallback=`,
41
+ # `default_layout=`, and `demo=` methods. You can also register a custom
42
+ # template for patterns matching a pattern ID by calling `Templates.register`
43
+ # like so:
44
+ #
45
+ # config.custom_templates do |templates|
46
+ # templates.register("color.html.erb", for: /color/)
47
+ # # or, equivalently, templates << Docks::Templates::Template.new("color.html.erb", for: /color/)
48
+ # end
49
+ #
50
+ # Which would register "color.html.erb" to be used for patterns whose name
51
+ # matches `/color/`. You can also call `Docks::Templates.register` with a
52
+ # hash of pattern: template pairs, in which the keys will be used as the
53
+ # "matcher" and the values will be the custom template to use for patterns
54
+ # with a matching name.
55
+ config.custom_templates = {{{custom_templates}}}
56
+
57
+ # The naming convention to use for such things as identifying a state versus
58
+ # a variant and determining the base class of a given variation. There are
59
+ # a few bundled naming conventions, viewable under lib/docks/naming_conventions.
60
+ # You can either pass a string with the name of the desired naming convention
61
+ # (capitalization is important) or pass an instance of a naming convention
62
+ # class. If creating your own naming convention, make sure to inherit and
63
+ # override all methods in `Docks::NamingConventions::Base`.
64
+ config.naming_convention = {{{naming_convention}}}
65
+
66
+ # A list of file names or Modules that contain helper modules needed to render
67
+ # your components, or that you want available to be used inside your views.
68
+ #
69
+ # If you pass a list of files, every module in each file will be included in
70
+ # the renderer so that you have access to them in all of your templates. These
71
+ # files should be relative to the root of your project.
72
+ #
73
+ # If you pass a list of modules, no additional work is required on your part.
74
+ # These will be included automatically in all template rendering.
75
+ config.helpers = {{{helpers}}}
76
+
77
+ # This option allows you to provide a custom lambda to determine what pattern
78
+ # a given string belongs to. The lambda should accept a single file name
79
+ # which may be either a filename (most commonly), or any other string (for
80
+ # example, this is used to try to match the name of a component to a markup
81
+ # file by first running both through this lambda). The default, if you do
82
+ # not provide anything for the option below (or provide an empty lambda)
83
+ # will strip leading underscores and normalize dashes and underscores of the
84
+ # extension-less base name of whatever string you pass to it. For details,
85
+ # see `lib/group.rb`.
86
+ config.pattern_id = lambda do |file|
87
+ end
88
+
89
+ # Yields an object that allows you to register custom tags. Your
90
+ # tag should extend `Docks::Tags::Base` (or a subclass). Once you have defined
91
+ # it, register the custom tag as follows:
92
+ #
93
+ # config.custom_tags { |tags| tags << MyCustomTagClass }
94
+ config.custom_tags do |tags|
95
+ end
96
+
97
+ # Yields an object that allows you to register custom languages. Your
98
+ # language should extend `Docks::Languages::Base`. (or a subclass) Once you
99
+ # have defined it, register the custom language as follows:
100
+ #
101
+ # config.custom_languages { |languages| languages << MyCustomLanguageClass }
102
+ config.custom_languages do |languages|
103
+ end
104
+
105
+ # Yields an object that allows you to register custom parsers. Your
106
+ # parser should extend `Docks::Parsers::Base` (or a subclass). The second
107
+ # argument should be a hash with a `:for` key that specifies a regular
108
+ # expression that will match files that should use this parser. Once you have
109
+ # defined it, register the custom parser as follows:
110
+ #
111
+ # config.custom_parsers { |parsers| parsers.register(MyCustomParserClass, for: /the_pattern_to_match/) }
112
+ config.custom_parsers do |parsers|
113
+ end
114
+
115
+ # Yields an object that allows you to register custom symbol sources (that is,
116
+ # objects that understand specific types that may be found in your
117
+ # documentation and that can provide links to the relevant documentation
118
+ # for those types). Your symbol source should extend `Docks::SymbolSources::Base`.
119
+ # Once you have defined it, register the custom source as follows:
120
+ #
121
+ # config.custom_symbol_sources { |symbol_sources| symbol_sources << MyCustomSourceClass }
122
+ config.custom_symbol_sources do |symbol_sources|
123
+ end
124
+
125
+ config.theme = {{{theme}}}
126
+ config.paginate = {{{paginate}}}
127
+ end
@@ -0,0 +1,70 @@
1
+ ---
2
+ # An array of glob patterns specifying all source files. These will be the
3
+ # sources for all of your library's patterns. Include any style, script,
4
+ # markup, stub, and description files you have to document your patterns.
5
+ # These paths should be relative to the root of your project.
6
+ sources: {{{sources}}}
7
+
8
+ # The destination folder in which you would like to generate the static
9
+ # pattern library. This path should be relative to the root of your project.
10
+ destination: {{{destination}}}
11
+
12
+ # When generating your static styleguide, these assets will be included
13
+ # in the default layout file automatically (via a `link` tag when the asset
14
+ # is a stylesheet, and via a `script` tag when it is a JavaScript file).
15
+ #
16
+ # These assets must be compiled — Docks will not compile assets for you
17
+ # automatically. Feel free to omit this option if you are going to manually
18
+ # add the required asset tags to your layout file. These paths should be
19
+ # relative to the root of your project.
20
+ compiled_assets: {{{compiled_assets}}}
21
+
22
+ templates: {{{templates}}}
23
+
24
+ # The root path of your pattern library. When generating a static version,
25
+ # all pattern files will be nested inside this directory.
26
+ mount_at: {{{mount_at}}}
27
+
28
+ use_theme_assets: {{{use_theme_assets}}}
29
+
30
+ # The name of the Github repo for this project. This can either be the URL or
31
+ # in the form `<username>/<repo>`. The default theme uses this option, if
32
+ # passed, to provide links to create issue and view source for your pattern
33
+ # library's files.
34
+ github_repo: {{{github_repo}}}
35
+
36
+ # This option allows you to specify the default template files to use and
37
+ # provide a list of patterns that will use custom templates for rendering.
38
+ # The special key `default` will set the default template to render for
39
+ # patterns that do not have a custom template. The special key `demo` will
40
+ # specify the template to use for rendering demos (the content that will
41
+ # appear in iframes in the default theme).
42
+ #
43
+ # To provide a custom template for any other pattern, simply use the pattern
44
+ # identifier as a key and the custom template (relative to the
45
+ # `asset_folders.templates` directory inside of the `library_assets` folder)
46
+ # as the value. For example, you could use `color: color.erb` to have the
47
+ # pattern with an ID of `color` use the template in (using the default
48
+ # folders): `<root>/pattern_library_assets/templates/color.erb`. To provide
49
+ # more complex matching or custom layouts in addition to custom templates,
50
+ # you must use the `.rb` version of this config file.
51
+ custom_templates: {{{custom_templates}}}
52
+
53
+ # The naming convention to use for such things as identifying a state versus
54
+ # a variant and determining the base class of a given variation. There are
55
+ # a few bundled naming conventions, viewable under `lib/docks/naming_conventions`.
56
+ # You can either pass a string with the name of the desired naming convention
57
+ # (capitalization is important) or pass an instance of a naming convention
58
+ # class. If creating your own naming convention, make sure to inherit and
59
+ # override all methods in `Docks::NamingConventions::Base`.
60
+ naming_convention: {{{naming_convention}}}
61
+
62
+ # A list of file names that contain helper modules needed to render your
63
+ # components, or that you want available to be used inside your views. Every
64
+ # module in each of these files will be included in the renderer so that you
65
+ # have access to them in all of your templates. These files should be relative
66
+ # to the root of your project.
67
+ helpers: {{{helpers}}}
68
+
69
+ theme: {{{theme}}}
70
+ paginate: {{{paginate}}}
data/docks.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ require "rubygems"
2
+
3
+ # -*- encoding: utf-8 -*-
4
+ $:.push File.expand_path("../lib", __FILE__)
5
+ require "docks/version"
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "docks_app"
9
+ s.version = Docks::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.required_ruby_version = ">= 1.9.3"
12
+ s.authors = ["Chris Sauve"]
13
+ s.email = ["chrismsauve@gmail.com"]
14
+ s.license = "MIT"
15
+ s.homepage = ""
16
+ s.summary = "A pattern library generator for front-end projects."
17
+ s.description = s.summary
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- spec/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+
24
+ s.add_runtime_dependency "redcarpet", "~> 3.1"
25
+ s.add_runtime_dependency "activesupport"
26
+ s.add_runtime_dependency "mustache", "~> 0.99.5"
27
+
28
+ s.add_development_dependency "bundler", "~> 1.3"
29
+ s.add_development_dependency "rubocop", "< 1.0"
30
+ s.add_development_dependency "rake", "~> 10.4"
31
+ s.add_development_dependency "rspec", "~> 3.0"
32
+ s.add_development_dependency "haml", "~> 4.0"
33
+ s.add_development_dependency "slim", "~> 3.0"
34
+ s.add_development_dependency "awesome_print", "~> 1.6"
35
+ s.add_development_dependency "rspec-html-matchers", "~> 0.7"
36
+ s.add_development_dependency "html2haml", "~> 2.0"
37
+ s.add_development_dependency "html2slim", "~> 0.2"
38
+ end