Sbirsp 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a1e1f155a429b767957bf8c1f9c7790d5f240d93
4
+ data.tar.gz: bd2c3a2b9757a4861274322e4bacd8b6357d82de
5
+ SHA512:
6
+ metadata.gz: 001770491844a66327be32120c65c6ad24aecc2bdd4e6758462ffd28f756c43fda989df01f2a660f8625fa1da587fce5a46943bc07112fb8ff90dda8eaea3746
7
+ data.tar.gz: b7e29d9f0155287533de57f30780068c787a4396f0780ff449234d3fdfac0fa81fa5aa1bf6d0cddf999757a40093d372acde1a607edcb6bf7b2a5c32f311abbd
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in sbirsp.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 TODO: Write your name
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Sbirsp
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'sbirsp'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install sbirsp
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/sbirsp/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/lib/sbirsp.rb ADDED
@@ -0,0 +1,127 @@
1
+ require "sbirsp/version"
2
+ require "masque"
3
+
4
+ module Sbirsp
5
+ class Configuration
6
+ attr_accessor :username, :password, :default_host
7
+
8
+ def initialize
9
+ self.username = nil
10
+ self.password = nil
11
+ self.default_host = "https://www.sbisec.co.jp/ETGate"
12
+ end
13
+ end
14
+
15
+ class << self
16
+ def configure
17
+ yield self
18
+ end
19
+ end
20
+
21
+ class Client
22
+ attr_accessor :login_status, :loop_status, :client, :now_price, :now_code
23
+
24
+ def initialize
25
+ @client = Masque.new(:display => 99, :driver => :poltergeist)
26
+ @now_price = 0
27
+ login
28
+ end
29
+
30
+ def login
31
+ @client.run do
32
+ visit Sbirsp.configuration.default_host
33
+ fill_in("user_id", :with => Sbirsp.configuration.username)
34
+ fill_in("user_password", :with => Sbirsp.configuration.password)
35
+ find('*[name="ACT_login"]').click
36
+ end
37
+ sleep 5
38
+ puts "logined"
39
+ @login_status = true
40
+ @current_host ||= "#{@client.agent.page.current_host}"
41
+ end
42
+
43
+ def code=(stock_code)
44
+ @now_code = stock_code
45
+ end
46
+
47
+ def visit_stock_page
48
+ check_login
49
+ check_stock_code
50
+ url = "#{@current_host}/ETGate/?_ControlID=WPLETsiR001Control&_DataStoreID=DSWPLETsiR001Control&_PageID=WPLETsiR001Idtl10&_ActionID=getInfoOfCurrentMarket&s_rkbn=&i_dom_flg=1&stock_sec_code_mul=#{@now_code}&exchange_code=&ref_from=1&ref_to=20"
51
+ @client.run do
52
+ visit(url)
53
+ sleep 5
54
+ end
55
+ end
56
+
57
+ def realtime_on
58
+ check_login
59
+ check_stock_code
60
+ @client.run do
61
+ puts "visited: #{@now_code}"
62
+ find("#imgRefArea_MTB0_on").click
63
+ end
64
+ end
65
+
66
+ def show_stock_price
67
+ check_login
68
+ @loop_status = false
69
+ visit_stock_page
70
+ realtime_on
71
+ get_stock_price unless @loop_status
72
+ end
73
+
74
+ def get_stock_price
75
+ Thread.fork(@now_code) do |stock_code|
76
+ @loop_status = true
77
+ while @loop_status do
78
+ now_price = @now_price
79
+ @client.run do
80
+ now_price = find("#flash").text.delete(",").to_i
81
+ end
82
+ @now_price = now_price
83
+ if stock_code != @now_code
84
+ @loop_status = false
85
+ Thread.stop
86
+ end
87
+ end
88
+ end
89
+ end
90
+
91
+ def stop_get_stock_price
92
+ @loop_status = false
93
+ end
94
+
95
+ def price
96
+ @now_price
97
+ end
98
+
99
+ private
100
+ def check_login
101
+ unless @login_status
102
+ puts "not logined"
103
+ return false
104
+ end
105
+ end
106
+
107
+ def check_stock_code
108
+ unless @now_code
109
+ puts "please set stock_code"
110
+ return false
111
+ end
112
+ end
113
+ end
114
+
115
+ def self.configuration
116
+ @configuration ||= Configuration.new
117
+ end
118
+
119
+ def self.configure
120
+ yield(configuration) if block_given?
121
+ end
122
+ end
123
+
124
+
125
+ Sbirsp.configure do |config|
126
+ config.default_host = "https://www.sbisec.co.jp/ETGate"
127
+ end
@@ -0,0 +1,3 @@
1
+ module Sbirsp
2
+ VERSION = "0.0.1"
3
+ end
data/sbirsp.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'sbirsp/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "Sbirsp"
8
+ spec.version = Sbirsp::VERSION
9
+ spec.authors = ["face-do"]
10
+ spec.email = ["face-do@users.noreply.github.com"]
11
+ spec.summary = %q{Get RealTime Stock Price from SBIsec. }
12
+ spec.description = %q{}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "masque"
24
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Sbirsp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - face-do
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: masque
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ''
56
+ email:
57
+ - face-do@users.noreply.github.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - Gemfile
64
+ - LICENSE.txt
65
+ - README.md
66
+ - Rakefile
67
+ - lib/sbirsp.rb
68
+ - lib/sbirsp/version.rb
69
+ - sbirsp.gemspec
70
+ homepage: ''
71
+ licenses:
72
+ - MIT
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.2.0
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Get RealTime Stock Price from SBIsec.
94
+ test_files: []