markdown-ui 0.1.16 → 0.1.17

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/Changelog +14 -0
  4. data/Gemfile +3 -0
  5. data/components/collections/markdown-ui-grid/lib/grid/column/column.rb +6 -9
  6. data/components/collections/markdown-ui-grid/lib/grid/grid.rb +6 -9
  7. data/components/collections/markdown-ui-grid/lib/grid/row/row.rb +6 -9
  8. data/components/collections/markdown-ui-grid/markdown-ui-grid.gemspec +1 -1
  9. data/components/collections/markdown-ui-menu/lib/menu/custom.rb +12 -12
  10. data/components/collections/markdown-ui-menu/lib/menu/element.rb +54 -52
  11. data/components/collections/markdown-ui-menu/lib/menu/pagination.rb +11 -10
  12. data/components/collections/markdown-ui-menu/lib/menu/pointing.rb +11 -10
  13. data/components/collections/markdown-ui-menu/lib/menu/secondary.rb +11 -10
  14. data/components/collections/markdown-ui-menu/lib/menu/standard.rb +11 -10
  15. data/components/collections/markdown-ui-menu/lib/menu/tabular.rb +11 -10
  16. data/components/collections/markdown-ui-menu/lib/menu/text.rb +11 -10
  17. data/components/collections/markdown-ui-menu/lib/menu/vertical.rb +11 -10
  18. data/components/collections/markdown-ui-message/lib/message/custom_message.rb +11 -11
  19. data/components/collections/markdown-ui-message/lib/message/list_message.rb +10 -9
  20. data/components/collections/markdown-ui-message/lib/message/message.rb +32 -29
  21. data/components/collections/markdown-ui-message/lib/message/standard_message.rb +10 -9
  22. data/components/collections/markdown-ui-message/lib/message/version.rb +1 -1
  23. data/components/collections/markdown-ui-message/markdown-ui-message.gemspec +2 -2
  24. data/components/elements/markdown-ui-button/lib/button/animated.rb +24 -22
  25. data/components/elements/markdown-ui-button/lib/button/basic.rb +14 -12
  26. data/components/elements/markdown-ui-button/lib/button/custom.rb +16 -14
  27. data/components/elements/markdown-ui-button/lib/button/element.rb +55 -53
  28. data/components/elements/markdown-ui-button/lib/button/focusable.rb +14 -12
  29. data/components/elements/markdown-ui-button/lib/button/group/buttons/custom.rb +14 -12
  30. data/components/elements/markdown-ui-button/lib/button/group/buttons/element.rb +22 -20
  31. data/components/elements/markdown-ui-button/lib/button/group/buttons/icon.rb +14 -12
  32. data/components/elements/markdown-ui-button/lib/button/group/buttons/standard.rb +14 -12
  33. data/components/elements/markdown-ui-button/lib/button/icon.rb +14 -12
  34. data/components/elements/markdown-ui-button/lib/button/labeled_icon.rb +19 -17
  35. data/components/elements/markdown-ui-button/lib/button/standard.rb +14 -12
  36. data/components/elements/markdown-ui-container/lib/container/alignment/center.rb +1 -1
  37. data/components/elements/markdown-ui-container/lib/container/alignment/left.rb +1 -1
  38. data/components/elements/markdown-ui-container/lib/container/alignment/right.rb +1 -1
  39. data/components/elements/markdown-ui-container/lib/container/custom.rb +1 -1
  40. data/components/elements/markdown-ui-container/lib/container/element.rb +5 -5
  41. data/components/elements/markdown-ui-container/lib/container/standard.rb +1 -1
  42. data/components/elements/markdown-ui-container/lib/container/text.rb +1 -1
  43. data/components/elements/markdown-ui-content/lib/content/basic_block.rb +19 -0
  44. data/components/elements/markdown-ui-content/lib/content/content_block.rb +1 -1
  45. data/components/elements/markdown-ui-content/lib/content/custom.rb +1 -1
  46. data/components/elements/markdown-ui-content/lib/content/divider_block.rb +1 -1
  47. data/components/elements/markdown-ui-content/lib/content/field_block.rb +1 -1
  48. data/components/elements/markdown-ui-content/lib/content/flag.rb +2 -2
  49. data/components/elements/markdown-ui-content/lib/content/form_block.rb +1 -1
  50. data/components/elements/markdown-ui-content/lib/content/header.rb +2 -2
  51. data/components/elements/markdown-ui-content/lib/content/header_block.rb +1 -1
  52. data/components/elements/markdown-ui-content/lib/content/icon.rb +2 -2
  53. data/components/elements/markdown-ui-content/lib/content/input_block.rb +1 -1
  54. data/components/elements/markdown-ui-content/lib/content/item.rb +4 -4
  55. data/components/elements/markdown-ui-content/lib/content/item_block.rb +1 -1
  56. data/components/elements/markdown-ui-content/lib/content/list.rb +6 -6
  57. data/components/elements/markdown-ui-content/lib/content/parser.rb +17 -17
  58. data/components/elements/markdown-ui-content/lib/content/span_block.rb +1 -1
  59. data/components/elements/markdown-ui-content/lib/content/text.rb +6 -6
  60. data/components/elements/markdown-ui-header/lib/header/header.rb +3 -3
  61. data/components/elements/markdown-ui-input/lib/input/custom.rb +4 -4
  62. data/components/elements/markdown-ui-input/lib/input/element.rb +10 -10
  63. data/components/elements/markdown-ui-label/lib/label/custom.rb +2 -2
  64. data/components/elements/markdown-ui-label/lib/label/element.rb +9 -16
  65. data/components/elements/markdown-ui-segment/lib/segment/custom_segment.rb +1 -1
  66. data/components/elements/markdown-ui-segment/lib/segment/horizontal_segment.rb +1 -1
  67. data/components/elements/markdown-ui-segment/lib/segment/padded_segment.rb +1 -1
  68. data/components/elements/markdown-ui-segment/lib/segment/piled_segment.rb +1 -1
  69. data/components/elements/markdown-ui-segment/lib/segment/segment.rb +6 -6
  70. data/components/elements/markdown-ui-segment/lib/segment/stacked_segment.rb +1 -1
  71. data/components/elements/markdown-ui-segment/lib/segment/standard_segment.rb +1 -1
  72. data/components/elements/markdown-ui-segment/lib/segment/vertical_segment.rb +1 -1
  73. data/components/shared/markdown-ui-shared/Gemfile +2 -0
  74. data/components/shared/markdown-ui-shared/lib/markdown-ui-shared.rb +3 -0
  75. data/components/shared/markdown-ui-shared/lib/shared/tag_klass.rb +77 -0
  76. data/components/shared/markdown-ui-shared/lib/shared/version.rb +5 -0
  77. data/components/shared/markdown-ui-shared/markdown-ui-shared.gemspec +37 -0
  78. data/lib/markdown-ui.rb +10 -132
  79. data/lib/markdown-ui/renderers/block_quote.rb +47 -0
  80. data/lib/markdown-ui/renderers/double_emphasis.rb +97 -0
  81. data/lib/markdown-ui/renderers/emphasis.rb +23 -0
  82. data/lib/markdown-ui/renderers/header.rb +9 -0
  83. data/lib/markdown-ui/renderers/horizontal_rule.rb +19 -0
  84. data/lib/markdown-ui/renderers/link.rb +10 -0
  85. data/lib/markdown-ui/renderers/list.rb +10 -0
  86. data/lib/markdown-ui/renderers/paragraph.rb +9 -0
  87. data/lib/markdown-ui/renderers/quote.rb +9 -0
  88. data/lib/markdown-ui/shared.rb +7 -0
  89. data/lib/markdown-ui/tag/article_tag.rb +14 -0
  90. data/lib/markdown-ui/tag/button_tag.rb +6 -19
  91. data/lib/markdown-ui/tag/custom_tag.rb +11 -10
  92. data/lib/markdown-ui/tag/focusable_button_tag.rb +6 -19
  93. data/lib/markdown-ui/tag/footer_tag.rb +14 -0
  94. data/lib/markdown-ui/tag/header_tag.rb +14 -0
  95. data/lib/markdown-ui/tag/input_tag.rb +7 -27
  96. data/lib/markdown-ui/tag/item_tag.rb +6 -14
  97. data/lib/markdown-ui/tag/label_tag.rb +6 -19
  98. data/lib/markdown-ui/tag/list_tag.rb +18 -21
  99. data/lib/markdown-ui/tag/section_tag.rb +14 -0
  100. data/lib/markdown-ui/tag/span_tag.rb +7 -7
  101. data/lib/markdown-ui/tag/standard_tag.rb +6 -19
  102. data/lib/markdown-ui/tag/tag.rb +18 -20
  103. data/lib/markdown-ui/tools/html_formatter.rb +11 -0
  104. data/lib/markdown-ui/utils/klass_util.rb +13 -3
  105. data/lib/markdown-ui/version.rb +1 -1
  106. data/website/docs/flag.html +1 -1
  107. data/website/docs/icon.html +609 -0
  108. data/website/docs/icon.md +691 -0
  109. data/website/docs/toc.html +4 -0
  110. data/website/docs/toc.md +5 -2
  111. data/website/index.html +2 -2
  112. metadata +25 -2
