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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTAxMWYzNWFmOWYyMTc1OTM5MjAwYzM1Nzg1ZjQwNTIzZDNjNzU2Yg==
4
+ ZTNiMGU0NWMwNzRlNWFkODQ0NTNhNWVkZjQ0M2FmNTRiZDg2MzFkNA==
5
5
  data.tar.gz: !binary |-
6
- MzVkNWE2NjM5NzMyYjI2MWVhZjFmYjUzZDg1YjQ4Y2VkN2Q2NzJiYw==
6
+ ZGNjZWJjMDI5YzU5MmJhNzBhNTBmZDQ3OWQ3ZWFiNzU0ZmUyZjMyYw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NGI2MGNmYjY2MGQzZmZkOGRhYTFiNDg0NjFmODRhZDMyMjQ4YzI3OWY4NWMx
10
- NDI4YjE0YTFjMTkzZDZlNmFiYjk3NTIwNGI4Y2ZmMWUyMDA2YTc3NTU2ODYz
11
- ODI0Mzg3YjU1NTZlN2JkOGIzNDc3NGMzZjg5MTBiYTc4OGRmZDc=
9
+ MGY2NmE3OTAyYzYyYTUzZWQ5OWNhOTVlZDgxZDAyOWVjODZlMmM0NDBjODE1
10
+ ZWQ5NDc1MWJlY2YxODkwZDhjMTBlM2MwNmRmMTNjMGVjNTVhZGIzOThjODlj
11
+ MWQxYzg5ODY5NDk3M2UwZjk2YmQ0MDA0OGQxMzJjMjdmZWZiYTU=
12
12
  data.tar.gz: !binary |-
13
- MDE4OTgyYzQ5MDAyOWUyMWU3MTU5YTE3MjliMzRmZWU0N2Y5ZTgyNGVlMjRl
14
- Yjc3YmQzMmRiYjM5OGU4YWZiY2Q1Nzg1YTE0NzBiNDgxNDZmOWM3ZDI4ZmMz
15
- NWNkMjlkM2Y5ZDViMmIyMTdhOWUxNjJhMjVjNzQ5NWVlYjlmODM=
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 metdata that are accessable via the `.meta` method on a loaded snippet.
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,12 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Snippr
3
+ module SegmentFilter
4
+ class ValidFrom < Base
5
+ def active?
6
+ DateTime.now.to_s >= DateTime.strptime(@filter_value, "%Y-%m-%d %H:%M").to_s
7
+ rescue ArgumentError
8
+ false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Snippr
3
+ module SegmentFilter
4
+ class ValidUntil < Base
5
+ def active?
6
+ DateTime.now.to_s <= DateTime.strptime(@filter_value, "%Y-%m-%d %H:%M").to_s
7
+ rescue ArgumentError
8
+ false
9
+ end
10
+ end
11
+ end
12
+ 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 = Processor.process unprocessed_content, opts
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
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  # = Snippr::ViewHelper
2
3
  #
3
4
  # This module is automatically included into +ActionView::Base+ when using the Snippr
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
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "snippr"
4
- s.version = "0.14.1"
4
+ s.version = "0.15.3"
5
5
  s.date = Time.now
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ["Daniel Harrington", "Thomas Jachmann"]
@@ -0,0 +1,8 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require "spec_helper"
3
+
4
+ describe "Snippr::SegmentFilter::Base" do
5
+ it "remembers its subclasses" do
6
+ Snippr::SegmentFilter::Base.should have(3).filters
7
+ end
8
+ end
@@ -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
@@ -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 slahes in the path for nil value" do
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
- [:content, :to_s].each do |method|
122
+ describe "content" do
123
123
 
124
- describe "##{method}" do
125
-
126
- it "calls Snippr::Processor.process with opts and return decorated result" do
127
- Snippr::Processor.expects(:process).with('<p>Home</p>', {:a => :b}).returns('processed')
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
@@ -1,38 +1,39 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require "spec_helper"
2
3
 
3
4
  describe Snippr do
4
5
 
5
- it "should delegate path to Snippr::Path.path" do
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 "should delegate path= to Snippr::Path.path=" do
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 "should delegate i18n? to Snippr::I18n.enabled?" do
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 "should delegate i18n= to Snippr::I18n.enabled=" do
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 "should delegate adjust_urls_except? to Snippr::Links.adjust_urls_except" do
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 "should delegate adjust_urls_except= to Snippr::Links.adjust_urls_except=" do
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 "should delegate load to Snippr::Snip.new" do
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 "should delegate list to Snippr::Path.list" do
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.14.1
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-04-29 00:00:00.000000000 Z
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