microformats 4.0.7 → 4.0.9

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 (366) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +10 -0
  3. data/.gitignore +33 -15
  4. data/.rspec +3 -2
  5. data/.rubocop +3 -0
  6. data/.rubocop.yml +25 -0
  7. data/.ruby-version +1 -0
  8. data/.simplecov +11 -0
  9. data/.travis.yml +14 -2
  10. data/CONTRIBUTING.md +103 -0
  11. data/Guardfile +2 -2
  12. data/LICENSE +116 -0
  13. data/README.md +112 -172
  14. data/Rakefile +6 -7
  15. data/bin/microformats +10 -9
  16. data/lib/microformats.rb +15 -14
  17. data/lib/microformats/absolute_uri.rb +4 -8
  18. data/lib/microformats/format_parser.rb +271 -251
  19. data/lib/microformats/parser.rb +38 -38
  20. data/lib/microformats/parser_core.rb +142 -109
  21. data/lib/microformats/property_parser.rb +42 -65
  22. data/lib/microformats/results/collection.rb +19 -38
  23. data/lib/microformats/results/parser_result.rb +25 -37
  24. data/lib/microformats/results/property_set.rb +24 -31
  25. data/lib/microformats/time_property_parser.rb +122 -118
  26. data/lib/microformats/version.rb +1 -1
  27. data/logo.svg +23 -0
  28. data/microformats.gemspec +35 -33
  29. metadata +140 -442
  30. data/LICENSE.md +0 -36
  31. data/spec/lib/microformats/absolute_uri_spec.rb +0 -56
  32. data/spec/lib/microformats/parser_spec.rb +0 -132
  33. data/spec/lib/microformats_spec.rb +0 -33
  34. data/spec/spec_helper.rb +0 -10
  35. data/spec/support/cases/microformats.org/microformats-2/microformats-2-0.html +0 -2
  36. data/spec/support/cases/microformats.org/microformats-2/microformats-2-0.js +0 -9
  37. data/spec/support/cases/microformats.org/microformats-2/microformats-2-1.html +0 -2
  38. data/spec/support/cases/microformats.org/microformats-2/microformats-2-1.js +0 -10
  39. data/spec/support/cases/microformats.org/microformats-2/microformats-2-2.html +0 -5
  40. data/spec/support/cases/microformats.org/microformats-2/microformats-2-2.js +0 -11
  41. data/spec/support/cases/microformats.org/microformats-2/microformats-2-3.html +0 -17
  42. data/spec/support/cases/microformats.org/microformats-2/microformats-2-3.js +0 -20
  43. data/spec/support/cases/microformats.org/microformats-2/microformats-2-4.html +0 -16
  44. data/spec/support/cases/microformats.org/microformats-2/microformats-2-4.js +0 -24
  45. data/spec/support/cases/microformats.org/microformats-2/microformats-2-5.html +0 -7
  46. data/spec/support/cases/microformats.org/microformats-2/microformats-2-5.js +0 -11
  47. data/spec/support/cases/microformats.org/microformats-2/microformats-2-6.html +0 -9
  48. data/spec/support/cases/microformats.org/microformats-2/microformats-2-6.js +0 -18
  49. data/spec/support/cases/microformats.org/microformats-2/microformats-2-7.html +0 -9
  50. data/spec/support/cases/microformats.org/microformats-2/microformats-2-7.js +0 -18
  51. data/spec/support/cases/microformats.org/microformats-2/microformats-2-8.html +0 -9
  52. data/spec/support/cases/microformats.org/microformats-2/microformats-2-8.js +0 -17
  53. data/spec/support/cases/microformats.org/microformats-2/microformats-2-9.html +0 -9
  54. data/spec/support/cases/microformats.org/microformats-2/microformats-2-9.js +0 -17
  55. data/spec/support/lib/edge_cases/blank_href.html +0 -23
  56. data/spec/support/lib/edge_cases/blank_href.js +0 -15
  57. data/spec/support/lib/edge_cases/blank_rel.html +0 -23
  58. data/spec/support/lib/edge_cases/blank_rel.js +0 -41
  59. data/spec/support/lib/edge_cases/blank_src.html +0 -24
  60. data/spec/support/lib/edge_cases/blank_src.js +0 -16
  61. data/spec/support/lib/edge_cases/blank_value.html +0 -5
  62. data/spec/support/lib/edge_cases/blank_value.js +0 -19
  63. data/spec/support/lib/edge_cases/relative.html +0 -29
  64. data/spec/support/lib/edge_cases/relative.js +0 -15
  65. data/spec/support/lib/edge_cases/vcp-dates.html +0 -13
  66. data/spec/support/lib/edge_cases/vcp-dates.js +0 -30
  67. data/spec/support/lib/microformats/blank_href.html +0 -23
  68. data/spec/support/lib/microformats/blank_href.js +0 -11
  69. data/spec/support/lib/microformats/implied_property/name-fail.html +0 -60
  70. data/spec/support/lib/microformats/implied_property/name-pass.html +0 -30
  71. data/spec/support/lib/microformats/implied_property/photo-fail.html +0 -60
  72. data/spec/support/lib/microformats/implied_property/photo-pass.html +0 -30
  73. data/spec/support/lib/microformats/implied_property/url-fail.html +0 -18
  74. data/spec/support/lib/microformats/implied_property/url-pass.html +0 -12
  75. data/spec/support/lib/microformats/implied_property/url-relative.html +0 -13
  76. data/spec/support/lib/microformats/implied_property/url-unnormalized.html +0 -12
  77. data/spec/support/lib/microformats/nested-format-with-property-of-same-name.html +0 -13
  78. data/spec/support/lib/microformats/nested-format-with-property-of-same-name.js +0 -16
  79. data/spec/support/lib/microformats/nested-format-with-property.html +0 -12
  80. data/spec/support/lib/microformats/nested-format-with-property.js +0 -16
  81. data/spec/support/lib/microformats/nested-format-without-property.html +0 -13
  82. data/spec/support/lib/microformats/nested-property.html +0 -12
  83. data/spec/support/lib/microformats/nested-property.js +0 -10
  84. data/spec/support/lib/microformats/rels-that-drop-the-base.html +0 -11
  85. data/spec/support/lib/microformats/rels-with-unnormalized-urls.html +0 -11
  86. data/spec/support/lib/microformats/rels.html +0 -12
  87. data/spec/support/lib/microformats/rels.js +0 -13
  88. data/spec/support/lib/microformats/simple.html +0 -23
  89. data/spec/support/lib/microformats/simple.js +0 -11
  90. data/vendor/tests/.gitignore +0 -25
  91. data/vendor/tests/LICENSE.md +0 -36
  92. data/vendor/tests/README.md +0 -48
  93. data/vendor/tests/app.js +0 -84
  94. data/vendor/tests/composer.json +0 -5
  95. data/vendor/tests/css/testsuite.css +0 -159
  96. data/vendor/tests/interface.js +0 -18
  97. data/vendor/tests/package.json +0 -27
  98. data/vendor/tests/tests/microformats-mixed/h-card/change-log.html +0 -63
  99. data/vendor/tests/tests/microformats-mixed/h-card/mixedpropertries.html +0 -14
  100. data/vendor/tests/tests/microformats-mixed/h-card/mixedpropertries.json +0 -22
  101. data/vendor/tests/tests/microformats-mixed/h-card/tworoots.html +0 -1
  102. data/vendor/tests/tests/microformats-mixed/h-card/tworoots.json +0 -10
  103. data/vendor/tests/tests/microformats-mixed/h-entry/mixedroots.html +0 -16
  104. data/vendor/tests/tests/microformats-mixed/h-entry/mixedroots.json +0 -38
  105. data/vendor/tests/tests/microformats-mixed/h-resume/change-log.html +0 -68
  106. data/vendor/tests/tests/microformats-mixed/h-resume/mixedroots.html +0 -16
  107. data/vendor/tests/tests/microformats-mixed/h-resume/mixedroots.json +0 -31
  108. data/vendor/tests/tests/microformats-v1/adr/change-log.html +0 -63
  109. data/vendor/tests/tests/microformats-v1/adr/simpleproperties.html +0 -8
  110. data/vendor/tests/tests/microformats-v1/adr/simpleproperties.json +0 -15
  111. data/vendor/tests/tests/microformats-v1/geo/abbrpattern.html +0 -5
  112. data/vendor/tests/tests/microformats-v1/geo/abbrpattern.json +0 -11
  113. data/vendor/tests/tests/microformats-v1/geo/change-log.1.html +0 -78
  114. data/vendor/tests/tests/microformats-v1/geo/change-log.html +0 -63
  115. data/vendor/tests/tests/microformats-v1/geo/hidden.html +0 -10
  116. data/vendor/tests/tests/microformats-v1/geo/hidden.json +0 -11
  117. data/vendor/tests/tests/microformats-v1/geo/simpleproperties.html +0 -6
  118. data/vendor/tests/tests/microformats-v1/geo/simpleproperties.json +0 -11
  119. data/vendor/tests/tests/microformats-v1/geo/valuetitleclass.html +0 -11
  120. data/vendor/tests/tests/microformats-v1/geo/valuetitleclass.json +0 -11
  121. data/vendor/tests/tests/microformats-v1/hcalendar/ampm.html +0 -41
  122. data/vendor/tests/tests/microformats-v1/hcalendar/ampm.json +0 -21
  123. data/vendor/tests/tests/microformats-v1/hcalendar/attendees.html +0 -13
  124. data/vendor/tests/tests/microformats-v1/hcalendar/attendees.json +0 -37
  125. data/vendor/tests/tests/microformats-v1/hcalendar/change-log.html +0 -68
  126. data/vendor/tests/tests/microformats-v1/hcalendar/combining.html +0 -15
  127. data/vendor/tests/tests/microformats-v1/hcalendar/combining.json +0 -31
  128. data/vendor/tests/tests/microformats-v1/hcalendar/concatenate.html +0 -7
  129. data/vendor/tests/tests/microformats-v1/hcalendar/concatenate.json +0 -12
  130. data/vendor/tests/tests/microformats-v1/hcalendar/time.html +0 -44
  131. data/vendor/tests/tests/microformats-v1/hcalendar/time.json +0 -22
  132. data/vendor/tests/tests/microformats-v1/hcard/change-log.html +0 -68
  133. data/vendor/tests/tests/microformats-v1/hcard/email.html +0 -14
  134. data/vendor/tests/tests/microformats-v1/hcard/email.json +0 -11
  135. data/vendor/tests/tests/microformats-v1/hcard/format.html +0 -6
  136. data/vendor/tests/tests/microformats-v1/hcard/format.json +0 -11
  137. data/vendor/tests/tests/microformats-v1/hcard/hyperlinkedphoto.html +0 -3
  138. data/vendor/tests/tests/microformats-v1/hcard/hyperlinkedphoto.json +0 -8
  139. data/vendor/tests/tests/microformats-v1/hcard/justahyperlink.html +0 -1
  140. data/vendor/tests/tests/microformats-v1/hcard/justahyperlink.json +0 -8
  141. data/vendor/tests/tests/microformats-v1/hcard/justaname.html +0 -1
  142. data/vendor/tests/tests/microformats-v1/hcard/justaname.json +0 -8
  143. data/vendor/tests/tests/microformats-v1/hcard/multiple.html +0 -74
  144. data/vendor/tests/tests/microformats-v1/hcard/multiple.json +0 -65
  145. data/vendor/tests/tests/microformats-v1/hcard/name.html +0 -11
  146. data/vendor/tests/tests/microformats-v1/hcard/name.json +0 -15
  147. data/vendor/tests/tests/microformats-v1/hcard/single.html +0 -14
  148. data/vendor/tests/tests/microformats-v1/hcard/single.json +0 -24
  149. data/vendor/tests/tests/microformats-v1/hentry/change-log.html +0 -73
  150. data/vendor/tests/tests/microformats-v1/hentry/summarycontent.html +0 -20
  151. data/vendor/tests/tests/microformats-v1/hentry/summarycontent.json +0 -24
  152. data/vendor/tests/tests/microformats-v1/hfeed/simple.html +0 -30
  153. data/vendor/tests/tests/microformats-v1/hfeed/simple.json +0 -49
  154. data/vendor/tests/tests/microformats-v1/hnews/all.html +0 -37
  155. data/vendor/tests/tests/microformats-v1/hnews/all.json +0 -74
  156. data/vendor/tests/tests/microformats-v1/hnews/change-log.html +0 -72
  157. data/vendor/tests/tests/microformats-v1/hnews/minimum.html +0 -25
  158. data/vendor/tests/tests/microformats-v1/hnews/minimum.json +0 -48
  159. data/vendor/tests/tests/microformats-v1/hproduct/aggregate.html +0 -26
  160. data/vendor/tests/tests/microformats-v1/hproduct/aggregate.json +0 -52
  161. data/vendor/tests/tests/microformats-v1/hproduct/change-log.html +0 -62
  162. data/vendor/tests/tests/microformats-v1/hproduct/simpleproperties.html +0 -13
  163. data/vendor/tests/tests/microformats-v1/hproduct/simpleproperties.json +0 -33
  164. data/vendor/tests/tests/microformats-v1/hresume/affiliation.html +0 -12
  165. data/vendor/tests/tests/microformats-v1/hresume/affiliation.json +0 -25
  166. data/vendor/tests/tests/microformats-v1/hresume/change-log.html +0 -73
  167. data/vendor/tests/tests/microformats-v1/hresume/contact.html +0 -18
  168. data/vendor/tests/tests/microformats-v1/hresume/contact.json +0 -32
  169. data/vendor/tests/tests/microformats-v1/hresume/education.html +0 -13
  170. data/vendor/tests/tests/microformats-v1/hresume/education.json +0 -29
  171. data/vendor/tests/tests/microformats-v1/hresume/skill.html +0 -12
  172. data/vendor/tests/tests/microformats-v1/hresume/skill.json +0 -33
  173. data/vendor/tests/tests/microformats-v1/hresume/work.html +0 -16
  174. data/vendor/tests/tests/microformats-v1/hresume/work.json +0 -30
  175. data/vendor/tests/tests/microformats-v1/hreview-aggregate/change-log.html +0 -67
  176. data/vendor/tests/tests/microformats-v1/hreview-aggregate/hcard.html +0 -18
  177. data/vendor/tests/tests/microformats-v1/hreview-aggregate/hcard.json +0 -31
  178. data/vendor/tests/tests/microformats-v1/hreview-aggregate/justahyperlink.html +0 -6
  179. data/vendor/tests/tests/microformats-v1/hreview-aggregate/justahyperlink.json +0 -19
  180. data/vendor/tests/tests/microformats-v1/hreview-aggregate/vevent.html +0 -13
  181. data/vendor/tests/tests/microformats-v1/hreview-aggregate/vevent.json +0 -22
  182. data/vendor/tests/tests/microformats-v1/hreview/change-log.html +0 -73
  183. data/vendor/tests/tests/microformats-v1/hreview/item.html +0 -8
  184. data/vendor/tests/tests/microformats-v1/hreview/item.json +0 -19
  185. data/vendor/tests/tests/microformats-v1/hreview/vcard.html +0 -23
  186. data/vendor/tests/tests/microformats-v1/hreview/vcard.json +0 -58
  187. data/vendor/tests/tests/microformats-v1/includes/change-log.html +0 -72
  188. data/vendor/tests/tests/microformats-v1/includes/hcarditemref.html +0 -16
  189. data/vendor/tests/tests/microformats-v1/includes/hcarditemref.json +0 -49
  190. data/vendor/tests/tests/microformats-v1/includes/heventitemref.html +0 -25
  191. data/vendor/tests/tests/microformats-v1/includes/heventitemref.json +0 -33
  192. data/vendor/tests/tests/microformats-v1/includes/hyperlink.html +0 -18
  193. data/vendor/tests/tests/microformats-v1/includes/hyperlink.json +0 -43
  194. data/vendor/tests/tests/microformats-v1/includes/object.html +0 -23
  195. data/vendor/tests/tests/microformats-v1/includes/object.json +0 -42
  196. data/vendor/tests/tests/microformats-v1/includes/table.html +0 -12
  197. data/vendor/tests/tests/microformats-v1/includes/table.json +0 -19
  198. data/vendor/tests/tests/microformats-v2/h-adr/change-log.html +0 -62
  199. data/vendor/tests/tests/microformats-v2/h-adr/geo.html +0 -10
  200. data/vendor/tests/tests/microformats-v2/h-adr/geo.json +0 -16
  201. data/vendor/tests/tests/microformats-v2/h-adr/geourl.html +0 -4
  202. data/vendor/tests/tests/microformats-v2/h-adr/geourl.json +0 -13
  203. data/vendor/tests/tests/microformats-v2/h-adr/justaname.html +0 -1
  204. data/vendor/tests/tests/microformats-v2/h-adr/justaname.json +0 -10
  205. data/vendor/tests/tests/microformats-v2/h-adr/lettercase.html +0 -21
  206. data/vendor/tests/tests/microformats-v2/h-adr/lettercase.json +0 -12
  207. data/vendor/tests/tests/microformats-v2/h-adr/simpleproperties.html +0 -8
  208. data/vendor/tests/tests/microformats-v2/h-adr/simpleproperties.json +0 -16
  209. data/vendor/tests/tests/microformats-v2/h-as-note/note.html +0 -56
  210. data/vendor/tests/tests/microformats-v2/h-as-note/note.json +0 -98
  211. data/vendor/tests/tests/microformats-v2/h-card/baseurl.html +0 -6
  212. data/vendor/tests/tests/microformats-v2/h-card/baseurl.json +0 -26
  213. data/vendor/tests/tests/microformats-v2/h-card/change-log.html +0 -100
  214. data/vendor/tests/tests/microformats-v2/h-card/childimplied.html +0 -7
  215. data/vendor/tests/tests/microformats-v2/h-card/childimplied.json +0 -12
  216. data/vendor/tests/tests/microformats-v2/h-card/extendeddescription.html +0 -10
  217. data/vendor/tests/tests/microformats-v2/h-card/extendeddescription.json +0 -15
  218. data/vendor/tests/tests/microformats-v2/h-card/hcard.html +0 -4
  219. data/vendor/tests/tests/microformats-v2/h-card/hcard.json +0 -19
  220. data/vendor/tests/tests/microformats-v2/h-card/horghcard.html +0 -4
  221. data/vendor/tests/tests/microformats-v2/h-card/horghcard.json +0 -19
  222. data/vendor/tests/tests/microformats-v2/h-card/hyperlinkedphoto.html +0 -3
  223. data/vendor/tests/tests/microformats-v2/h-card/hyperlinkedphoto.json +0 -12
  224. data/vendor/tests/tests/microformats-v2/h-card/impliedname.html +0 -15
  225. data/vendor/tests/tests/microformats-v2/h-card/impliedname.json +0 -90
  226. data/vendor/tests/tests/microformats-v2/h-card/impliedphoto.html +0 -11
  227. data/vendor/tests/tests/microformats-v2/h-card/impliedphoto.json +0 -72
  228. data/vendor/tests/tests/microformats-v2/h-card/impliedurl.html +0 -5
  229. data/vendor/tests/tests/microformats-v2/h-card/impliedurl.json +0 -45
  230. data/vendor/tests/tests/microformats-v2/h-card/justahyperlink.html +0 -1
  231. data/vendor/tests/tests/microformats-v2/h-card/justahyperlink.json +0 -11
  232. data/vendor/tests/tests/microformats-v2/h-card/justaname.html +0 -1
  233. data/vendor/tests/tests/microformats-v2/h-card/justaname.json +0 -10
  234. data/vendor/tests/tests/microformats-v2/h-card/nested.html +0 -4
  235. data/vendor/tests/tests/microformats-v2/h-card/nested.json +0 -18
  236. data/vendor/tests/tests/microformats-v2/h-card/p-property.html +0 -21
  237. data/vendor/tests/tests/microformats-v2/h-card/p-property.json +0 -15
  238. data/vendor/tests/tests/microformats-v2/h-card/relativeurls.html +0 -6
  239. data/vendor/tests/tests/microformats-v2/h-card/relativeurls.json +0 -29
  240. data/vendor/tests/tests/microformats-v2/h-entry/change-log.html +0 -90
  241. data/vendor/tests/tests/microformats-v2/h-entry/encoding.html +0 -3
  242. data/vendor/tests/tests/microformats-v2/h-entry/encoding.json +0 -14
  243. data/vendor/tests/tests/microformats-v2/h-entry/impliedvalue-nested.html +0 -9
  244. data/vendor/tests/tests/microformats-v2/h-entry/impliedvalue-nested.json +0 -27
  245. data/vendor/tests/tests/microformats-v2/h-entry/justahyperlink.html +0 -1
  246. data/vendor/tests/tests/microformats-v2/h-entry/justahyperlink.json +0 -11
  247. data/vendor/tests/tests/microformats-v2/h-entry/justaname.html +0 -1
  248. data/vendor/tests/tests/microformats-v2/h-entry/justaname.json +0 -10
  249. data/vendor/tests/tests/microformats-v2/h-entry/scriptstyletags.html +0 -4
  250. data/vendor/tests/tests/microformats-v2/h-entry/scriptstyletags.json +0 -14
  251. data/vendor/tests/tests/microformats-v2/h-entry/summarycontent.html +0 -20
  252. data/vendor/tests/tests/microformats-v2/h-entry/summarycontent.json +0 -25
  253. data/vendor/tests/tests/microformats-v2/h-entry/u-property.html +0 -33
  254. data/vendor/tests/tests/microformats-v2/h-entry/u-property.json +0 -12
  255. data/vendor/tests/tests/microformats-v2/h-entry/urlincontent.html +0 -13
  256. data/vendor/tests/tests/microformats-v2/h-entry/urlincontent.json +0 -14
  257. data/vendor/tests/tests/microformats-v2/h-event/ampm.html +0 -41
  258. data/vendor/tests/tests/microformats-v2/h-event/ampm.json +0 -21
  259. data/vendor/tests/tests/microformats-v2/h-event/attendees.html +0 -13
  260. data/vendor/tests/tests/microformats-v2/h-event/attendees.json +0 -37
  261. data/vendor/tests/tests/microformats-v2/h-event/change-log.html +0 -82
  262. data/vendor/tests/tests/microformats-v2/h-event/combining.html +0 -13
  263. data/vendor/tests/tests/microformats-v2/h-event/combining.json +0 -25
  264. data/vendor/tests/tests/microformats-v2/h-event/concatenate.html +0 -8
  265. data/vendor/tests/tests/microformats-v2/h-event/concatenate.json +0 -12
  266. data/vendor/tests/tests/microformats-v2/h-event/dates.html +0 -13
  267. data/vendor/tests/tests/microformats-v2/h-event/dates.json +0 -26
  268. data/vendor/tests/tests/microformats-v2/h-event/dt-property.html +0 -23
  269. data/vendor/tests/tests/microformats-v2/h-event/dt-property.json +0 -20
  270. data/vendor/tests/tests/microformats-v2/h-event/justahyperlink.html +0 -1
  271. data/vendor/tests/tests/microformats-v2/h-event/justahyperlink.json +0 -11
  272. data/vendor/tests/tests/microformats-v2/h-event/justaname.html +0 -1
  273. data/vendor/tests/tests/microformats-v2/h-event/justaname.json +0 -10
  274. data/vendor/tests/tests/microformats-v2/h-event/time.html +0 -47
  275. data/vendor/tests/tests/microformats-v2/h-event/time.json +0 -25
  276. data/vendor/tests/tests/microformats-v2/h-feed/implied-title.html +0 -30
  277. data/vendor/tests/tests/microformats-v2/h-feed/implied-title.json +0 -23
  278. data/vendor/tests/tests/microformats-v2/h-feed/simple.html +0 -26
  279. data/vendor/tests/tests/microformats-v2/h-feed/simple.json +0 -33
  280. data/vendor/tests/tests/microformats-v2/h-geo/abbrpattern.html +0 -5
  281. data/vendor/tests/tests/microformats-v2/h-geo/abbrpattern.json +0 -12
  282. data/vendor/tests/tests/microformats-v2/h-geo/altitude.html +0 -8
  283. data/vendor/tests/tests/microformats-v2/h-geo/altitude.json +0 -13
  284. data/vendor/tests/tests/microformats-v2/h-geo/change-log.html +0 -67
  285. data/vendor/tests/tests/microformats-v2/h-geo/hidden.html +0 -10
  286. data/vendor/tests/tests/microformats-v2/h-geo/hidden.json +0 -12
  287. data/vendor/tests/tests/microformats-v2/h-geo/justaname.html +0 -3
  288. data/vendor/tests/tests/microformats-v2/h-geo/justaname.json +0 -10
  289. data/vendor/tests/tests/microformats-v2/h-geo/simpleproperties.html +0 -5
  290. data/vendor/tests/tests/microformats-v2/h-geo/simpleproperties.json +0 -12
  291. data/vendor/tests/tests/microformats-v2/h-geo/valuetitleclass.html +0 -11
  292. data/vendor/tests/tests/microformats-v2/h-geo/valuetitleclass.json +0 -12
  293. data/vendor/tests/tests/microformats-v2/h-news/all.html +0 -35
  294. data/vendor/tests/tests/microformats-v2/h-news/all.json +0 -51
  295. data/vendor/tests/tests/microformats-v2/h-news/change-log.html +0 -78
  296. data/vendor/tests/tests/microformats-v2/h-news/minimum.html +0 -24
  297. data/vendor/tests/tests/microformats-v2/h-news/minimum.json +0 -40
  298. data/vendor/tests/tests/microformats-v2/h-org/change-log.html +0 -57
  299. data/vendor/tests/tests/microformats-v2/h-org/hyperlink.html +0 -1
  300. data/vendor/tests/tests/microformats-v2/h-org/hyperlink.json +0 -11
  301. data/vendor/tests/tests/microformats-v2/h-org/simple.html +0 -1
  302. data/vendor/tests/tests/microformats-v2/h-org/simple.json +0 -10
  303. data/vendor/tests/tests/microformats-v2/h-org/simpleproperties.html +0 -4
  304. data/vendor/tests/tests/microformats-v2/h-org/simpleproperties.json +0 -12
  305. data/vendor/tests/tests/microformats-v2/h-product/aggregate.html +0 -21
  306. data/vendor/tests/tests/microformats-v2/h-product/aggregate.json +0 -45
  307. data/vendor/tests/tests/microformats-v2/h-product/change-log.html +0 -62
  308. data/vendor/tests/tests/microformats-v2/h-product/justahyperlink.html +0 -1
  309. data/vendor/tests/tests/microformats-v2/h-product/justahyperlink.json +0 -11
  310. data/vendor/tests/tests/microformats-v2/h-product/justaname.html +0 -1
  311. data/vendor/tests/tests/microformats-v2/h-product/justaname.json +0 -10
  312. data/vendor/tests/tests/microformats-v2/h-product/simpleproperties.html +0 -10
  313. data/vendor/tests/tests/microformats-v2/h-product/simpleproperties.json +0 -26
  314. data/vendor/tests/tests/microformats-v2/h-recipe/all.html +0 -63
  315. data/vendor/tests/tests/microformats-v2/h-recipe/all.json +0 -54
  316. data/vendor/tests/tests/microformats-v2/h-recipe/change-log.html +0 -62
  317. data/vendor/tests/tests/microformats-v2/h-recipe/minimum.html +0 -7
  318. data/vendor/tests/tests/microformats-v2/h-recipe/minimum.json +0 -17
  319. data/vendor/tests/tests/microformats-v2/h-resume/affiliation.html +0 -12
  320. data/vendor/tests/tests/microformats-v2/h-resume/affiliation.json +0 -20
  321. data/vendor/tests/tests/microformats-v2/h-resume/change-log.html +0 -78
  322. data/vendor/tests/tests/microformats-v2/h-resume/contact.html +0 -17
  323. data/vendor/tests/tests/microformats-v2/h-resume/contact.json +0 -26
  324. data/vendor/tests/tests/microformats-v2/h-resume/education.html +0 -13
  325. data/vendor/tests/tests/microformats-v2/h-resume/education.json +0 -30
  326. data/vendor/tests/tests/microformats-v2/h-resume/justaname.html +0 -1
  327. data/vendor/tests/tests/microformats-v2/h-resume/justaname.json +0 -10
  328. data/vendor/tests/tests/microformats-v2/h-resume/skill.html +0 -12
  329. data/vendor/tests/tests/microformats-v2/h-resume/skill.json +0 -12
  330. data/vendor/tests/tests/microformats-v2/h-resume/work.html +0 -16
  331. data/vendor/tests/tests/microformats-v2/h-resume/work.json +0 -31
  332. data/vendor/tests/tests/microformats-v2/h-review-aggregate/change-log.html +0 -78
  333. data/vendor/tests/tests/microformats-v2/h-review-aggregate/hevent.html +0 -13
  334. data/vendor/tests/tests/microformats-v2/h-review-aggregate/hevent.json +0 -23
  335. data/vendor/tests/tests/microformats-v2/h-review-aggregate/justahyperlink.html +0 -8
  336. data/vendor/tests/tests/microformats-v2/h-review-aggregate/justahyperlink.json +0 -19
  337. data/vendor/tests/tests/microformats-v2/h-review-aggregate/simpleproperties.html +0 -18
  338. data/vendor/tests/tests/microformats-v2/h-review-aggregate/simpleproperties.json +0 -26
  339. data/vendor/tests/tests/microformats-v2/h-review/change-log.html +0 -84
  340. data/vendor/tests/tests/microformats-v2/h-review/hyperlink.html +0 -1
  341. data/vendor/tests/tests/microformats-v2/h-review/hyperlink.json +0 -11
  342. data/vendor/tests/tests/microformats-v2/h-review/implieditem.html +0 -4
  343. data/vendor/tests/tests/microformats-v2/h-review/implieditem.json +0 -19
  344. data/vendor/tests/tests/microformats-v2/h-review/item.html +0 -8
  345. data/vendor/tests/tests/microformats-v2/h-review/item.json +0 -20
  346. data/vendor/tests/tests/microformats-v2/h-review/justaname.html +0 -1
  347. data/vendor/tests/tests/microformats-v2/h-review/justaname.json +0 -10
  348. data/vendor/tests/tests/microformats-v2/h-review/photo.html +0 -1
  349. data/vendor/tests/tests/microformats-v2/h-review/photo.json +0 -11
  350. data/vendor/tests/tests/microformats-v2/h-review/vcard.html +0 -23
  351. data/vendor/tests/tests/microformats-v2/h-review/vcard.json +0 -48
  352. data/vendor/tests/tests/microformats-v2/rel/change-log.html +0 -67
  353. data/vendor/tests/tests/microformats-v2/rel/duplicate-rels.html +0 -10
  354. data/vendor/tests/tests/microformats-v2/rel/duplicate-rels.json +0 -75
  355. data/vendor/tests/tests/microformats-v2/rel/license.html +0 -1
  356. data/vendor/tests/tests/microformats-v2/rel/license.json +0 -12
  357. data/vendor/tests/tests/microformats-v2/rel/nofollow.html +0 -1
  358. data/vendor/tests/tests/microformats-v2/rel/nofollow.json +0 -12
  359. data/vendor/tests/tests/microformats-v2/rel/rel-urls.html +0 -8
  360. data/vendor/tests/tests/microformats-v2/rel/rel-urls.json +0 -33
  361. data/vendor/tests/tests/microformats-v2/rel/varying-text-duplicate-rels.html +0 -4
  362. data/vendor/tests/tests/microformats-v2/rel/varying-text-duplicate-rels.json +0 -20
  363. data/vendor/tests/tests/microformats-v2/rel/xfn-all.html +0 -19
  364. data/vendor/tests/tests/microformats-v2/rel/xfn-all.json +0 -92
  365. data/vendor/tests/tests/microformats-v2/rel/xfn-elsewhere.html +0 -10
  366. data/vendor/tests/tests/microformats-v2/rel/xfn-elsewhere.json +0 -40
