mona 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -28,6 +28,13 @@ class Mona::Thread
28
28
  @dat_size = args[:dat_size] || 0
29
29
  end
30
30
 
31
+ def self.from_url(url)
32
+ matched = url.match %r{http://(.+)/test/read.cgi/(.+)/(.+)/}
33
+ raise "Invalid Url" unless matched
34
+ board = Mona::Board.new(matched[1], matched[2])
35
+ new(:board => board, :id => matched[3].to_i)
36
+ end
37
+
31
38
  def parse_body(body)
32
39
  first = body.lines.first.strip.split(/<>/)
33
40
  @title = first[4] if first[4]
@@ -0,0 +1,68 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "mona"
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["masarakki"]
12
+ s.date = "2012-03-01"
13
+ s.description = "talk to 2ch library"
14
+ s.email = "masaki@hisme.net"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "lib/mona.rb",
29
+ "lib/mona/board.rb",
30
+ "lib/mona/client.rb",
31
+ "lib/mona/thread.rb",
32
+ "mona.gemspec",
33
+ "spec/board_spec.rb",
34
+ "spec/client_spec.rb",
35
+ "spec/mona_spec.rb",
36
+ "spec/spec_helper.rb",
37
+ "spec/test_data/dat.txt",
38
+ "spec/test_data/subject.txt",
39
+ "spec/thread_spec.rb"
40
+ ]
41
+ s.homepage = "http://github.com/masarakki/mona"
42
+ s.licenses = ["MIT"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = "1.8.15"
45
+ s.summary = "talk 2ch"
46
+
47
+ if s.respond_to? :specification_version then
48
+ s.specification_version = 3
49
+
50
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
+ s.add_runtime_dependency(%q<httpclient>, [">= 0"])
52
+ s.add_development_dependency(%q<rspec>, [">= 0"])
53
+ s.add_development_dependency(%q<bundler>, [">= 0"])
54
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
55
+ else
56
+ s.add_dependency(%q<httpclient>, [">= 0"])
57
+ s.add_dependency(%q<rspec>, [">= 0"])
58
+ s.add_dependency(%q<bundler>, [">= 0"])
59
+ s.add_dependency(%q<jeweler>, [">= 0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<httpclient>, [">= 0"])
63
+ s.add_dependency(%q<rspec>, [">= 0"])
64
+ s.add_dependency(%q<bundler>, [">= 0"])
65
+ s.add_dependency(%q<jeweler>, [">= 0"])
66
+ end
67
+ end
68
+
@@ -32,6 +32,22 @@ describe Mona::Thread do
32
32
  }.should change(subject, :title).from(nil).to('ウツ病のプログラマーを雇うスレ')
33
33
  end
34
34
  end
35
+
36
+ describe :from_url do
37
+ context "with valid url: http://news2.2ch.net/test/read.cgi/newsplus/1000000000/" do
38
+ subject { Mona::Thread.from_url "http://news2.2ch.net/test/read.cgi/newsplus/1000000000/" }
39
+ its("board.host") { should == "news2.2ch.net" }
40
+ its("board.board") { should == "newsplus" }
41
+ its(:id) { should == 1000000000 }
42
+ end
43
+ context "with invalid url" do
44
+ it do
45
+ lambda {
46
+ Mona::Thread.from_url "http://news2.2ch.net/test/hoge/read.cgi/newsplus/1000000000/"
47
+ }.should raise_error("Invalid Url")
48
+ end
49
+ end
50
+ end
35
51
  end
36
52
 
37
53
  describe Mona::Thread, 'real' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mona
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httpclient
16
- requirement: &8085440 !ruby/object:Gem::Requirement
16
+ requirement: &9581560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8085440
24
+ version_requirements: *9581560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &8084360 !ruby/object:Gem::Requirement
27
+ requirement: &9580860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *8084360
35
+ version_requirements: *9580860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &8083380 !ruby/object:Gem::Requirement
38
+ requirement: &9924940 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *8083380
46
+ version_requirements: *9924940
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &8082680 !ruby/object:Gem::Requirement
49
+ requirement: &9923960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *8082680
57
+ version_requirements: *9923960
58
58
  description: talk to 2ch library
59
59
  email: masaki@hisme.net
60
60
  executables: []
@@ -75,6 +75,7 @@ files:
75
75
  - lib/mona/board.rb
76
76
  - lib/mona/client.rb
77
77
  - lib/mona/thread.rb
78
+ - mona.gemspec
78
79
  - spec/board_spec.rb
79
80
  - spec/client_spec.rb
80
81
  - spec/mona_spec.rb
@@ -97,7 +98,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
98
  version: '0'
98
99
  segments:
99
100
  - 0
100
- hash: 1781530423412323806
101
+ hash: -4194687262995548057
101
102
  required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  none: false
103
104
  requirements: