mongoid_markdown_extension 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98721c11aa15c68da195f8aa13d89a9f3cc2d204
4
- data.tar.gz: c2d7b530f4b39fef19e734d881bdcfd20579fc42
3
+ metadata.gz: 0205fc66b7a8adf5cac5d95156cdae75feb5ae39
4
+ data.tar.gz: 9909e3b390ef53daa70be54acbef2bedb5388b03
5
5
  SHA512:
6
- metadata.gz: 3406c9a2a958ae0394739e30bdcedd5ea4a369a3ee75819f0c4de6881ed5adfea88bc507107f10e8397b9d893b7263a95710bd95368c0f0fd3f5fe92079717c3
7
- data.tar.gz: a22a1a4522e9ce2e022153a8868cf9e78d07891bf3ea87b192e1381588e0c3658e331df1bc2b32f63dc495045918b9413d6fc24aa535709bf235650927cd391f
6
+ metadata.gz: 15a411be7ebb7b02c9e98b05933f83f79b81dbc7599b79ab2b3a80d114ac8cd025b95e911caefdde351b29eafafbf42fcd7e2bc48ef9a51311f62db7c32b30f3
7
+ data.tar.gz: f612112f8f502ee35031b745a14ba55ae05ac7428706ea5abd35344d840b959b45399e61875c6479a402d2f295af6792de33f22d9c2a66a9e9bebf76648d68e7
@@ -1,3 +1,5 @@
1
+ require 'mongoid'
2
+
1
3
  require 'mongoid_markdown_extension/inline_renderer'
2
4
  require 'mongoid_markdown_extension/markdown'
3
5
  require 'mongoid_markdown_extension/version'
@@ -3,6 +3,40 @@ require 'redcarpet/render_strip'
3
3
 
4
4
  module MongoidMarkdownExtension
5
5
  class Markdown < String
6
+ class << self
7
+ attr_writer :configuration
8
+ end
9
+
10
+ def self.configuration
11
+ @configuration ||= Configuration.new
12
+ end
13
+
14
+ def self.reset
15
+ @configuration = Configuration.new
16
+ end
17
+
18
+ def self.configure
19
+ yield(configuration)
20
+ end
21
+
22
+ def self.demongoize(value)
23
+ Markdown.new(value)
24
+ end
25
+
26
+ def self.mongoize(value)
27
+ case value
28
+ when Markdown then value.mongoize
29
+ else value
30
+ end
31
+ end
32
+
33
+ def self.evolve(value)
34
+ case value
35
+ when Markdown then value.mongoize
36
+ else value
37
+ end
38
+ end
39
+
6
40
  def initialize(str)
7
41
  super str.to_s
8
42
  @str = str.to_s
@@ -28,13 +62,14 @@ module MongoidMarkdownExtension
28
62
  @str
29
63
  end
30
64
 
31
- private # =============================================================
65
+ private
32
66
 
33
67
  def markdown_renderer
34
- Redcarpet::Markdown.new(
35
- self.class.configuration.render_class.new(self.class.configuration.render_options),
36
- self.class.configuration.extensions
37
- )
68
+ render_class = MongoidMarkdownExtension::Markdown.configuration.render_class
69
+ render_options = MongoidMarkdownExtension::Markdown.configuration.render_options
70
+ extensions = MongoidMarkdownExtension::Markdown.configuration.extensions
71
+
72
+ Redcarpet::Markdown.new(render_class.new(render_options), extensions)
38
73
  end
39
74
 
40
75
  # TODO: how to combine custom render class with the InlineRenderer?
@@ -43,45 +78,10 @@ module MongoidMarkdownExtension
43
78
  end
44
79
 
45
80
  def markdown_stripdown_renderer
46
- Redcarpet::Markdown.new(Redcarpet::Render::StripDown, space_after_headers: true)
47
- end
48
-
49
- # ---------------------------------------------------------------------
50
-
51
- class << self
52
- attr_accessor :configuration
53
-
54
- def configure
55
- @configuration ||= Configuration.new
56
- yield @configuration
57
- end
58
-
59
- def configuration
60
- @configuration ||= Configuration.new
61
- end
62
-
63
- def demongoize(value)
64
- Markdown.new(value)
65
- end
66
-
67
- def mongoize(value)
68
- case value
69
- when Markdown then value.mongoize
70
- else value
71
- end
72
- end
73
-
74
- def evolve(value)
75
- case value
76
- when Markdown then value.mongoize
77
- else value
78
- end
79
- end
81
+ Redcarpet::Markdown.new(Redcarpet::Render::StripDown)
80
82
  end
81
83
  end
82
84
 
83
- # ---------------------------------------------------------------------
84
-
85
85
  class Configuration
86
86
  attr_accessor :extensions