@@ -9,7 +9,7 @@ module MarkdownUI
9
9
  end
10
10
 
11
11
  def render
12
- klass = "ui #{@element} form"
12
+ klass = "ui #{@element} form"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
@@ -5,11 +5,11 @@ module MarkdownUI
5
5
  class Header
6
6
  def initialize(content, klass = nil)
7
7
  @content = content
8
- @klass = klass
8
+ @klass = klass
9
9
  end
10
10
 
11
11
  def render
12
- klass = "ui #{@klass} header"
12
+ klass = "ui #{@klass} header"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
@@ -9,7 +9,7 @@ module MarkdownUI
9
9
  end
10
10
 
11
11
  def render
12
- klass = "ui #{@element} header"
12
+ klass = "ui #{@element} header"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
@@ -5,12 +5,12 @@ module MarkdownUI
5
5
  class Icon
6
6
  def initialize(content, klass = nil)
7
7
  @content = content
8
- @klass = klass
8
+ @klass = klass
9
9
  end
10
10
 
11
11
  def render
12
12
  content = @content.downcase
13
- klass = MarkdownUI::KlassUtil.new("#{@content} #{@klass} icon").klass
13
+ klass = MarkdownUI::KlassUtil.new("#{@content} #{@klass} icon").klass
14
14
 
