breakout_parser 0.0.11-x86-mswin32 → 0.0.12-x86-mswin32

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog ADDED
@@ -0,0 +1,12 @@
1
+ [ 0.0.12 ]
2
+
3
+ * new internal calling convention
4
+ * parse() and parse_links_only() methods now accept site url as third (optional)
5
+ argument: parse( "some markup", "space_name", "http://breakout.localhost:3000" )
6
+ * Handle [[r:num:rev]] in addition to [[r:num]]; also handle [[revision:num:rev]]
7
+ see http://www.assembla.com/spaces/breakout/tickets/5637
8
+ * parse() and parse_links_only() methods now accept git url as fourth (optional)
9
+ argument, f.ex. if "http://github.com/" provided as git url, it will be
10
+ concatenated with git commit id and converted to a html anchor
11
+
12
+ # vim:ts=2:sw=2:expandtab:syntax=ruby:textwidth=0
data/spec/parser_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'breakout_parser'
2
+ require File.dirname(__FILE__) + '/obj_proxy'
2
3
 
3
4
  describe 'BreakoutParser' do
4
5
  def self.hex_string s
@@ -10,6 +11,19 @@ describe 'BreakoutParser' do
10
11
  end
11
12
  def hex_string s; self.class.hex_string(s); end
12
13
 
14
+ it 'accepts from 2 to 4 arguments' do
15
+ [0,1,5,6,7,8,9,10].each do |argc|
16
+ lambda{
17
+ BreakoutParser.parse(*(['a']*argc))
18
+ }.should raise_error(ArgumentError, "wrong number of arguments (#{argc} for 2..4)")
19
+ end
20
+ (2..4).each do |argc|
21
+ lambda{
22
+ BreakoutParser.parse(*(['a']*argc))
23
+ }.should_not raise_error
24
+ end
25
+ end
26
+
13
27
  it 'converts \n to <br />' do
14
28
  parse("aaa\nbbb").should match(%r"aaa ?<br /> ?bbb")
15
29
  end
@@ -31,22 +45,22 @@ describe 'BreakoutParser' do
31
45
 
32
46
  it "handles nil & false text well" do
33
47
  parse(false).should == ""
34
- parse(false,false).should == ""
35
- parse("",false).should == ""
48
+ parse(false, :space_name => false).should == ""
49
+ parse("", :space_name => false).should == ""
36
50
  parse(nil).should == ""
37
- parse(nil,nil).should == ""
38
- parse("",nil).should == ""
51
+ parse(nil, :space_name => nil).should == ""
52
+ parse("", :space_name => nil).should == ""
39
53
  end
40
54
 
41
55
  it "handles nil space_name well" do
42
56
  lambda{
43
- parse("#123",nil)
57
+ parse("#123", :space_name => nil)
44
58
  }.should raise_error(TypeError)
45
59
  end
46
60
 
47
61
  it "handles false space_name well" do
48
62
  lambda{
49
- parse("#123",false)
63
+ parse("#123", :space_name => false)
50
64
  }.should raise_error(TypeError)
51
65
  end
52
66
 
@@ -740,8 +754,14 @@ describe 'BreakoutParser' do
740
754
  '<a href="/code/test_space/git/changesets/1f4bdab77be696efd">revision:1f4bdab77be696efd</a>'
741
755
  a["revision:12345"] =
742
756
  '<a href="/code/test_space/subversion/changesets/12345">revision:12345</a>'
757
+ a["revision:567:1f4bdab77be696efd"] =
758
+ '<a href="/code/test_space/git-567/changesets/1f4bdab77be696efd">revision:1f4bdab77be696efd</a>'
759
+ a["revision:3:12345"] =
760
+ '<a href="/code/test_space/subversion-3/changesets/12345">revision:12345</a>'
743
761
  a["r:2345"] = '<a href="/code/test_space/subversion/changesets/2345">revision:2345</a>'
744
762
  a["r:2345ef"] = '<a href="/code/test_space/git/changesets/2345ef">revision:2345ef</a>'
763
+ a["r:10:2345"] = '<a href="/code/test_space/subversion-10/changesets/2345">revision:2345</a>'
764
+ a["r:1:2345ef"] = '<a href="/code/test_space/git-1/changesets/2345ef">revision:2345ef</a>'
745
765
 
746
766
  a["url:http://www.ru"] = '<a rel="nofollow" href="http://www.ru">http://www.ru</a>'