@@ -1,7 +1,6 @@
1
1
  module Microformats
2
2
  class PropertyParser < ParserCore
3
-
4
- def parse(element, base: nil, element_type: , format_class_array: [], backcompat: nil)
3
+ def parse(element, base: nil, element_type:, format_class_array: [], backcompat: nil)
5
4
  @base = base
6
5
  @value = nil
7
6
  @property_type = element_type
@@ -13,55 +12,53 @@ module Microformats
13
12
  parse_value_class_pattern(element)
14
13
 
15
14
  if @value.nil?
16
- if element.name == 'abbr' and not element.attribute('title').nil?
17
- @value = element.attribute('title').value.strip
18
- elsif (element.name == 'data' or element.name == 'input') and not element.attribute('value').nil?
19
- @value = element.attribute('value').value.strip
20
- elsif (element.name == 'img' or element.name == 'area') and not element.attribute('alt').nil?
21
- @value = element.attribute('alt').value.strip
22
- else
23
- @value = render_text_and_replace_images(element, base: @base)
24
- end
15
+ @value =
16
+ if element.name == 'abbr' && !element.attribute('title').nil?
17
+ element.attribute('title').value.strip
18
+ elsif element.name == 'link' && !element.attribute('title').nil?
19
+ element.attribute('title').value.strip
20
+ elsif (element.name == 'data' || element.name == 'input') && !element.attribute('value').nil?
21
+ element.attribute('value').value.strip
22
+ elsif (element.name == 'img' || element.name == 'area') && !element.attribute('alt').nil?
23
+ element.attribute('alt').value.strip
24
+ else
25
+ render_text(element, base: @base)
26
+ end
25
27
  end