15
15
  output = []
16
16
  output << '<i'
@@ -9,7 +9,7 @@ module MarkdownUI
9
9
  end
10
10
 
11
11
  def render
12
- klass = "ui #{@element} input"
12
+ klass = "ui #{@element} input"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
@@ -5,14 +5,14 @@ module MarkdownUI
5
5
  class Item
6
6
  def initialize(content, klass = nil, link = nil)
7
7
  @content = content
8
- @klass = klass
9
- @link = link
8
+ @klass = klass
9
+ @link = link
10
10
  end
11
11
 
12
12
  def render
13
- klass = "ui #{@klass} item"
13
+ klass = "ui #{@klass} item"
14
14
  content = @content.strip
15
- link = @link
15
+ link = @link
16
16
 
17
17
  MarkdownUI::ItemTag.new(content, klass, link).render
18
18
  end
@@ -9,7 +9,7 @@ module MarkdownUI
9
9
  end
10
10
 
11
11
  def render
12
- klass = "ui #{@element} item"
12
+ klass = "ui #{@element} item"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
@@ -5,16 +5,16 @@ module MarkdownUI
5
5
  class List
6
6
  def initialize(content, klass = nil, type = nil, data = nil)
7
7
  @content = content
8
- @klass = klass
9
- @type = type
10
- @data = data
8
+ @klass = klass
9
+ @type = type
10
+ @data = data
11
11
  end
