jm81-dm-filters 0.2.0 → 0.3.0

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.
data/.document CHANGED
File without changes
data/.gitignore CHANGED
File without changes
data/LICENSE CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
@@ -4,8 +4,12 @@ require 'rake'
4
4
  begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
- gem.name = "dm-filters"
8
- gem.summary = %Q{TODO}
7
+ gem.name = "jm81-dm-filters"
8
+ gem.summary = %Q{Apply text filters to DataMapper properties}
9
+ gem.description = <<EOF
10
+ This module enables a property in a DataMapper::Resource class to be filtered
11
+ on save into another property, using per-row and/or per-property filters
12
+ EOF
9
13
  gem.email = "jmorgan@morgancreative.net"
10
14
  gem.homepage = "http://github.com/jm81/dm-filters"
11
15
  gem.authors = ["Jared Morgan"]
@@ -13,7 +17,7 @@ begin
13
17
  gem.add_dependency('dm-core', '>= 0.10.0')
14
18
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
19
  end
16
-
20
+ Jeweler::GemcutterTasks.new
17
21
  rescue LoadError
18
22
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
19
23
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dm-filters}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jared Morgan"]
12
- s.date = %q{2009-09-19}
12
+ s.date = %q{2009-10-02}
13
13
  s.email = %q{jmorgan@morgancreative.net}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -11,7 +11,7 @@ require 'extlib'
11
11
  # should be defined before to filtered property.
12
12
 
13
13
  module Filters
14
- VERSION = "0.2.0"
14
+ VERSION = "0.3.0"
15
15
 
16
16
  # A hash, with each entry of the form:
17
17
  # Filter name (used in +filters+ property) =>
@@ -20,7 +20,7 @@ module Filters
20
20
  # Classes are assumed to respond to +to_html+.
21
21
  AVAILABLE_FILTERS = {
22
22
  'Smartypants' => [['rubypants', 'RubyPants']],
23
- 'Markdown' => [['rdiscount', 'RDiscount'], ['bluecloth', 'BlueCloth']],
23
+ 'Markdown' => [['maruku', 'Maruku'], ['rdiscount', 'RDiscount'], ['bluecloth', 'BlueCloth']],
24
24
  'Textile' => [['redcloth', 'RedCloth']],
25
25
  'BibleML' => [[File.dirname(__FILE__) + '/filters/bible_ml', 'BibleML']],
26
26
  'Linebreaker' => [[File.dirname(__FILE__) + '/filters/linebreaker', 'Linebreaker']],
@@ -36,10 +36,12 @@ class BibleML
36
36
  strip_comments.
37
37
  block_quotes.
38
38
  inline_quotes.
39
+ references.
39
40
  wikipedia_links.
40
41
  to_s
41
42
  txt = RubyPants.new(txt).to_html
42
43
  txt = RDiscount.new(txt).to_html
44
+ txt.gsub(/&amp;amp;/, '&amp;') # Get rid of double &amp's
43
45
  end
44
46
 
45
47
  # Convert fg:pp tags to Primary Passage links
@@ -126,6 +128,24 @@ class BibleML
126
128
  self
127
129
  end
128
130
 
131
+ def references
132
+ @xml.elements.each("//fg:ref") do | ref_el |
133
+ label = ''
134
+
135
+ if ref_el.has_elements? || ref_el.has_text?
136
+ ref_el.children.each do | child |
137
+ label << child.to_s
138
+ end
139
+ end
140
+
141
+ label = label.empty? ? nil : label.to_s
142
+ a_tag = reference_a(ref_el.attributes['p'], ref_el.attributes['v'], label)
143
+
144
+ ref_el.parent.replace_child(ref_el, a_tag)
145
+ end
146
+ self
147
+ end
148
+
129
149
  def wikipedia_links
130
150
  @xml.elements.each("//fg:wp") do | wp_el |
131
151
  a = REXML::Element.new("a")
File without changes
File without changes
@@ -68,6 +68,20 @@ describe BibleML do
68
68
  "<a href='http://www.biblegateway.com/passage/?search=exodus%205'>Full Chapter</a>"
69
69
  end
70
70
 
71
+ it "should convert fg:ref tag without label to link" do
72
+ BibleML.new('<fg:ref p="Exodus 5:1-5" />').
73
+ references.
74
+ to_s.should ==
75
+ "<a href='http://www.biblegateway.com/passage/?search=exodus%205:1-5'>Exodus 5:1-5</a>"
76
+ end
77
+
78
+ it "should convert fg:ref tag with label to link" do
79
+ BibleML.new('<fg:ref p="Exodus 5:1-5">This passage</fg:ref>').
80
+ references.
81
+ to_s.should ==
82
+ "<a href='http://www.biblegateway.com/passage/?search=exodus%205:1-5'>This passage</a>"
83
+ end
84
+
71
85
  it "should create link from reference with verses" do
72
86
  BibleML.new('').bg_link("Genesis 1:10").should ==
73
87
  "http://www.biblegateway.com/passage/?search=genesis%201:10"
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jm81-dm-filters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Morgan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-19 00:00:00 -07:00
12
+ date: 2009-10-03 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,7 +32,10 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.10.0
34
34
  version:
35
- description:
35
+ description: |
36
+ This module enables a property in a DataMapper::Resource class to be filtered
37
+ on save into another property, using per-row and/or per-property filters
38
+
36
39
  email: jmorgan@morgancreative.net
37
40
  executables: []
38
41
 
@@ -61,7 +64,8 @@ files:
61
64
  - spec/spec_helper.rb
62
65
  has_rdoc: true
63
66
  homepage: http://github.com/jm81/dm-filters
64
- licenses:
67
+ licenses: []
68
+
65
69
  post_install_message:
66
70
  rdoc_options:
67
71
  - --charset=UTF-8
@@ -84,8 +88,8 @@ requirements: []
84
88
  rubyforge_project:
85
89
  rubygems_version: 1.3.5
86
90
  signing_key:
87
- specification_version: 2
88
- summary: TODO
91
+ specification_version: 3
92
+ summary: Apply text filters to DataMapper properties
89
93
  test_files:
90
94
  - spec/dm-filters_spec.rb
91
95
  - spec/filters/bible_ml_spec.rb