26
-
27
28
  elsif element_type == 'e'
28
29
  @value = {
29
- value: render_text(element, base: @base), #TODO the spec doesn't say to remove script and style tags, assuming this to be in error
30
- html: element.inner_html.gsub(/\A +/, '').gsub(/ +\Z/, '')
30
+ value: render_text(element, base: @base),
31
+ html: element.inner_html.strip
31
32
  }
32
-
33
33
  elsif element_type == 'u'
34
- if ['a', 'area'].include? element.name and not element.attribute('href').nil?
34
+ if %w[a area link].include?(element.name) && !element.attribute('href').nil?
35
35
  @value = element.attribute('href').value.strip
36
- elsif ['img', 'audio', 'video', 'source'].include? element.name and not element.attribute('src').nil?
36
+ elsif %w[img audio video source].include?(element.name) && !element.attribute('src').nil?
37
37
  @value = element.attribute('src').value.strip
38
- elsif element.name == 'video' and not element.attribute('poster').nil?
38
+ elsif element.name == 'video' && !element.attribute('poster').nil?
39
39
  @value = element.attribute('poster').value.strip
40
- elsif element.name == 'object' and not element.attribute('data').nil?
40
+ elsif element.name == 'object' && !element.attribute('data').nil?
41
41
  @value = element.attribute('data').value.strip