12
12
 
13
13
  def render
14
- klass = "ui #{@klass} list"
14
+ klass = "ui #{@klass} list"
15
15
  content = @content.strip
16
- type = @type
17
- data = @data
16
+ type = @type
17
+ data = @data
18
18
 
19
19
  MarkdownUI::ListTag.new(content, klass, type, data).render
20
20
  end
@@ -20,14 +20,14 @@ module MarkdownUI
20
20
  final_content.join
21
21
  else
22
22
  content = if !(@content =~ /\:/).nil?
23
- @content.split(':')
24
- else
25
- if @content
26
- @content.split('\n')
27
- else
28
- ['']
29
- end
30
- end
23
+ @content.split(':')
24
+ else
25
+ if @content
26
+ @content.split('\n')
27
+ else
28
+ ['']
29
+ end
30
+ end
31
31
 
32
32
  process(content)
33
33
  end
@@ -35,18 +35,18 @@ module MarkdownUI
35
35
 
36
36
  def process(content)
37
37
  content_type, actual_content = content[0], content[1]
38
- klass = content[2] if content.size > 2
38
+ klass = content[2] if content.size > 2
39
39
 
40
40
  if actual_content
41
41
  mode = OpenStruct.new(
42
- :text? => !(content_type =~ /text/i).nil?,
43
- :icon? => !(content_type =~ /icon/i).nil?,
44
- :flag? => !(content_type =~ /flag/i).nil?,
45
- :image? => !(content_type =~ /image/i).nil?,
46
- :header? => !(content_type =~ /header/i).nil?,
47
- :list? => !(content_type =~ /list/i).nil?,
48
- :unordered? => !(content_type =~ /unordered/i).nil?,
49
- :ordered? => !(content_type =~ /ordered/i).nil?
42
+ :text? => !(content_type =~ /text/i).nil?,
43
+ :icon? => !(content_type =~ /icon/i).nil?,
44
+ :flag? => !(content_type =~ /flag/i).nil?,
45
+ :image? => !(content_type =~ /image/i).nil?,
46
+ :header? => !(content_type =~ /header/i).nil?,
47
+ :list? => !(content_type =~ /list/i).nil?,
48
+ :unordered? => !(content_type =~ /unordered/i).nil?,
49
+ :ordered? => !(content_type =~ /ordered/i).nil?
50
50
  )
51
51
 
52
52
  if mode.text?
@@ -9,7 +9,7 @@ module MarkdownUI
9
9
  end
10
10
 
11
11
  def render
12
- klass = "#{@element}"
12
+ klass = "#{@element}"
13
13
  content = @content.strip
14
14
 
15
15
  MarkdownUI::SpanTag.new(content, klass).render
@@ -5,17 +5,17 @@ module MarkdownUI
5
5
  class Text
6
6
  def initialize(content, klass = nil)
7
7
  @content = content
8
- @klass = klass
8
+ @klass = klass
9
9
  end
10
10
 
11
11
  def render
12
12
  content = if @klass
13
- klass = "#{@klass}"
13
+ klass = "#{@klass}"
14
14
 
15
- MarkdownUI::StandardTag.new(@content, klass).render
16
- else
17
- "#{@content.strip}"
18
- end
15
+ MarkdownUI::StandardTag.new(@content, klass).render
16
+ else
17
+ "#{@content.strip}"
18
+ end
19
19
 
20
20
  content
21
21
  end
@@ -2,13 +2,13 @@ module MarkdownUI
2
2
  class Header
3
3
  def initialize(text, level)
4
4
  @text, @klass, @_id = text.split(':')
5
- @level = level
5
+ @level = level
6
6
  end
7
7
 
8
8
  def render
