yasuri 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66449daf368bdf42e7406cdf1b7db1eedc9625c9
4
- data.tar.gz: d0bbef804af0da5228594df407f5e47edf5cf14e
3
+ metadata.gz: 765b5141cd81658858ac62ea8306c399f4edda16
4
+ data.tar.gz: ecde98805bf7d3536e83496e6ac85ec5767f0321
5
5
  SHA512:
6
- metadata.gz: f2fce89a90d0d878d12d48b1e803d58581e1b3442efc76cfe2e3b938c048ada3fd558099634a3d25a2f48851771ee1b047e3c8303eed51ebf6dd9e5bf1eae122
7
- data.tar.gz: 58f748c39156abade472ee3c8c0b9332c5321fc6562dad5a35cb3a01e80c9e7cafb9abb327ae5626b50aaf4afd4d4f2e67e2da5b341ca575bf60514b924ad19e
6
+ metadata.gz: 6b0f3466e7017608ec24b75c15ccc8c2f64fff3b173aa2e818f02c1b115c1796d0e8f901879d5dae7c4de312bec3c309a6f530b3f3f7b65e19b5ee58ccf4db4d
7
+ data.tar.gz: d6551a758c588a3a0c08865551ebef957863643125607cdb1b6f143f56de62691a76444fc3c85dc455793c61903794b61c0eaeb6515dda6536e130760942d2d0
data/README.md CHANGED
@@ -22,7 +22,7 @@ Or install it yourself as:
22
22
 
23
23
  ```ruby
24
24
  # Node tree constructing by DSL
25
- root = links_root '//*[@id="menu"]/ul/li/a' do
25
+ root = Yasuri.links_root '//*[@id="menu"]/ul/li/a' do
26
26
  text_title '//*[@id="contents"]/h2'
27
27
  text_content '//*[@id="contents"]/p[1]'
28
28
  end
@@ -56,7 +56,7 @@ result = root.inject(agent, root_page)
56
56
 
57
57
  ## Contributing
58
58
 
59
- 1. Fork it ( https://github.com/[my-github-username]/yasuri/fork )
59
+ 1. Fork it ( https://github.com/tac0x2a/yasuri/fork )
60
60
  2. Create your feature branch (`git checkout -b my-new-feature`)
61
61
  3. Commit your changes (`git commit -am 'Add some feature'`)
62
62
  4. Push to the branch (`git push origin my-new-feature`)
data/app.rb CHANGED
@@ -14,7 +14,7 @@ agent = Mechanize.new
14
14
  uri = "http://www.asahi.com/"
15
15
 
16
16
  # Node tree constructing by DSL
17
- root = links_top '//*[@id="MainInner"]/div[1]/ul/li/a' do
17
+ root = Yasuri.links_top '//*[@id="MainInner"]/div[1]/ul/li/a' do
18
18
  text_title '//*[@id="MainInner"]/div[1]/div/h1'
19
19
  text_article '//*[@id="MainInner"]/div/div[@class="ArticleText"]'
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module Yasuri
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/yasuri/yasuri.rb CHANGED
@@ -125,6 +125,12 @@ module Yasuri
125
125
  Yasuri.hash2node(json)
126
126
  end
127
127
 
128
+ def self.method_missing(name, *args, &block)
129
+ generated = Yasuri::NodeGenerator.gen(name, *args, &block)
130
+ generated || super(name, args)
131
+ end
132
+
133
+
128
134
  private
129
135
  Text2Node = {
130
136
  "text" => TextNode,
@@ -157,9 +163,3 @@ module Yasuri
157
163
  end
158
164
  end
159
165
  end
160
-
161
- # alias for DSL
162
- def method_missing(name, *args, &block)
163
- generated = Yasuri::NodeGenerator.gen(name, *args, &block)
164
- generated || super(name, args)
165
- end
data/spec/yasuri_spec.rb CHANGED
@@ -48,25 +48,25 @@ describe 'Yasuri' do
48
48
  end
49
49
 
50
50
  it "can be defined by DSL, return single TextNode title" do
51
- generated = text_title '/html/body/p[1]'
51
+ generated = Yasuri.text_title '/html/body/p[1]'
52
52
  original = Yasuri::TextNode.new('/html/body/p[1]', "title")
53
53
  compare_generated_vs_original(generated, original)
54
54
  end
55
55
 
56
56
  it "can be truncated with regexp" do
57
- node = text_title '/html/body/p[1]', /^[^,]+/
57
+ node = Yasuri.text_title '/html/body/p[1]', /^[^,]+/
58
58
  actual = node.inject(@agent, @index_page)
59
59
  expect(actual).to eq "Hello"
60
60
  end
61
61
 
62
62
  it "can be truncated with regexp" do
63
- node = text_title '/html/body/p[1]', /[^,]+$/
63
+ node = Yasuri.text_title '/html/body/p[1]', /[^,]+$/
64
64
  actual = node.inject(@agent, @index_page)
65
65
  expect(actual).to eq "Yasuri"
66
66
  end
67
67
 
68
68
  it "return empty string if truncated with no match to regexp" do
69
- node = text_title '/html/body/p[1]', /^hoge/
69
+ node = Yasuri.text_title '/html/body/p[1]', /^hoge/
70
70
  actual = node.inject(@agent, @index_page)
71
71
  expect(actual).to be_empty
72
72
  end
@@ -159,7 +159,7 @@ describe 'Yasuri' do
159
159
  end
160
160
 
161
161
  it 'can be defined by DSL, scrape all tables' do
162
- generated = struct_tables '/html/body/table' do
162
+ generated = Yasuri.struct_tables '/html/body/table' do
163
163
  struct_table './tr' do
164
164
  text_title './td[1]'
165
165
  text_pub_date './td[2]'
@@ -223,12 +223,12 @@ describe 'Yasuri' do
223
223
  expect(actual).to match expected
224
224
  end
225
225
  it 'can be defined by DSL, return single LinkNode title' do
226
- generated = links_title '/html/body/a'
226
+ generated = Yasuri.links_title '/html/body/a'
227
227
  original = Yasuri::LinksNode.new('/html/body/a', "title")
228
228
  compare_generated_vs_original(generated, original)
229
229
  end
230
230
  it 'can be defined by DSL, return nested contents under link' do
231
- generated = links_title '/html/body/a' do
231
+ generated = Yasuri.links_title '/html/body/a' do
232
232
  text_name '/html/body/p'
233
233
  end
234
234
  original = Yasuri::LinksNode.new('/html/body/a', "root", [
@@ -238,7 +238,7 @@ describe 'Yasuri' do
238
238
  end
239
239
 
240
240
  it 'can be defined by DSL, return recursive links node' do
241
- generated = links_root '/html/body/a' do
241
+ generated = Yasuri.links_root '/html/body/a' do
242
242
  text_content '/html/body/p'
243
243
  links_sub_link '/html/body/ul/li/a' do
244
244
  text_sub_page_title '/html/head/title'
@@ -298,7 +298,7 @@ describe 'Yasuri' do
298
298
  end
299
299
 
300
300
  it 'can be defined by DSL, return single PaginateNode content' do
301
- generated = pages_next "/html/body/nav/span/a[@class='next']" do
301
+ generated = Yasuri.pages_next "/html/body/nav/span/a[@class='next']" do
302
302
  text_content '/html/body/p'
303
303
  end
304
304
  original = Yasuri::PaginateNode.new("/html/body/nav/span/a[@class='next']", "root", [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yasuri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - TAC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-22 00:00:00.000000000 Z
11
+ date: 2015-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler