markdown_record 0.1.6 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a4c60c407ae3d679694a78384ee19031e6e4c4e81b13fb906735eeed501c401
4
- data.tar.gz: b2e9e868cf53abbfdfa564545d4714ce566d65f1394b688f4907b9f5dc9999fb
3
+ metadata.gz: 28719266b418efe6379df27d13947fe87112a92a2752c2ba255794a0e988879f
4
+ data.tar.gz: 1e65d9b00a6aeea4f1153853430a2ed7b0f5f0c3b910f226ea56aff07b3eb49d
5
5
  SHA512:
6
- metadata.gz: 14b05075403c27112cec85baec54a03118830f96c6c50b5537f262e6940311ec87d6bcb34db2ca986b5bbb7ba6876596bdcf55ee3a59e4e817c9261deaa299fc
7
- data.tar.gz: e8673494fcd89dd4287bdf84616e720a0eafb8b9c1688835fa58d00bf726931be17b2c26286439ada37ca1eb35f0f45ec58add57f5ce5c51d13479fb5d965dbd
6
+ metadata.gz: 1e06ee088c3d506b7fbf056d41a5383478065b41977a31b5653b007c18a6f09141f1912540e14121da17121f3a6b8227843243bb8357009fa1476071569e81c8
7
+ data.tar.gz: a4b62f1449034d362141f4efc9147bc18add91116a39b9da06296e5c3e42c5ddfce7e4c2d3929c424eed3e961f070396e84fb7716f8da1a8c007a55f6b0cf312
@@ -77,56 +77,21 @@ module MarkdownRecord
77
77
  self
78
78
  end
79
79
 
80
- def each(...)
81
- execute unless fulfilled
82
- all unless fulfilled
83
- @data.each(...)
84
- end
85
-
86
- def map(...)
87
- execute unless fulfilled
88
- execute
89
- @data.map(...)
90
- end
91
-
92
- def count(...)
93
- execute unless fulfilled
94
- @data.count(...)
95
- end
96
-
97
- def any?(...)
98
- execute unless fulfilled
99
- @data.any?(...)
100
- end
101
-
102
- def empty?(...)
103
- execute unless fulfilled
104
- @data.empty?(...)
105
- end
106
-
107
- def first(...)
108
- execute unless fulfilled
109
- @data.first(...)
110
- end
111
-
112
- def last(...)
113
- execute unless fulfilled
114
- @data.first(...)
115
- end
116
-
117
- def second(...)
118
- execute unless fulfilled
119
- @data.second(...)
120
- end
121
-
122
- def third(...)
123
- execute unless fulfilled
124
- @data.third(...)
80
+ def method_missing(method, *args, &block)
81
+ if @data.respond_to?(method)
82
+ execute unless fulfilled
83
+ @data.send(method, *args, &block)
84
+ else
85
+ super
86
+ end
125
87
  end
126
88
 
127
- def fourth(...)
128
- execute unless fulfilled
129
- @data.fourth(...)
89
+ def respond_to?(method)
90
+ if @data.respond_to?(method)
91
+ true
92
+ else
93
+ super
94
+ end
130
95
  end
131
96
 
132
97
  def __find__(id, scope = nil)
@@ -14,6 +14,10 @@ module MarkdownRecord
14
14
  /<!---/ => "<!--"
15
15
  }
16
16
 
17
+ HTML_MACROS = {
18
+ /<code(?:.*?)>((?:.|\s)*?)<\/code>/ => lambda { |match, first| match.gsub(first, CGI.unescapeHTML(CGI.escapeHTML(first))) }
19
+ }
20
+
17
21
  def initialize(pathname, markdown, options)
18
22
  @markdown = markdown
19
23
  @pathname = pathname
@@ -44,6 +48,12 @@ module MarkdownRecord
44
48
  final_html = final_html.gsub(find, replace)
45
49
  end
46
50
 
51
+ HTML_MACROS.each do |regex, macro|
52
+ final_html = final_html.gsub(regex) do |match|
53
+ macro.call(match, $1).html_safe
54
+ end
55
+ end
56
+
47
57
  final_html = final_html.squeeze("\n")
48
58
  @final_html = HtmlBeautifier.beautify(final_html)
49
59
  end
@@ -1,3 +1,3 @@
1
1
  module MarkdownRecord
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -51,7 +51,7 @@ The `where` query method takes an optional hash of filters and returns a `Markdo
51
51
  - `to_fragments`: this method queries for MarkdownRecord models but returns their corresponding content fragments instead. This will often result in duplicates due to models being defined in the same file.
52
52
  - `all`: this method simply returns an Array of models, filtered according to whatever filters have been provided to the association object.
53
53
 
54
- `MarkdownRecord::Association` also supports the `to_a`, `each`, `map`, `count`, `any?`, `empty?`, `first`, `last`, `second`, `third` and `fourth` methods which get executed on the backing Array after loading the data with the most recent filters. For additional functionality, you may call `all` or `to_a` to work with the backing Array directly.
54
+ `MarkdownRecord::Association` supports any method you can call on the underlying array that contains the query results.
55
55
 
56
56
  ## Filters
57
57
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryant Morrill