9
- text = @text.strip
9
+ text = @text.strip
10
10
  klass = MarkdownUI::KlassUtil.new("ui #{@klass} header").klass
11
- _id = " id=\'#{@_id}\'" if @_id
11
+ _id = " id=\'#{@_id}\'" if @_id
12
12
  level = @level
13
13
 
14
14
  output = []
@@ -4,16 +4,16 @@ module MarkdownUI::Input
4
4
  class Custom
5
5
  def initialize(element, content, klass = nil, _id = nil)
6
6
  @element = element
7
- @klass = klass
7
+ @klass = klass
8
8
  @content = content
9
- @id = _id
9
+ @id = _id
10
10
  end
11
11
 
12
12
  def render
13
13
  element = @element.join(' ').strip
14
14
  # content = MarkdownUI::Content::Parser.new(@content).parse
15
- klass = "ui #{element} #{@klass} input"
16
- _id = @id
15
+ klass = "ui #{element} #{@klass} input"
16
+ _id = @id
17
17
 
18
18
  MarkdownUI::InputTag.new(@content, klass, _id).render
19
19
  end
@@ -3,24 +3,24 @@ module MarkdownUI::Input
3
3
  def initialize(element, content, klass = nil, _id = nil)
4
4
  @element = element
5
5
  @content = content
6
- @klass = klass
7
- @id = _id
6
+ @klass = klass
7
+ @id = _id
8
8
  end
9
9
 
10
10
  def render
11
11
  element = if @element.is_a? Array
12
- @element
13
- else
14
- @element.split(' ')
15
- end
12
+ @element
13
+ else
14
+ @element.split(' ')
15
+ end
16
16
 
17
17
  content = @content
18
18
 
19
19
  klass = if @klass.nil?
20
- element.join(' ').strip
21
- else
22
- @klass
23
- end
20
+ element.join(' ').strip
21
+ else
22
+ @klass
23
+ end
24
24
 
25
25
  _id = @id
26
26
 
@@ -4,14 +4,14 @@ module MarkdownUI::Label
4
4
  class Custom
5
5
  def initialize(element, content, klass = nil)
6
6
  @element = element
7
- @klass = klass
7
+ @klass = klass
8
8
  @content = content
9
9
  end
10
10
 
11
11
  def render
12
12
  element = @element.join(' ').strip
13
13
  content = MarkdownUI::Content::Parser.new(@content).parse
14
- klass = "ui #{element} #{@klass} label"
14
+ klass = "ui #{element} #{@klass} label"
15
15
 
16
16
  MarkdownUI::StandardTag.new(content, klass).render
17
17
  end
@@ -3,32 +3,25 @@ module MarkdownUI::Label
3
3
  def initialize(element, content, klass = nil)
4
4
  @element = element
5
5
  @content = content
6
- @klass = klass
6
+ @klass = klass
7
7
  end
8
8
 
9
9
  def render
10
10
  element = if @element.is_a? Array
11
- @element
12
- else
13
- @element.split(' ')
14
- end
11
+ @element
12
+ else
13
+ @element.split(' ')
14
+ end
15
15
 
16
16
  content = @content
17
17
 
18
18
  klass = if @klass.nil?
19
- element.join(' ').strip
20
- else
21
- @klass
22
- end
19
+ element.join(' ').strip
20
+ else
21
+ @klass
22
+ end
23
23
 
24
24
  MarkdownUI::Label::Custom.new(element, content, klass).render
25
25
  end
26
-
27
- protected
28
-
29
- def standard_label?(mode)
30
- !mode.image? && !mode.secondary? && !mode.pagination? && !mode.pointing? && !mode.tabular? && !mode.text? && !mode.vertical?
31
- end
32
-
33
26
  end
34
27
  end
@@ -10,7 +10,7 @@ module MarkdownUI
10
10
  def render
11
11
  element = @element.strip
12
12
  content = @content.strip
13
- klass = "ui #{element} segment"
13
+ klass = "ui #{element} segment"
14
14
 