87
87
  attr_accessor :render_class
@@ -1,3 +1,3 @@
1
1
  module MongoidMarkdownExtension
2
- VERSION = '0.1.6'.freeze
2
+ VERSION = '0.1.7'.freeze
3
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'redcarpet', '>= 3.1.2'
21
+ spec.add_dependency 'redcarpet', '~> 3.4'
22
22
  spec.add_dependency 'mongoid', '>= 4.0'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '~> 1.6'
@@ -1,7 +1,5 @@
1
1
  require 'test_helper'
2
2
 
3
- # ---------------------------------------------------------------------
4
-
5
3
  class MongoidMarkdownExtensionTest
6
4
  include Mongoid::Document
7
5
  field :body, type: MongoidMarkdownExtension::Markdown
@@ -29,13 +27,18 @@ module MongoidMarkdownExtension
29
27
  let(:string) { 'some text with _italic_' }
30
28
  subject { MongoidMarkdownExtension::Markdown.new(string) }
31
29
 
30
+ after(:each) do
31
+ MongoidMarkdownExtension::Markdown.reset
32
+ end
33
+
32
34
  describe 'configuration' do
33
35
  describe 'setup block' do
34
36
  it 'yields self' do
35
37
  MongoidMarkdownExtension::Markdown.configure do |config|
36
- config.must_be_kind_of Configuration
38
+ config.must_be_kind_of MongoidMarkdownExtension::Configuration
37
39
  end
38
40
  end
41
+
39
42
  it 'returns default values' do
40
43
  MongoidMarkdownExtension::Markdown.configuration.extensions.must_equal(
41
44
  autolink: true,
@@ -51,8 +54,6 @@ module MongoidMarkdownExtension
51
54
  end
52
55
  end
53
56
 
54
- # ---------------------------------------------------------------------
55
-
56
57
  describe '#to_s' do
57
58
  it 'returns the original value' do
58
59
  subject.to_s.must_equal string
@@ -63,6 +64,7 @@ module MongoidMarkdownExtension
63
64
  it 'survives nil' do
64
65
  MongoidMarkdownExtension::Markdown.new(nil).to_html.must_equal ''
65
66
  end
67
+
66
68
  it 'converts the string to html' do
67
69
  subject.to_html.must_equal Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(string)
68
70
  end
@@ -74,9 +76,11 @@ module MongoidMarkdownExtension
74
76
  it 'survives nil' do
75
77
  MongoidMarkdownExtension::Markdown.new(nil).to_inline_html.must_equal ''
76
78
  end
79
+
77
80
  it 'converts the string to html' do
78
81
  subject.to_inline_html.wont_include '<p>'
79
82
  end
83
+
80
84
  it 'replaces <p> with <br />' do
81
85
  subject.to_inline_html.must_equal 'some text with <em>italic</em><br /><br />foo'
82
86
  end
@@ -86,6 +90,7 @@ module MongoidMarkdownExtension
86
90
  it 'survives nil' do
87
91
  MongoidMarkdownExtension::Markdown.new(nil).to_stripped_s.must_equal ''
88
92
  end
93
+
89
94
  it 'converts the markdown to stripped string' do
90
95
  subject.to_stripped_s.wont_include '_'
91
96
  end
@@ -97,14 +102,13 @@ module MongoidMarkdownExtension
97
102
  end
98
103
  end
99
104
 
100
- # ---------------------------------------------------------------------
101
-
102
105
  describe '.mongoize' do
103
106
  describe 'when passed a string' do
104
107
  it 'returns it back' do
105
108
  MongoidMarkdownExtension::Markdown.mongoize(string).must_equal string
106
109
  end
107
110
  end
111
+
108
112
  describe 'when passed markdown object' do
109
113
  it 'returns its string' do
110
114
  MongoidMarkdownExtension::Markdown.mongoize(subject).must_be_kind_of String
@@ -1,10 +1,11 @@
1
1
  require 'bundler/setup'
2
- require 'mongoid'
3
- require 'mongoid_markdown_extension'
2
+
4
3
  require 'minitest'
5
4
  require 'minitest/autorun'
6
5
  require 'minitest/spec'
7
6
 
7
+ require 'mongoid_markdown_extension'
8
+
8
9
  if ENV['CI']
9
10
  require 'coveralls'
10
11
  Coveralls.wear!
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_markdown_extension
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
  - Tomas Celizna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-24 00:00:00.000000000 Z
11
+ date: 2018-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redcarpet
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.2
19
+ version: '3.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.1.2
26
+ version: '3.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mongoid
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  requirements: []
124
124
  rubyforge_project:
125
- rubygems_version: 2.4.5.1
125
+ rubygems_version: 2.5.2
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Custom field type for Mongoid that handles Markdown conversion via Redcarpet