747
767
  a["url:https://www.ru"] = '<a rel="nofollow" href="https://www.ru">https://www.ru</a>'
@@ -765,6 +785,69 @@ describe 'BreakoutParser' do
765
785
  it "parses [[#{k}|test & here]]" do
766
786
  parse("[[#{k}|test & here]]").should == v.sub(/>.*</,">test &amp; here<")
767
787
  end
788
+ if v['href="/'] && !k['url:']
789
+ it "parses [[#{k}]] with a site url" do
790
+ site_url = "http://www.ru"
791
+ parse("[[#{k}]]", :site_url => site_url).should ==
792
+ v.gsub('href="/',"href=\"#{site_url}/")
793
+
794
+ # with extraordinary slash
795
+ parse("[[#{k}]]", :site_url => "#{site_url}/").should ==
796
+ v.gsub('href="/',"href=\"#{site_url}/")
797
+
798
+ site_url = "http://127.0.0.1:3000"
799
+ parse("[[#{k}]]", :site_url => site_url).should ==
800
+ v.gsub('href="/',"href=\"#{site_url}/")
801
+
802
+ # with extraordinary slash
803
+ parse("[[#{k}]]", :site_url => "#{site_url}/").should ==
804
+ v.gsub('href="/',"href=\"#{site_url}/")
805
+ end
806
+ end
807
+ if v['/git/']
808
+ it "parses [[#{k}]] with custom git_url (String)" do
809
+ git_url = "http://www.ru/"
810
+ rev = k.split(':').last.tr(']','')
811
+ parse("[[#{k}]]", :git_url => git_url).should ==
812
+ v.sub('/code/test_space/git/changesets/',git_url)
813
+ end
814
+
815
+ it "parses [[#{k}]] with custom git_url (ObjProxy)" do
816
+ rev = k.split(':').last.tr(']','')
817
+ @asdfg = 'http://mmm.us'
818
+ git_url = Breakout::ObjProxy.new do
819
+ @asdfg + '/'
820
+ end
821
+ parse("[[#{k}]]", :git_url => git_url).should ==
822
+ v.sub('/code/test_space/git/changesets/',git_url)
823
+ end
824
+
825
+ it "parses [[#{k}]] with NULL git_url (ObjProxy)" do
826
+ rev = k.split(':').last.tr(']','')
827
+ git_url = Breakout::ObjProxy.new do
828
+ nil
829
+ end
830
+ parse("[[#{k}]]", :git_url => git_url).should == v
831
+ end
832
+
833
+ it "parses [[#{k}]] with FALSE git_url (ObjProxy)" do
834
+ rev = k.split(':').last.tr(']','')
835
+ git_url = Breakout::ObjProxy.new do
836
+ false
837
+ end
838
+ parse("[[#{k}]]", :git_url => git_url).should == v
839
+ end
840
+ end
841
+ end
842
+
843
+ it "should not instantiate ObjProxy's internal object if there's no git links in text" do
844
+ git_url = Breakout::ObjProxy.new do
845
+ raise 'should not be raised'
846
+ end
847
+ lambda {
848
+ parse("[[r:2345]]", :git_url => git_url).should ==
849
+ '<a href="/code/test_space/subversion/changesets/2345">revision:2345</a>'
850
+ }.should_not raise_error
768
851
  end
769
852
 
770
853
  a = {}
@@ -823,7 +906,8 @@ describe 'BreakoutParser' do
823
906
  s.to_s.gsub(/[&"><]/) { |special| HTML_ESCAPE[special] }
824
907
  end
825
908
 
826
- def parse s, space_name = "test_space"
827
- BreakoutParser.parse(s, space_name).strip
909
+ def parse s, h = {}
910
+ h[:space_name] = "test_space" unless h.key?(:space_name)
911
+ BreakoutParser.parse(s, h[:space_name], h[:site_url], h[:git_url]).strip
828
912
  end
829
913
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breakout_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: x86-mswin32
6
6
  authors:
7
7
  - Andrey "Zed" Zaikin
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-30 00:00:00 +06:00
12
+ date: 2010-04-01 00:00:00 +06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -29,8 +29,10 @@ executables: []
29
29
  extensions: []
30
30
 
31
31
  extra_rdoc_files:
32
+ - ChangeLog
32
33
  - LICENSE
33
34
  files:
35
+ - ChangeLog
34
36
  - LICENSE
35
37
  - lib/breakout_parser.rb
36
38
  - lib/breakout_parser/win32-ruby1.8/breakout_parser.so