42
42
  end
43
43
 
44
- if not @value.nil?
44
+ if !@value.nil?
45
45
  @value = Microformats::AbsoluteUri.new(@value, base: @base).absolutize
46
46
  else
47
-
48
47
  parse_value_class_pattern(element)
49
48
 
50
49
  if @value.nil?
51
- if element.name == 'abbr' and not element.attribute('title').nil?
52
- @value = element.attribute('title').value.strip
53
- elsif (element.name == 'data' or element.name == 'input') and not element.attribute('value').nil?
54
- @value = element.attribute('value').value.strip
55
- else
56
- @value = render_text(element, base: @base)
57
- end
58
-
50
+ @value =
51
+ if element.name == 'abbr' && !element.attribute('title').nil?
52
+ element.attribute('title').value.strip
53
+ elsif (element.name == 'data' || element.name == 'input') && !element.attribute('value').nil?
54
+ element.attribute('value').value.strip
55
+ else
56
+ render_text(element, base: @base)
57
+ end
59
58
  end
60
59
  end
61
-
62
60
  elsif element_type == 'dt'
63
61
  @value = Microformats::TimePropertyParser.new.parse(element, base: base, element_type: element_type, format_class_array: format_class_array, backcompat: backcompat)
64
-
65
62
  end
66
63
 
