afr_load 0.1.4 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '01831bfe9efc96a92690a8c3ad5e04044ceaabb4'
4
- data.tar.gz: ab0966c54aaa4b81caa3ba01d84d775e34982abf
3
+ metadata.gz: fdfaced4f770914963c69e14d4f53a111f481ad1
4
+ data.tar.gz: efa5df0bdb5daa3bb4a97d624555b7e6479b0e31
5
5
  SHA512:
6
- metadata.gz: 27e9ad568e7fced1be36dc3dede4a8138e33a47da34def067ef7be40394109a9d5495b98f1bb72ed88b8013ea373a5d39b4f8e29e2c5eae9ab0e12960404cae3
7
- data.tar.gz: 95e62f15ed2b298befa9ba0760dca845951da155b157cc01d6a740b470e9f25364cda9ed1ba3e0f4b810506a038f2ca82a1b4e77f89c630740572fe69d3db0de
6
+ metadata.gz: e9b7820f13aaabfdc10c4b703fdc5a31230abe54fa3278d00d9635997bb36998ed9b3bd0efc86ed19db9e130254b623e7ce5d7a298c298a03db7be5ce7510a2b
7
+ data.tar.gz: 2f727ae31dc1ade0ac3e2d6c20f64e26e22f9e6e30a4194f8daaa6fe3d00252d5c7481c608e60a22e873f103c70faede09fcef5c867105aa15a969d6cdb37a71
data/.gitignore CHANGED
@@ -11,4 +11,4 @@
11
11
  *.swp
12
12
  .DS_Store
13
13
  */.DS_Store
