sir_trevor_rails 0.5.1 → 0.6.1
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 +5 -5
- data/.travis.yml +1 -0
- data/CHANGELOG +7 -0
- data/Gemfile +1 -0
- data/README.md +35 -3
- data/lib/sir_trevor_rails/block.rb +14 -4
- data/lib/sir_trevor_rails/block_array.rb +5 -0
- data/lib/sir_trevor_rails/version.rb +1 -1
- data/sir_trevor_rails.gemspec +4 -4
- data/spec/spec_helper.rb +4 -0
- data/spec/unit/block_array_spec.rb +20 -1
- metadata +19 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0a1c2cf1f3e25b93298e404ad2cf3ff350c6ca6668414e80eda23a6addb2848f
|
4
|
+
data.tar.gz: 16be7ad703a0dc2a80591db4d56674b0ce42a6b776d0aaa129a113ed244e20be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e1463ab7d9fd6391847c59f0c55750c77bea92aff5f1f6243826bf3dd61bb8602ccafea476498693a51eb35f42ea96bdf5173bf4f34620130d317bf8464e70c
|
7
|
+
data.tar.gz: b6a1c1bf4ab98089114180645f0221e12a8cba880a08375e4736b39ca06e9f346ec4c746a8a973d69631535f5310162a66781add2f9940b8d2e1090e77122fdf
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
# Sir Trevor Rails
|
2
2
|
|
3
|
-
A Rails gem for integrating Sir Trevor JS into your Rails 3/4 application.
|
3
|
+
A Rails gem for integrating Sir Trevor JS into your Rails 3/4/5/6 application.
|
4
|
+
|
5
|
+
## Upgrade guide to v0.6.0
|
6
|
+
|
7
|
+
There is a breaking change which needs to be applied if you've defined custom ruby blocks.
|
8
|
+
|
9
|
+
Create an initializer ``config/initializers/sir_trevor_rails.rb``
|
10
|
+
|
11
|
+
Add your custom block types in the initializer:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
class SirTrevorRails::Block
|
15
|
+
def self.custom_block_types
|
16
|
+
# Type should be string based and prefix of your class name.
|
17
|
+
["Custom"] # Would relate to CustomBlock
|
18
|
+
end
|
19
|
+
end
|
20
|
+
```
|
4
21
|
|
5
22
|
## Upgrade guide from v0.4.0-rc.1
|
6
23
|
|
@@ -74,6 +91,22 @@ Does this content have an image block?
|
|
74
91
|
|
75
92
|
Return the first video block in the content
|
76
93
|
|
94
|
+
## Add custom block types with custom methods
|
95
|
+
|
96
|
+
Create an initializer ``config/initializers/sir_trevor_rails.rb``
|
97
|
+
|
98
|
+
Add your custom block types in the initializer:
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
class SirTrevorRails::Block
|
102
|
+
def self.custom_block_types
|
103
|
+
# Type should be string based and prefix of your class name which would be for the following.
|
104
|
+
# TextBlock, HeadingBlock, CustomBlock
|
105
|
+
["Text", "Heading", "Custom"]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
```
|
109
|
+
|
77
110
|
## Add custom methods for block content
|
78
111
|
|
79
112
|
Create an initializer ``config/initializers/sir_trevor_rails.rb``
|
@@ -110,8 +143,7 @@ Ruby block classes can be used like decorators for the block content. See the [t
|
|
110
143
|
|
111
144
|
## Requirements
|
112
145
|
|
113
|
-
|
114
|
-
- Rails 3.x/4.x
|
146
|
+
- Rails 3.x/4.x/5.x/6.x
|
115
147
|
|
116
148
|
## To do
|
117
149
|
|
@@ -13,6 +13,11 @@ module SirTrevorRails
|
|
13
13
|
send(:[], :format).present? ? send(:[], :format).to_sym : DEFAULT_FORMAT
|
14
14
|
end
|
15
15
|
|
16
|
+
# Sets a list of custom block types to speed up lookup at runtime.
|
17
|
+
def self.custom_block_types
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
16
21
|
def initialize(hash, parent)
|
17
22
|
@raw_data = hash
|
18
23
|
@parent = parent
|
@@ -40,10 +45,15 @@ module SirTrevorRails
|
|
40
45
|
#
|
41
46
|
# @param [Symbol] type
|
42
47
|
def self.block_class(type)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
48
|
+
type_name = type.to_s.camelize
|
49
|
+
block_name = "#{type_name}Block"
|
50
|
+
if custom_block_types.include?(type_name)
|
51
|
+
begin
|
52
|
+
block_name.constantize
|
53
|
+
rescue NameError
|
54
|
+
block_class!(block_name)
|
55
|
+
end
|
56
|
+
else
|
47
57
|
block_class!(block_name)
|
48
58
|
end
|
49
59
|
end
|
data/sir_trevor_rails.gemspec
CHANGED
@@ -24,17 +24,17 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
|
27
|
-
spec.add_development_dependency "bundler", "
|
27
|
+
spec.add_development_dependency "bundler", ">= 1.4"
|
28
28
|
spec.add_development_dependency "rake"
|
29
29
|
spec.add_development_dependency "minitest", "~> 5.3"
|
30
30
|
spec.add_development_dependency "wrong"
|
31
31
|
spec.add_development_dependency "pry-rails"
|
32
|
-
spec.add_development_dependency "combustion"
|
33
|
-
spec.add_development_dependency "sqlite3"
|
32
|
+
spec.add_development_dependency "combustion", "~> 1.1"
|
33
|
+
spec.add_development_dependency "sqlite3", ">= 1.3", "< 1.5"
|
34
34
|
spec.add_development_dependency "capybara"
|
35
35
|
spec.add_development_dependency "launchy"
|
36
36
|
|
37
|
-
spec.add_dependency "rails", ">= 3", "<
|
37
|
+
spec.add_dependency "rails", ">= 3", "< 7"
|
38
38
|
spec.add_dependency "redcarpet", ">= 2.0.1", "< 4"
|
39
39
|
spec.add_dependency "twitter-text", "~> 1.4"
|
40
40
|
spec.add_dependency 'multi_json', '~> 1.0'
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
class BlockArraySpec < ActiveSupport::TestCase
|
4
4
|
describe BlockArray do
|
5
|
-
describe '
|
5
|
+
describe 'initialization' do
|
6
6
|
subject { BlockArray }
|
7
7
|
|
8
8
|
it 'can be initialized with an empty JSON array' do
|
@@ -65,6 +65,25 @@ class BlockArraySpec < ActiveSupport::TestCase
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
+
describe 'get_blocks_of_types' do
|
69
|
+
it 'returns all blocks of given types in the array' do
|
70
|
+
text_blocks = subject.get_blocks_of_types(:text)
|
71
|
+
text_blocks.each do |b|
|
72
|
+
assert { b.type == :text }
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'returns correct number of blocks of given types in the array' do
|
77
|
+
text_blocks = subject.get_blocks_of_types([:text, :list])
|
78
|
+
assert { text_blocks.size == 2 }
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'returns empty array if called with block type not in the array' do
|
82
|
+
nonexistent_blocks = subject.get_blocks_of_types(:nonexistent)
|
83
|
+
assert { nonexistent_blocks.size == 0 }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
68
87
|
describe 'to_a' do
|
69
88
|
it 'returns array with same number of elements' do
|
70
89
|
assert { subject.to_a.class == Array }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sir_trevor_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Sprinz
|
@@ -11,20 +11,20 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '1.4'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.4'
|
30
30
|
- !ruby/object:Gem::Dependency
|
@@ -87,30 +87,36 @@ dependencies:
|
|
87
87
|
name: combustion
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- - "
|
90
|
+
- - "~>"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
92
|
+
version: '1.1'
|
93
93
|
type: :development
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- - "
|
97
|
+
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
99
|
+
version: '1.1'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: sqlite3
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
104
|
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
106
|
+
version: '1.3'
|
107
|
+
- - "<"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.5'
|
107
110
|
type: :development
|
108
111
|
prerelease: false
|
109
112
|
version_requirements: !ruby/object:Gem::Requirement
|
110
113
|
requirements:
|
111
114
|
- - ">="
|
112
115
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
116
|
+
version: '1.3'
|
117
|
+
- - "<"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '1.5'
|
114
120
|
- !ruby/object:Gem::Dependency
|
115
121
|
name: capybara
|
116
122
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,7 +154,7 @@ dependencies:
|
|
148
154
|
version: '3'
|
149
155
|
- - "<"
|
150
156
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
157
|
+
version: '7'
|
152
158
|
type: :runtime
|
153
159
|
prerelease: false
|
154
160
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -158,7 +164,7 @@ dependencies:
|
|
158
164
|
version: '3'
|
159
165
|
- - "<"
|
160
166
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
167
|
+
version: '7'
|
162
168
|
- !ruby/object:Gem::Dependency
|
163
169
|
name: redcarpet
|
164
170
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,8 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
301
307
|
- !ruby/object:Gem::Version
|
302
308
|
version: '0'
|
303
309
|
requirements: []
|
304
|
-
|
305
|
-
rubygems_version: 2.2.2
|
310
|
+
rubygems_version: 3.0.3
|
306
311
|
signing_key:
|
307
312
|
specification_version: 4
|
308
313
|
summary: A ruby wrapper for sir trevor content
|
@@ -338,4 +343,3 @@ test_files:
|
|
338
343
|
- spec/unit/custom_block_spec.rb
|
339
344
|
- spec/unit/has_sir_trevor_content_spec.rb
|
340
345
|
- spec/unit/helpers_spec.rb
|
341
|
-
has_rdoc:
|