67
64
  @value
@@ -69,54 +66,34 @@ module Microformats
69
66
 
70
67
  def parse_value_class_pattern(element)
71
68
  @value_class_pattern_value = []
69
+
72
70
  parse_node(element.children)
71
+
73
72
  @value = @value_class_pattern_value.join unless @value_class_pattern_value.empty?
74
73
  end
75
74
 
76
75
  def parse_element(element)
77
76
  if value_title_classes(element).length >= 1
78
77
  @value_class_pattern_value << element.attribute('title').value.strip
79
-
80
78
  elsif value_classes(element).length >= 1
81
- if element.name == 'img' or element.name == 'area' and not element.attribute('alt').nil?
82
- @value_class_pattern_value << element.attribute('alt').value.strip
83
- elsif element.name == 'data' and not element.attribute('value').nil?
84
- @value_class_pattern_value << element.attribute('value').value.strip
85
- elsif element.name == 'abbr' and not element.attribute('title').nil?
86
- @value_class_pattern_value << element.attribute('title').value.strip
87
- else
88
- @value_class_pattern_value << element.text.strip
89
- end
79
+ @value_class_pattern_value <<
80
+ if element.name == 'img' || element.name == 'area' && !element.attribute('alt').nil?
81
+ element.attribute('alt').value.strip
82
+ elsif element.name == 'data' && !element.attribute('value').nil?
83
+ element.attribute('value').value.strip
84
+ elsif element.name == 'abbr' && !element.attribute('title').nil?
85
+ element.attribute('title').value.strip
86
+ else
87
+ render_and_strip(element.text.strip)
88
+ end
90
89
  else