14
- ./spec/index.html
14
+ spec/*.html
data/Gemfile CHANGED
@@ -3,4 +3,10 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in afr_load.gemspec
4
4
  gemspec
5
5
 
6
- gem 'oga', '2.3'
6
+ gem 'oga', '2.9'
7
+
8
+ group :development, :test do
9
+ gem "byebug"
10
+ gem "guard-rspec"
11
+ end
12
+
data/Guardfile ADDED
@@ -0,0 +1,70 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ # Note: The cmd option is now required due to the increasing number of ways
19
+ # rspec may be run, below are examples of the most common uses.
20
+ # * bundler: 'bundle exec rspec'
21
+ # * bundler binstubs: 'bin/rspec'
22
+ # * spring: 'bin/rspec' (This will use spring if running and you have
23
+ # installed the spring binstubs per the docs)
24
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
25
+ # * 'just' rspec: 'rspec'
26
+
27
+ guard :rspec, cmd: "bundle exec rspec" do
28
+ require "guard/rspec/dsl"
29
+ dsl = Guard::RSpec::Dsl.new(self)
30
+
31
+ # Feel free to open issues for suggestions and improvements
32
+
33
+ # RSpec files
34
+ rspec = dsl.rspec
35
+ watch(rspec.spec_helper) { rspec.spec_dir }
36
+ watch(rspec.spec_support) { rspec.spec_dir }
37
+ watch(rspec.spec_files)
38
+
39
+ # Ruby files
40
+ ruby = dsl.ruby
41
+ dsl.watch_spec_files_for(ruby.lib_files)
42
+
43
+ # Rails files
44
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
45
+ dsl.watch_spec_files_for(rails.app_files)
46
+ dsl.watch_spec_files_for(rails.views)
47
+
48
+ watch(rails.controllers) do |m|
49
+ [
50
+ rspec.spec.call("routing/#{m[1]}_routing"),
51
+ rspec.spec.call("controllers/#{m[1]}_controller"),
52
+ rspec.spec.call("acceptance/#{m[1]}")
53
+ ]
54
+ end
55
+
56
+ # Rails config changes
57
+ watch(rails.spec_helper) { rspec.spec_dir }
58
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
59
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
60
+
61
+ # Capybara features specs
62
+ watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
63
+ watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
64
+
65
+ # Turnip features and steps
66
+ watch(%r{^spec/acceptance/(.+)\.feature$})
67
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
68
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
69
+ end
70
+ end
data/lib/afr_load.rb CHANGED
@@ -2,45 +2,41 @@
2
2
 
3
3
  require "oga"
4
4
  require "httpclient"
5
+ require "byebug"
5
6
 
6
7
  require "afr_load/version"
7
8
  require "afr_load/parser.rb"
8
9
 
9
10
  module AfrLoad
10
11
  class AfrLoad
11
- attr_reader :url, :programs, :document
12
-
13
12
  AFR_LOAD_URL = "http://www.tv-tokyo.co.jp/telecine/oa_afr_load/"
14
13
 
15
- def initialize(url = AFR_LOAD_URL)
16
- @programs = Array.new()
17
- @url = url
18
- end
14
+ attr_accessor :url
15
+ attr_reader :programs, :document
19
16
 
20
- def get_schedule()
21
- @document = self.class.fetch_schedule(@url)
22
- get_program()
17
+ def initialize()
18
+ @url = AFR_LOAD_URL
19
+ @programs = Array.new()
20
+ yield(self) if block_given?
23
21
  end
24
22
 
25
- def self.get_schedule(url = AFR_LOAD_URL)
26
- afr = self.new(url)
23
+ def self.get_schedule()
24
+ afr = self.new()
27
25
  afr.get_schedule()
26
+ afr.get_program()
28
27
  end
29
28
 
30
- def get_schedule_from_file(file_handler)
31
- @document = Oga.parse_html(file_handler)
29
+ def get_schedule()
30
+ if @url.start_with?("http")
31
+ body = HTTPClient.get(@url).body.force_encoding("utf-8")
32
+ else
33
+ body = File.open(@url).read
34
+ end
35
+ @document = Oga.parse_html(body)
32
36
  end
33
37
 
34
38
  def get_program
35
39
  @programs = Parser.parse(@document).flatten
36
40
  end
37
-
38
- def self.fetch_schedule(url = AFR_LOAD_URL)
39
- Oga.parse_html(Enumerator.new do |yielder|
40
- HTTPClient.get(url) do |chunk|
41
- yielder << chunk.force_encoding("utf-8")
42
- end
43
- end)
44
- end
45
41
  end
46
42
  end
@@ -32,16 +32,16 @@ module AfrLoad
32
32
  data_block = movie_node.at_xpath("div[contains(@class, 'g_data_block')]")
33
33
  year_country = data_block.at_xpath("div/span[@class='g_country_year']").text.split("◆")
34
34
  performer = data_block.xpath("div/div/div[2]/span[2]").text
35
- tv_program = TvProgram.new(
36
- on_air_date: movie_node.at_xpath("span[contains(@class, 'g_day')]").text,
37
- title_ja: data_block.at_xpath("h3/span[@class='jp']").text,
38
- title: data_block.at_xpath("h3/span[contains(@class, 'en')]").text ,
39
- released_year: year_country[0],
40
- released_country: year_country[1],
41
- movie_director: data_block.xpath("div/div/div[1]/span[2]").text,
42
- leading_actor: performer.split("/")[0],
43
- supporting_actor: performer.split("/")[1]
44
- )
35
+ tv_program = TvProgram.new do |info|
36
+ info.on_air_date = movie_node.at_xpath("span[contains(@class, 'g_day')]").text
37
+ info.title_ja = data_block.at_xpath("h3/span[@class='jp']").text
38
+ info.title = data_block.at_xpath("h3/span[contains(@class, 'en')]").text
39
+ info.released_year = year_country[0]
40
+ info.released_country = year_country[1]
41
+ info.movie_director = data_block.xpath("div/div/div[1]/span[2]").text
42
+ info.leading_actor = performer.split("/")[0]
43
+ info.supporting_actor = performer.split("/")[1]
44
+ end
45
45
  end
46
46
  end
47
47
  end
@@ -2,24 +2,14 @@
2
2
 
3
3
  module AfrLoad
4
4
  class TvProgram
5
- attr_reader :on_air_date,
5
+ attr_accessor :on_air_date,
6
6
  :title_ja, :title,
7
7
  :released_year, :released_country,
8
8
  :movie_director,
9
9
  :leading_actor, :supporting_actor
10
10
 
11
- def initialize(on_air_date:, title_ja:, title:,
12
- released_year:, released_country:,
13
- movie_director:,
14
- leading_actor:, supporting_actor:)
15
- @on_air_date = on_air_date
16
- @title_ja = title_ja
17
- @title = title
18
- @released_year = released_year
19
- @released_country = released_country
20
- @movie_director = movie_director
21
- @leading_actor = leading_actor
22
- @supporting_actor = supporting_actor
11
+ def initialize()
12
+ yield(self) if block_given?
23
13
  end
24
14
 
25
15
  def show()
@@ -1,3 +1,3 @@
1
1
  module AfrLoad
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: afr_load
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - iaia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-18 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,6 +92,7 @@ files:
92
92
  - ".travis.yml"
93
93
  - CODE_OF_CONDUCT.md
94
94
  - Gemfile
95
+ - Guardfile
95
96
  - README.md
96
97
  - Rakefile
97
98
  - afr_load.gemspec
@@ -121,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  version: '0'
122
123
  requirements: []
123
124
  rubyforge_project:
124
- rubygems_version: 2.5.2
125
+ rubygems_version: 2.6.8
125
126
  signing_key:
126
127
  specification_version: 4
127
128
  summary: Web Scraping for 午後のロードショー