snippr 0.14.1 → 0.15.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/LICENSE +7 -0
- data/README.md +28 -1
- data/lib/snippr/segment_filter/base.rb +23 -0
- data/lib/snippr/segment_filter/on_rails_env.rb +24 -0
- data/lib/snippr/segment_filter/valid_from.rb +12 -0
- data/lib/snippr/segment_filter/valid_until.rb +12 -0
- data/lib/snippr/segment_parser.rb +46 -0
- data/lib/snippr/snip.rb +2 -1
- data/lib/snippr/view_helper.rb +1 -0
- data/lib/snippr.rb +6 -0
- data/snippr.gemspec +1 -1
- data/spec/snippr/segment_filter/base_spec.rb +8 -0
- data/spec/snippr/segment_filter/on_rails_env_spec.rb +26 -0
- data/spec/snippr/segment_filter/valid_from_spec.rb +16 -0
- data/spec/snippr/segment_filter/valid_until_spec.rb +16 -0
- data/spec/snippr/segment_parser_spec.rb +29 -0
- data/spec/snippr/snip_spec.rb +15 -20
- data/spec/snippr/snippr_spec.rb +9 -8
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTNiMGU0NWMwNzRlNWFkODQ0NTNhNWVkZjQ0M2FmNTRiZDg2MzFkNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGNjZWJjMDI5YzU5MmJhNzBhNTBmZDQ3OWQ3ZWFiNzU0ZmUyZjMyYw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MGY2NmE3OTAyYzYyYTUzZWQ5OWNhOTVlZDgxZDAyOWVjODZlMmM0NDBjODE1
|
10
|
+
ZWQ5NDc1MWJlY2YxODkwZDhjMTBlM2MwNmRmMTNjMGVjNTVhZGIzOThjODlj
|
11
|
+
MWQxYzg5ODY5NDk3M2UwZjk2YmQ0MDA0OGQxMzJjMjdmZWZiYTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTNkYzZkNzU3NGFkODgyZWVlYmViOWQ0NGM4NDBkMjNmY2JhNGNkN2QyMmM1
|
14
|
+
ZjlhMmY4YzkwNzg2ZTM3MmFiY2M3OGEwY2ZhMTk5N2U4MDYxNmY3NWZmMGQx
|
15
|
+
NjQ2OGI2YWRkNjVjNWE3YjJlZDQ1ZWJiOWZlYjc0ZWI2Y2U5ZmM=
|
data/LICENSE
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
Copyright (c) blaulabs
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4
|
+
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
6
|
+
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -94,7 +94,7 @@ is equivalent to
|
|
94
94
|
|
95
95
|
A snippet can not only hold content but also meta infos for this snippet.
|
96
96
|
|
97
|
-
Inspired by [jekyll](http://jekyllrb.com) a snippet can host
|
97
|
+
Inspired by [jekyll](http://jekyllrb.com) a snippet can host metadata that is accessable via the `.meta` method on a loaded snippet.
|
98
98
|
`.meta' will return an empty hash when no data was found.
|
99
99
|
|
100
100
|
Metadata must be placed at the top of the snippet and is delimited with three dashed.
|
@@ -121,6 +121,33 @@ You can pass additional dynamic values when using `{snip}`. These will override
|
|
121
121
|
|
122
122
|
Those will be available as {dyn_key1} and {dyn_key2} in filepath/of/snip.snip
|
123
123
|
|
124
|
+
### Segments (as of Snippr 0.15.0)
|
125
|
+
|
126
|
+
A snippet file can contain multiple snippet "segments".
|
127
|
+
Those segment are delimited by a line containing only `==== somefilter: filtervalue ====`.
|
128
|
+
Since there can be only one active content per snippet you must use segmentfilters to determine which segment of the enippet to use.
|
129
|
+
|
130
|
+
Currently there are the following filters:
|
131
|
+
|
132
|
+
#### valid_from
|
133
|
+
`valid_from: YYYY-MM-DD HH:MM:SS` :
|
134
|
+
Activates the following snippet section if the current date is greater than the timestamp passed as the filtervalue.
|
135
|
+
|
136
|
+
First segment
|
137
|
+
==== valid_from: 2013-05-17 13:15:00 ====
|
138
|
+
Second segement
|
139
|
+
|
140
|
+
Here the second segment would be the content on and after 2013-05-17 13:15:00.
|
141
|
+
|
142
|
+
#### valid_until
|
143
|
+
`valid_until: YYYY-MM-DD HH:MM:SS` :
|
144
|
+
Same as `valid_from` only the other way round
|
145
|
+
|
146
|
+
#### on_rails_env
|
147
|
+
`on_rails_env: production`:
|
148
|
+
Shows the snippet only in the given environment(s).
|
149
|
+
Separate environments with a comma (eg. production,test,unstable)
|
150
|
+
|
124
151
|
## I18n
|
125
152
|
|
126
153
|
Snippr comes with support for I18n, but up until further notice, you have to manually enable this
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Snippr
|
2
|
+
module SegmentFilter
|
3
|
+
class Base
|
4
|
+
|
5
|
+
def initialize(filter_value)
|
6
|
+
@filter_value = filter_value
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.filters
|
10
|
+
@available_filters
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.inherited(subclass)
|
14
|
+
@available_filters ||= []
|
15
|
+
@available_filters << subclass
|
16
|
+
end
|
17
|
+
|
18
|
+
def active?
|
19
|
+
raise RuntimeException("Subclasses need to implement #active?")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Snippr
|
3
|
+
module SegmentFilter
|
4
|
+
class OnRailsEnv < Base
|
5
|
+
def active?
|
6
|
+
if defined?(Rails) && in_env?
|
7
|
+
true
|
8
|
+
else
|
9
|
+
false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def in_env?
|
16
|
+
sources.include?(Rails.env)
|
17
|
+
end
|
18
|
+
|
19
|
+
def sources
|
20
|
+
@sources ||= @filter_value.split(",").map(&:strip)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Snippr
|
3
|
+
class SegmentParser
|
4
|
+
|
5
|
+
SEGMENT_MARKER = /[=✄]{4}\s(.*?):\s(.*?)\s[=✄]{4}/
|
6
|
+
|
7
|
+
def initialize(raw_content)
|
8
|
+
@raw_content = insert_dummy_filter(raw_content.clone)
|
9
|
+
end
|
10
|
+
|
11
|
+
def content
|
12
|
+
@content ||= @raw_content.scan(/[=✄]{4}$\n(.*?)\n?(?:\z|[=✄]{4})/m)[find_active_segment][0]
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def filters
|
18
|
+
@filters ||= extract_filters
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_active_segment
|
22
|
+
active_segment = 0
|
23
|
+
filters.each_with_index do |filter, filter_index|
|
24
|
+
filter_class = Snippr::SegmentFilter::Base.filters.detect {|c| c.name == "Snippr::SegmentFilter::#{camel_case(filter[:name])}" }
|
25
|
+
active_segment = filter_index and break if filter_class && filter_class.new(filter[:value]).active?
|
26
|
+
end
|
27
|
+
active_segment
|
28
|
+
end
|
29
|
+
|
30
|
+
def extract_filters
|
31
|
+
@raw_content.scan(/^[=✄]{4}\s(.*?):\s(.*?)\s[=✄]{4}$/).map {|filter| { :name => filter[0], :value => filter[1] } }
|
32
|
+
end
|
33
|
+
|
34
|
+
def camel_case(str)
|
35
|
+
return str if str !~ /_/ && str =~ /[A-Z]+.*/
|
36
|
+
str.split('_').map{|e| e.capitalize}.join
|
37
|
+
end
|
38
|
+
|
39
|
+
def insert_dummy_filter(content)
|
40
|
+
if content !~ /\A#{SEGMENT_MARKER}$/
|
41
|
+
content.prepend("==== dummy: filter ====\n")
|
42
|
+
end
|
43
|
+
content
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/snippr/snip.rb
CHANGED
@@ -25,7 +25,8 @@ module Snippr
|
|
25
25
|
if missing?
|
26
26
|
"<!-- missing snippr: #{name} -->"
|
27
27
|
else
|
28
|
-
content =
|
28
|
+
content = SegmentParser.new(@unprocessed_content).content
|
29
|
+
content = Processor.process content, opts
|
29
30
|
"<!-- starting snippr: #{name} -->\n#{content}\n<!-- closing snippr: #{name} -->"
|
30
31
|
end
|
31
32
|
end
|
data/lib/snippr/view_helper.rb
CHANGED
data/lib/snippr.rb
CHANGED
@@ -12,6 +12,12 @@ require 'snippr/processor'
|
|
12
12
|
require 'snippr/railtie' if defined?(Rails)
|
13
13
|
require 'snippr/view_helper'
|
14
14
|
|
15
|
+
require 'snippr/segment_parser'
|
16
|
+
require 'snippr/segment_filter/base'
|
17
|
+
require 'snippr/segment_filter/valid_from'
|
18
|
+
require 'snippr/segment_filter/valid_until'
|
19
|
+
require 'snippr/segment_filter/on_rails_env' if defined?(Rails)
|
20
|
+
|
15
21
|
require 'snippr/normalizer/camelizer'
|
16
22
|
require 'snippr/normalizer/de_rester'
|
17
23
|
|
data/snippr.gemspec
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require "spec_helper"
|
3
|
+
require "snippr/segment_filter/on_rails_env"
|
4
|
+
|
5
|
+
describe "Snippr::SegmentFilter::OnRailsEnv" do
|
6
|
+
before do
|
7
|
+
Rails = Class.new { def self.env; "test"; end}
|
8
|
+
end
|
9
|
+
|
10
|
+
after do
|
11
|
+
Object.send(:remove_const, :Rails)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "is active in the defined environment" do
|
15
|
+
Rails.expects(:env).returns("test")
|
16
|
+
Snippr::SegmentFilter::OnRailsEnv.new("test").should be_active
|
17
|
+
end
|
18
|
+
|
19
|
+
it "is not active in other environments" do
|
20
|
+
Snippr::SegmentFilter::OnRailsEnv.new("non-existing-env").should_not be_active
|
21
|
+
end
|
22
|
+
|
23
|
+
it "allows multiple environments to be given" do
|
24
|
+
Snippr::SegmentFilter::OnRailsEnv.new("a_env, test, development, foobar").should be_active
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "Snippr::SegmentFilter::ValidFrom" do
|
5
|
+
it "returns true if the filter date is before now" do
|
6
|
+
Snippr::SegmentFilter::ValidFrom.new("1976-03-10 09:00:00").should be_active
|
7
|
+
end
|
8
|
+
|
9
|
+
it "returns false if the filter date is after now" do
|
10
|
+
Snippr::SegmentFilter::ValidFrom.new("9999-03-10 09:00:00").should_not be_active
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns false if the filter date is unparsable" do
|
14
|
+
Snippr::SegmentFilter::ValidFrom.new("99990310090000").should_not be_active
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "Snippr::SegmentFilter::ValidUntil" do
|
5
|
+
it "returns false if the filter date is before now" do
|
6
|
+
Snippr::SegmentFilter::ValidUntil.new("1976-03-10 09:00:00").should_not be_active
|
7
|
+
end
|
8
|
+
|
9
|
+
it "returns true if the filter date is after now" do
|
10
|
+
Snippr::SegmentFilter::ValidUntil.new("9999-03-10 09:00:00").should be_active
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns false if the filter date is unparsable" do
|
14
|
+
Snippr::SegmentFilter::ValidUntil.new("99990310090000").should_not be_active
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "SegmentParser" do
|
5
|
+
|
6
|
+
it "allows scissor symbols to be the delimiter. yay!" do
|
7
|
+
actual = Snippr::SegmentParser.new("a\n=✄== valid_from: 3099-05-01 09:00:00 ====\nb").content.should == "a"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "chooses the correct segment if no condition is given" do
|
11
|
+
actual = Snippr::SegmentParser.new("a\nb").content.should == "a\nb"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "chooses the correct segment if no valid condition is given" do
|
15
|
+
actual = Snippr::SegmentParser.new("a\n==== valid_from: 3099-05-01 09:00:00 ====\nb").content.should == "a"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "chooses the correct segment if a valid condition is given" do
|
19
|
+
actual = Snippr::SegmentParser.new("a\n==== valid_from: 1099-05-01 09:00:00 ====\nb").content.should == "b"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns the first matching segment if multiple segments are given" do
|
23
|
+
actual = Snippr::SegmentParser.new("a\n==== valid_from: 1099-05-01 09:00:00 ====\nb\n==== valid_from: 1100-05-01 09:00:00 ====\nc").content.should == "b"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "can handle more than two segments" do
|
27
|
+
actual = Snippr::SegmentParser.new("a\n==== valid_from: 6099-05-01 09:00:00 ====\nb\n==== valid_from: 1100-05-01 09:00:00 ====\nc").content.should == "c"
|
28
|
+
end
|
29
|
+
end
|
data/spec/snippr/snip_spec.rb
CHANGED
@@ -43,7 +43,7 @@ describe Snippr::Snip do
|
|
43
43
|
snip.opts.should == { :i18n => true }
|
44
44
|
end
|
45
45
|
|
46
|
-
it "returns no double
|
46
|
+
it "returns no double slashes in the path for nil value" do
|
47
47
|
snip = Snippr::Snip.new(:path_to_snips, nil ,:file)
|
48
48
|
snip.name.should == 'pathToSnips/file'
|
49
49
|
snip.path.should == 'path/pathToSnips/file.snip'
|
@@ -119,29 +119,24 @@ describe Snippr::Snip do
|
|
119
119
|
|
120
120
|
end
|
121
121
|
|
122
|
-
|
122
|
+
describe "content" do
|
123
123
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
Snippr::Snip.new(:home, :a => :b).send(method).should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
129
|
-
end
|
130
|
-
|
131
|
-
it "stores the processed data instead of processing it again" do
|
132
|
-
Snippr::Processor.expects(:process).with('<p>Home</p>', {:a => :b}).once.returns('processed')
|
133
|
-
snip = Snippr::Snip.new(:home, :a => :b)
|
134
|
-
snip.send(method).should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
135
|
-
snip.send(method).should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
136
|
-
end
|
137
|
-
|
138
|
-
it "doesn't call Snippr::Processor.process and return missing string" do
|
139
|
-
Snippr::Processor.expects(:process).never
|
140
|
-
Snippr::Snip.new(:doesnotexist, :a => :b).send(method).should == '<!-- missing snippr: doesnotexist -->'
|
141
|
-
end
|
124
|
+
it "calls Snippr::Processor.process with opts and return decorated result" do
|
125
|
+
Snippr::Processor.expects(:process).with('<p>Home</p>', {:a => :b}).returns('processed')
|
126
|
+
Snippr::Snip.new(:home, :a => :b).content.should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
127
|
+
end
|
142
128
|
|
129
|
+
it "stores the processed data instead of processing it again" do
|
130
|
+
Snippr::Processor.expects(:process).with('<p>Home</p>', {:a => :b}).once.returns('processed')
|
131
|
+
snip = Snippr::Snip.new(:home, :a => :b)
|
132
|
+
snip.content.should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
133
|
+
snip.content.should == "<!-- starting snippr: home -->\nprocessed\n<!-- closing snippr: home -->"
|
143
134
|
end
|
144
135
|
|
136
|
+
it "doesn't call Snippr::Processor.process and return missing string" do
|
137
|
+
Snippr::Processor.expects(:process).never
|
138
|
+
Snippr::Snip.new(:doesnotexist, :a => :b).content.should == '<!-- missing snippr: doesnotexist -->'
|
139
|
+
end
|
145
140
|
end
|
146
141
|
|
147
142
|
describe "#missing?" do
|
data/spec/snippr/snippr_spec.rb
CHANGED
@@ -1,38 +1,39 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
1
2
|
require "spec_helper"
|
2
3
|
|
3
4
|
describe Snippr do
|
4
5
|
|
5
|
-
it "
|
6
|
+
it "delegates path to Snippr::Path.path" do
|
6
7
|
Snippr::Path.should respond_to(:path)
|
7
8
|
Snippr::Path.expects(:path).returns('path')
|
8
9
|
subject.path.should == 'path'
|
9
10
|
end
|
10
11
|
|
11
|
-
it "
|
12
|
+
it "delegates path= to Snippr::Path.path=" do
|
12
13
|
Snippr::Path.should respond_to(:path=)
|
13
14
|
Snippr::Path.expects(:path=).with('path')
|
14
15
|
subject.path = 'path'
|
15
16
|
end
|
16
17
|
|
17
|
-
it "
|
18
|
+
it "delegates i18n? to Snippr::I18n.enabled?" do
|
18
19
|
Snippr::I18n.should respond_to(:enabled?)
|
19
20
|
Snippr::I18n.expects(:enabled?).returns(true)
|
20
21
|
subject.i18n?.should == true
|
21
22
|
end
|
22
23
|
|
23
|
-
it "
|
24
|
+
it "delegates i18n= to Snippr::I18n.enabled=" do
|
24
25
|
Snippr::I18n.should respond_to(:enabled=)
|
25
26
|
Snippr::I18n.expects(:enabled=).with(true)
|
26
27
|
subject.i18n = true
|
27
28
|
end
|
28
29
|
|
29
|
-
it "
|
30
|
+
it "delegates adjust_urls_except? to Snippr::Links.adjust_urls_except" do
|
30
31
|
Snippr::Links.should respond_to(:adjust_urls_except)
|
31
32
|
Snippr::Links.expects(:adjust_urls_except).returns([1])
|
32
33
|
subject.adjust_urls_except.should == [1]
|
33
34
|
end
|
34
35
|
|
35
|
-
it "
|
36
|
+
it "delegates adjust_urls_except= to Snippr::Links.adjust_urls_except=" do
|
36
37
|
Snippr::Links.should respond_to(:adjust_urls_except=)
|
37
38
|
Snippr::Links.expects(:adjust_urls_except=).with([2])
|
38
39
|
subject.adjust_urls_except = [2]
|
@@ -71,12 +72,12 @@ describe Snippr do
|
|
71
72
|
|
72
73
|
end
|
73
74
|
|
74
|
-
it "
|
75
|
+
it "delegates load to Snippr::Snip.new" do
|
75
76
|
Snippr::Snip.expects(:new).with(:a, :b).returns('snip')
|
76
77
|
subject.load(:a, :b).should == 'snip'
|
77
78
|
end
|
78
79
|
|
79
|
-
it "
|
80
|
+
it "delegates list to Snippr::Path.list" do
|
80
81
|
Snippr::Path.expects(:list).with(:c, :d).returns([:snip])
|
81
82
|
subject.list(:c, :d).should == [:snip]
|
82
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snippr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- .travis.yml
|
124
124
|
- CHANGELOG
|
125
125
|
- Gemfile
|
126
|
+
- LICENSE
|
126
127
|
- README.md
|
127
128
|
- Rakefile
|
128
129
|
- lib/snippr.rb
|
@@ -140,6 +141,11 @@ files:
|
|
140
141
|
- lib/snippr/processor/links.rb
|
141
142
|
- lib/snippr/processor/wikilinks.rb
|
142
143
|
- lib/snippr/railtie.rb
|
144
|
+
- lib/snippr/segment_filter/base.rb
|
145
|
+
- lib/snippr/segment_filter/on_rails_env.rb
|
146
|
+
- lib/snippr/segment_filter/valid_from.rb
|
147
|
+
- lib/snippr/segment_filter/valid_until.rb
|
148
|
+
- lib/snippr/segment_parser.rb
|
143
149
|
- lib/snippr/snip.rb
|
144
150
|
- lib/snippr/snippr.rb
|
145
151
|
- lib/snippr/view_helper.rb
|
@@ -172,6 +178,11 @@ files:
|
|
172
178
|
- spec/snippr/processor/links_spec.rb
|
173
179
|
- spec/snippr/processor/wikilinks_spec.rb
|
174
180
|
- spec/snippr/processor_spec.rb
|
181
|
+
- spec/snippr/segment_filter/base_spec.rb
|
182
|
+
- spec/snippr/segment_filter/on_rails_env_spec.rb
|
183
|
+
- spec/snippr/segment_filter/valid_from_spec.rb
|
184
|
+
- spec/snippr/segment_filter/valid_until_spec.rb
|
185
|
+
- spec/snippr/segment_parser_spec.rb
|
175
186
|
- spec/snippr/snip_spec.rb
|
176
187
|
- spec/snippr/snippr_spec.rb
|
177
188
|
- spec/snippr/view_helper_spec.rb
|
@@ -229,6 +240,11 @@ test_files:
|
|
229
240
|
- spec/snippr/processor/links_spec.rb
|
230
241
|
- spec/snippr/processor/wikilinks_spec.rb
|
231
242
|
- spec/snippr/processor_spec.rb
|
243
|
+
- spec/snippr/segment_filter/base_spec.rb
|
244
|
+
- spec/snippr/segment_filter/on_rails_env_spec.rb
|
245
|
+
- spec/snippr/segment_filter/valid_from_spec.rb
|
246
|
+
- spec/snippr/segment_filter/valid_until_spec.rb
|
247
|
+
- spec/snippr/segment_parser_spec.rb
|
232
248
|
- spec/snippr/snip_spec.rb
|
233
249
|
- spec/snippr/snippr_spec.rb
|
234
250
|
- spec/snippr/view_helper_spec.rb
|