91
90
  p_classes = property_classes(element)
92
91
  p_classes = backcompat_property_classes(element) if @mode_backcompat
93
- if p_classes.length == 0 and format_classes(element).length == 0
94
- parse_node(element.children)
95
- end
96
- end
97
- end
98
92
 
99
- def render_text_and_replace_images(node, base: nil)
100
- new_doc = Nokogiri::HTML(node.inner_html)
101
- new_doc.xpath('//script').remove
102
- new_doc.xpath('//style').remove
103
- new_doc.traverse do |node|
104
- if node.name == 'img' and not node.attribute('alt').nil?
105
- node.replace(' ' + node.attribute('alt').value.to_s + ' ')
106
- elsif node.name == 'img' and not node.attribute('src').nil?
107
- absolute_url = Microformats::AbsoluteUri.new(node.attribute('src').value.to_s, base: @base).absolutize
108
- node.replace(' ' + absolute_url + ' ')
93
+ if p_classes.empty? && format_classes(element).empty?
94
+ parse_node(element.children)
109
95
  end
110
96
  end
111
- new_doc.text.strip
112
97
  end
113
-
114
- def render_text(node, base: nil)
115
- new_doc = Nokogiri::HTML(node.inner_html)
116
- new_doc.xpath('//script').remove
117
- new_doc.xpath('//style').remove
118
- new_doc.text.strip
119
- end
120
-
121
98
  end