15
15
  MarkdownUI::StandardTag.new(content, klass).render
16
16
  end
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} horizontal segment"
11
+ klass = "ui #{element} horizontal segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} padded segment"
11
+ klass = "ui #{element} padded segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} piled segment"
11
+ klass = "ui #{element} piled segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -1,12 +1,12 @@
1
1
  module MarkdownUI
2
2
  class Segment
3
3
  def initialize(element, content)
4
- @mode = OpenStruct.new(
5
- :horizontal? => !(element =~ /horizontal/i).nil?,
6
- :vertical? => !(element =~ /vertical/i).nil?,
7
- :stacked? => !(element =~ /stacked/i).nil?,
8
- :piled? => !(element =~ /piled/i).nil?,
9
- :padded? => !(element =~ /padded/i).nil?
4
+ @mode = OpenStruct.new(
5
+ :horizontal? => !(element =~ /horizontal/i).nil?,
6
+ :vertical? => !(element =~ /vertical/i).nil?,
7
+ :stacked? => !(element =~ /stacked/i).nil?,
8
+ :piled? => !(element =~ /piled/i).nil?,
9
+ :padded? => !(element =~ /padded/i).nil?
10
10
  )
11
11
  @element = element
12
12
  @content = content
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} stacked segment"
11
+ klass = "ui #{element} stacked segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} segment"
11
+ klass = "ui #{element} segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -8,7 +8,7 @@ module MarkdownUI
8
8
  def render
9
9
  element = @element.strip
10
10
  content = @content.strip
11
- klass = "ui #{element} vertical segment"
11
+ klass = "ui #{element} vertical segment"
12
12
 
13
13
  MarkdownUI::StandardTag.new(content, klass).render
14
14
  end
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,3 @@
1
+ ['shared/**/*.rb'].each do |dir|
2
+ Dir[File.join(File.dirname(__FILE__), dir)].sort.each { |f| require_relative f }
3
+ end
@@ -0,0 +1,77 @@
1
+ module MarkdownUI
2
+ module Shared
3
+ class TagKlass
4
+ def content
5
+ if @content
6
+ _content = MarkdownUI::Content::Parser.new(@content).parse
7
+ _content.strip
8
+ end
9
+ end
10
+
11
+ def element
12
+ if @element
13
+ (@element.is_a? Array) ? @element.join(' ').strip : @element.strip
14
+ end
15
+ end
16
+
17
+ def html
18
+ if block_given?
19
+ HTMLFormatter.new(yield).to_html
20
+ end
21
+ end
22
+
23
+ def klass
24
+ MarkdownUI::KlassUtil.new(@klass).klass unless @klass.nil?
25
+ end
26
+
27
+ def klass_text
28
+ MarkdownUI::KlassUtil.new(@klass).text unless @klass.nil?
29
+ end
30
+
31
+ def _id
32
+ if @id
33
+ " id=\'#{@id.split.join('-')}\'"
34
+ end
35
+ end
36
+
37
+ def data
38
+ if @data
39
+ if @data =~ /\:/
40
+ _data, attribute, value = @data.split(':')
41
+ " data-#{attribute}=\'#{value}\'"
42
+ else
43
+ @data
44
+ end
45
+ else
46
+ nil
47
+ end
48
+ end
49
+
50
+ def _input_id
51
+ if @id
52
+ " placeholder=\'#{@id.capitalize}\'"
53
+ end
54
+ end
55
+
56
+ def input_content
57
+ if @content
58
+ " type=\'#{@content.strip.downcase}\'"
59
+ else
60
+ nil
61
+ end
62
+ end
63
+
64
+ def regexp
65
+ Regexp.new (@params.collect { |u| u.downcase }).join('|'), "i"
66
+ end
67
+
68
+ def key
69
+ keys.grep(regexp).first
70
+ end
71
+
72
+ def keys
73
+ @elements.keys
74
+ end
75
+ end
76
+ end
77
+ end