sosowa 0.4 → 0.5

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.
data/CHANGELOG.md CHANGED
@@ -1,14 +1,19 @@
1
+ ## 0.5
2
+ * Sosowa::LogをArrayを継承したクラスに変更。Log.size等使えるようになりました
3
+ * Sosowa::Log#latest_logを追加
4
+ * 0.5のサンプルはsamples/feature-0.5.rbで確認することが出来ます。
5
+
1
6
  ## 0.4
2
7
  * 細かいバグを修正
3
8
 
4
9
  ## 0.3
5
- * Sosowa#Logを追加。作品集単位で抽象化出来るようになりました。殆どの場合、このクラスはArrayとして振る舞います。
6
- * Sosowa#Log.logで絶対作品集番号を得ることが出来ます。このメソッドは最新作品集であっても0では無く実際の番号が割り振られます。
7
- * Sosowa#Log.next_page, Sosowa#Log.prev_pageが追加されました。前後のページを取得してSosowa#Logを返します。
8
- * 0.3のサンプルはtest/feature-0.3.rbで確認することが出来ます。
10
+ * Sosowa::Logを追加。作品集単位で抽象化出来るようになりました。殆どの場合、このクラスはArrayとして振る舞います。
11
+ * Sosowa::Log#logで絶対作品集番号を得ることが出来ます。このメソッドは最新作品集であっても0では無く実際の番号が割り振られます。
12
+ * Sosowa::Log#next_page, Sosowa::Log#prev_pageが追加されました。前後のページを取得してSosowa#Logを返します。
13
+ * 0.3のサンプルはsamples/feature-0.3.rbで確認することが出来ます。
9
14
 
10
15
  ## 0.2
11
- * Sosowa::Novel.titleを追加。むしろどうして今まで無かった
16
+ * Sosowa::Novel#titleを追加。むしろどうして今まで無かった
12
17
  * Sosowa::Author, Sosowa::Commentが取得出来ないバグを修正
13
18
 
14
19
  ## 0.1
data/lib/sosowa/parser.rb CHANGED
@@ -18,7 +18,7 @@ module Sosowa
18
18
  page = @agent.get(URI.join(Sosowa::BASE_URL, params))
19
19
  indexes = parse_index(page)
20
20
  abs_log_num = parse_absolute_log_number(page)
21
- Log.new(indexes, abs_log_num)
21
+ Log.new(indexes, page, abs_log_num)
22
22
  end
23
23
 
24
24
  def parse_absolute_log_number(page)
@@ -32,6 +32,11 @@ module Sosowa
32
32
  end
33
33
  end
34
34
 
35
+ def parse_latest_log_number(page)
36
+ li = page.search(%{ul[@id="pages"] li > *})
37
+ return li.size
38
+ end
39
+
35
40
  def parse_index(page)
36
41
  indexes = []
37
42
  tr = page.search("tr")
data/lib/sosowa/scheme.rb CHANGED
@@ -113,11 +113,14 @@ module Sosowa
113
113
  alias_method :get, :fetch
114
114
  end
115
115
 
116
- class Log < Scheme
116
+ class Log < Array
117
+ attr_reader :element
117
118
  attr_reader :log
118
119
 
119
- def initialize(element, log=0)
120
+ def initialize(element, page, log=0)
120
121
  super(element)
122
+ @element = element
123
+ @page = page
121
124
  @log = log
122
125
  end
123
126
 
@@ -132,5 +135,10 @@ module Sosowa
132
135
  parser.fetch_index(@log+1)
133
136
  end
134
137
  alias_method :prev, :prev_page
138
+
139
+ def latest_log
140
+ parser = Parser.new
141
+ parser.parse_latest_log_number(@page)
142
+ end
135
143
  end
136
144
  end
@@ -1,3 +1,3 @@
1
1
  module Sosowa
2
- VERSION = "0.4"
2
+ VERSION = "0.5"
3
3
  end
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "sosowa"
5
+
6
+ # 最初の作品集を取得
7
+ log = Sosowa.get :log => 1
8
+
9
+ # 最新版の作品集番号を取得
10
+ latest_log = log.latest_log
11
+
12
+ # 作品集に入っているSSの数を返す
13
+ puts log.size
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sosowa
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-07-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mechanize
16
- requirement: &70270040436420 !ruby/object:Gem::Requirement
16
+ requirement: &70250654256620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70270040436420
24
+ version_requirements: *70250654256620
25
25
  description: Sosowa Parser for Ruby
26
26
  email:
27
27
  - oame@oameya.com
@@ -41,6 +41,7 @@ files:
41
41
  - lib/sosowa/version.rb
42
42
  - samples/chara_recognize.rb
43
43
  - samples/feature-0.3.rb
44
+ - samples/feature-0.5.rb
44
45
  - samples/tf-idf.rb
45
46
  - samples/token_segment.rb
46
47
  - sosowa.gemspec