122
99
  end
@@ -1,8 +1,6 @@
1
1
  module Microformats
2
-
3
- #stub to get around the tests for now
2
+ # stub to get around the tests for now
4
3
  class Collection
5
-
6
4
  def initialize(hash)
7
5
  @hash = hash
8
6
  end
@@ -20,21 +18,13 @@ module Microformats
20
18
  end
21
19
 
22
20
  def to_s
23
- if @hash['value']
24
- return @hash['value']
25
- else
26
- super
27
- end
21
+ @hash.to_s
28
22
  end
29
23
 
30
24
  def [](key)
31
25
  @hash[key]
32
26
  end
33
27
 
34
- def value
35
- @hash['value']
36
- end
37
-
38
28
  def items
39
29
  @hash['items'].map do |item|
40
30
  ParserResult.new(item)
@@ -50,19 +40,19 @@ module Microformats
50
40
  end
51
41
 
52
42
  def respond_to?(sym, include_private = false)
53
- has_item?(sym) || super(sym, include_private)
43
+ item?(sym) || super(sym, include_private)
54
44
  end
55
45
 
56
46
  def method_missing(sym, *args, &block)
57
-
58
47
  name = sym.to_s
59
- name_dash = name.gsub('_', '-') if name.include? '_'
48
+ name_dash = name.tr('_', '-') if name.include?('_')
60
49
 
61
- if not @hash['items'].nil?
50
+ unless @hash['items'].nil?
62
51
  result_hash = @hash['items'].select do |x|
63
- x['type'].include?('h-' + name)
52
+ x['type'].include?('h-' + name)
64
53
  end
65
- if result_hash.empty? and not name_dash.nil?
54
+
55
+ if result_hash.empty? && !name_dash.nil?
66
56
  result_hash = @hash['items'].select do |x|
67
57
  x['type'].include?('h-' + name_dash)
68
58
  end
@@ -71,51 +61,42 @@ module Microformats
71
61
 
72
62
  super(sym, *args, &block) if result_hash.empty?
73
63
 
74
- if result_hash.is_a? Array
64
+ if result_hash.is_a?(Array)
75
65
  if args[0].nil?
76
- result_hash = result_hash[0] #will return nil for an empty array
77
-
66
+ result_hash = result_hash[0] # will return nil for an empty array
78
67
  elsif args[0] == :all
79
68
  return result_hash.map do |x|
80
69
  ParserResult.new(x)
81
70
  end
82
-
83
71
  elsif args[0].to_i < result_hash.count
84
72
  result_hash = result_hash[args[0].to_i]
85
-
86
73
  else
87
- result_hash = result_hash[0] #will return nil for an empty array
74
+ result_hash = result_hash[0] # will return nil for an empty array
88
75
  end
89
76
  end
90
77
 
91
- if result_hash.nil? or result_hash.empty?
92
- result_hash
93
- elsif result_hash.is_a? Hash
94
- ParserResult.new(result_hash)
95
- else
96
- result_hash
97
- end
78
+ ParserResult.new(result_hash)
98
79
  end
99
80
 
100
81
  private
101
82
 
102
- def has_item?(name)
83
+ def item?(name)
103
84
  name = name.to_s
104
- name_dash = name.gsub('_', '-') if name.include? '_'
105
- if not @hash['items'].nil?
85
+ name_dash = name.tr('_', '-') if name.include?('_')
86
+
87
+ unless @hash['items'].nil?
106
88
  result_hash = @hash['items'].select do |x|
107
89
  x['type'].include?('h-' + name)
108
90
  end
109
- if result_hash.empty? and not name_dash.nil?
91
+
92
+ if result_hash.empty? && !name_dash.nil?
110
93
  result_hash = @hash['items'].select do |x|
111
94
  x['type'].include?('h-' + name_dash)
112
95
  end
113
96
  end
114
97
  end
115
98
 
116
- not result_hash.empty?
99
+ !result_hash.empty?
117
100
  end
118
-
119
101
  end
120
102
  end
121
-
@@ -1,8 +1,6 @@
1
1
  module Microformats
2
-
3
- #stub to get around the tests for now
2
+ # stub to get around the tests for now
4
3
  class ParserResult
5
-
6
4
  def initialize(hash)
7
5
  @hash = hash
8
6
  end
@@ -20,11 +18,9 @@ module Microformats
20
18
  end
21
19
 
22
20
  def to_s
23
- if @hash['value']
24
- return @hash['value']
25
- else
26
- super
27
- end
21
+ return @hash['value'] if @hash['value']
22
+
23
+ @hash.to_s
28
24
  end
29
25
 
30
26
  def [](key)
@@ -36,54 +32,46 @@ module Microformats
36
32
  end
37
33
 
38
34
  def properties
39
- PropertySet.new( @hash['properties'])
35
+ PropertySet.new(@hash['properties'])
40
36
  end
41
37
 
42
38
  def respond_to?(sym, include_private = false)
43
- has_key?(sym) || has_property?(sym) || super(sym, include_private)
39
+ key?(sym) || property?(sym) || super(sym, include_private)
44
40
  end
45
41
 
46
42
  def method_missing(sym, *args, &block)
47
-
48
43
  name = sym.to_s
49
- name_dash = name.gsub('_', '-') if name.include? '_'
44
+ name_dash = name.tr('_', '-') if name.include?('_')
50
45
 
51
- if not @hash[name].nil?
46
+ if !@hash[name].nil?
52
47
  result_hash = @hash[name]
53
-
54
- elsif not @hash['properties'].nil? and not @hash['properties'][name].nil?
48
+ elsif !@hash['properties'].nil? && !@hash['properties'][name].nil?
55
49
  result_hash = @hash['properties'][name]
56
-
57
- elsif not name_dash.nil? and not @hash[name_dash].nil?
50
+ elsif !name_dash.nil? && !@hash[name_dash].nil?
58
51
  result_hash = @hash[name_dash]
59
-
60
- elsif not name_dash.nil? and not @hash['properties'].nil? and not @hash['properties'][name_dash].nil?
52
+ elsif !name_dash.nil? && !@hash['properties'].nil? && !@hash['properties'][name_dash].nil?
61
53
  result_hash = @hash['properties'][name_dash]
62
-
63
54
  else
64
55
  super(sym, *args, &block)
65
56
  end
66
57
 
67
- if result_hash.is_a? Array
58
+ if result_hash.is_a?(Array)
68
59
  if args[0].nil?
69
- result_hash = result_hash[0] #will return nil for an empty array
70
-
60
+ result_hash = result_hash[0] # will return nil for an empty array
71
61
  elsif args[0] == :all
72
62
  return result_hash.map do |x|
73
63
  ParserResult.new(x)
74
64
  end
75
-
76
65
  elsif args[0].to_i < result_hash.count
77
66
  result_hash = result_hash[args[0].to_i]
78
-
79
67
  else
80
- result_hash = result_hash[0] #will return nil for an empty array
68
+ result_hash = result_hash[0] # will return nil for an empty array
81
69
  end
82
70
  end
83
71
 
84
- if result_hash.nil? or result_hash.empty?
72
+ if result_hash.nil? || result_hash.empty?
85
73
  result_hash
86
- elsif result_hash.is_a? Hash
74
+ elsif result_hash.is_a?(Hash)
87
75
  ParserResult.new(result_hash)
88
76
  else
89
77
  result_hash
@@ -92,20 +80,20 @@ module Microformats
92
80
 
93
81
  private
94
82
 
95
- def has_key?(name)
83
+ def key?(name)
96
84
  name = name.to_s
97
- name_dash = name.gsub('_', '-') if name.include? '_'
85
+ name_dash = name.tr('_', '-') if name.include?('_')
98
86
 
99
- not @hash[name].nil? or not @hash[name_dash].nil?
87
+ !@hash[name].nil? || !@hash[name_dash].nil?
100
88
  end
101
-
102
- def has_property?(name)
89
+
90
+ def property?(name)
103
91
  name = name.to_s
104
- name_dash = name.gsub('_', '-') if name.include? '_'
92
+ name_dash = name.tr('_', '-') if name.include?('_')
93
+
105
94
  return false if @hash['properties'].nil?
106
- not @hash['properties'][name].nil? or not @hash['properties'][name_dash].nil?
107
- end
108
95
 
96
+ !@hash['properties'][name].nil? || !@hash['properties'][name_dash].nil?
97
+ end
109
98
  end
110
99
  end
111
-
@@ -1,8 +1,6 @@
1
1
  module Microformats
2
-
3
- #stub to get around the tests for now
4
- class PropertySet
5
-
2
+ # stub to get around the tests for now
3
+ class PropertySet
6
4
  def initialize(hash)
7
5
  @hash = hash
8
6
  end
@@ -23,65 +21,60 @@ module Microformats
23
21
  @hash[key]
24
22
  end
25
23
 
26
- def respond_to?(sym, include_private = false)
27
- has_key?(sym) || super(sym, include_private)
24
+ def to_s
25
+ @hash.to_s
28
26
  end
29
27
 
28
+ def respond_to?(sym, include_private = false)
29
+ key?(sym) || super(sym, include_private)
30
+ end
30
31
 
31
32
  def method_missing(mname, *args, &block)
33
+ if respond_to?(mname)
34
+ result_hash = val?(mname)
32
35
 
33
- if respond_to? mname
34
- result_hash = get_val? mname
35
- if result_hash.is_a? Array
36
+ if result_hash.is_a?(Array)
36
37
  if args[0].nil?
37
- result_hash = result_hash[0] #will return nil for an empty array
38
-
38
+ result_hash = result_hash[0] # will return nil for an empty array
39
39
  elsif args[0] == :all
40
40
  return result_hash.map do |x|
41
41
  ParserResult.new(x)
42
42
  end
43
-
44
43
  elsif args[0].to_i < result_hash.count
45
44
  result_hash = result_hash[args[0].to_i]
46
-
47
45
  else
48
- result_hash = result_hash[0] #will return nil for an empty array
46
+ result_hash = result_hash[0] # will return nil for an empty array
49
47
  end
50
48
  end
51
49
 
52
- if result_hash.is_a? Hash
50
+ if result_hash.is_a?(Hash)
53
51
  ParserResult.new(result_hash)
54
52
  else
55
53
  result_hash
56
54
  end
57
55
  else
58
- super(mname, *args, &block)
56
+ super(mname, *args, &block)
59
57
  end
60
-
61
58
  end
62
59
 
63
60
  private
64
61
 
65
- def has_key?(name)
62
+ def key?(name)
66
63
  name = name.to_s
67
- name_dash = name.gsub('_', '-') if name.include? '_'
68
- not @hash[name].nil? or not @hash[name_dash].nil?
64
+ name_dash = name.tr('_', '-') if name.include?('_')
65
+
66
+ !@hash[name].nil? || !@hash[name_dash].nil?
69
67
  end
70
68
 
71
- def get_val?(name)
69
+ def val?(name)
72
70
  name = name.to_s
73
- name_dash = name.gsub('_', '-') if name.include? '_'
74
-
75
- if not @hash[name].nil?
76
- result_hash = @hash[name]
71
+ name_dash = name.tr('_', '-') if name.include?('_')
77
72
 
78
- elsif not @hash[name_dash].nil?
79
- result_hash = @hash[name_dash]
80
- else
81
- nil
73
+ if !@hash[name].nil?
74
+ @hash[name]
75
+ elsif !@hash[name_dash].nil?
76
+ @hash[name_dash]
82
77
  end
83
78
  end
84
-
85
79
  end
86
80
  end
87
-