dailyrep 1.0.0
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 +7 -0
- data/.gitignore +21 -0
- data/README.md +17 -0
- data/Rakefile +8 -0
- data/bin/dailyrep +42 -0
- data/config/.gitkeep +0 -0
- data/config/config_template.json +57 -0
- data/config/index_template.html +189 -0
- data/dailyrep.gemspec +27 -0
- data/lib/dailyrep/AppContainer.rb +25 -0
- data/lib/dailyrep/Changable.rb +20 -0
- data/lib/dailyrep/Dbops.rb +28 -0
- data/lib/dailyrep/IBrowser.rb +77 -0
- data/lib/dailyrep/IndexWriter.rb +55 -0
- data/lib/dailyrep/Loadconfig.rb +135 -0
- data/lib/dailyrep/Notificator.rb +23 -0
- data/lib/dailyrep/Trackable.rb +14 -0
- data/lib/dailyrep/entities/Doujob.rb +83 -0
- data/lib/dailyrep/entities/Kinozal.rb +87 -0
- data/lib/dailyrep/entities/Micex.rb +66 -0
- data/lib/dailyrep/entities/Minfin.rb +69 -0
- data/lib/dailyrep/entities/Yanoil.rb +67 -0
- data/lib/dailyrep/version.rb +3 -0
- data/test/dailyrep/Doujob_test.rb +22 -0
- data/test/dailyrep/IBrowser_test.rb +46 -0
- data/test/dailyrep/Kinozal_test.rb +23 -0
- data/test/dailyrep/Micex_test.rb +27 -0
- data/test/dailyrep/Minfin_test.rb +23 -0
- data/test/dailyrep/Yanoil_test.rb +21 -0
- data/test/test_helper.rb +37 -0
- metadata +176 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
require_relative '../Changable'
|
2
|
+
|
3
|
+
module DailyRep
|
4
|
+
module Entities
|
5
|
+
class Micex < IBrowser
|
6
|
+
include Changable
|
7
|
+
attr_reader :values
|
8
|
+
|
9
|
+
def self.create
|
10
|
+
result = [(new)]
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(delta=Configer.micex_delta, source=Configer.micex_source)
|
14
|
+
@source = source
|
15
|
+
@notif_limit = delta
|
16
|
+
@values = {last: "", open: "", delta: "" }
|
17
|
+
@push = 0
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
def log_msg phase
|
23
|
+
super @entity, phase
|
24
|
+
end
|
25
|
+
|
26
|
+
def process
|
27
|
+
super do
|
28
|
+
result_json = get_source_json @source
|
29
|
+
result_json = result_json[1]
|
30
|
+
@last_val = result_json['LAST'].to_f
|
31
|
+
@open_val = result_json['OPEN'].to_f
|
32
|
+
@delta_prc_val = (((@last_val - @open_val)*100)/@open_val).round(2)
|
33
|
+
#evaluate push 0 or 1 via Chgable module
|
34
|
+
@push = track_change @delta_prc_val, @notif_limit
|
35
|
+
#store values to write to db
|
36
|
+
@values = { last: @last_val, open: @open_val, delta: @delta_prc_val }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def notify
|
41
|
+
super do
|
42
|
+
if @push == 1 then
|
43
|
+
note = "Micex USD/RUB
|
44
|
+
Last value: #{@last_val}
|
45
|
+
Open value: #{@open_val}
|
46
|
+
Delta percentage: #{@delta_prc_val}
|
47
|
+
www.googledrive.com/host/0Byb1mtPn4ZEAVm9zTUJQbHM2U0U"
|
48
|
+
push_note note
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def write_to_db
|
54
|
+
super do
|
55
|
+
write_hist @entity, :delta.to_s, @delta_prc_val, @push
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def web_reload
|
60
|
+
super do
|
61
|
+
set_html @entity, @values, @push
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require_relative '../Changable'
|
2
|
+
module DailyRep
|
3
|
+
module Entities
|
4
|
+
class Minfin < IBrowser
|
5
|
+
include Changable
|
6
|
+
attr_reader :usd_uah_info
|
7
|
+
|
8
|
+
def self.create
|
9
|
+
result = [(new)]
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize( delta=Configer.minfin_delta, source=Configer.minfin_source)
|
13
|
+
super
|
14
|
+
@search_path = source
|
15
|
+
@notif_limit = delta
|
16
|
+
@usd_uah_info = {:buy_bank => -999, :sale_bank => -999}
|
17
|
+
@push = 0
|
18
|
+
end
|
19
|
+
|
20
|
+
def log_msg phase
|
21
|
+
super @entity, phase
|
22
|
+
end
|
23
|
+
|
24
|
+
def process
|
25
|
+
super do
|
26
|
+
|
27
|
+
out_set_bank = get_source_http @search_path, '.mb-data .per'
|
28
|
+
@usd_uah_info[:buy_bank] = out_set_bank[0].text
|
29
|
+
@usd_uah_info[:sale_bank] = out_set_bank[3].text
|
30
|
+
|
31
|
+
|
32
|
+
@last_val = check_history_notif(@entity, :sale_bank.to_s, (Time.now - 1.week)).to_f
|
33
|
+
cur =@usd_uah_info[:sale_bank].to_f
|
34
|
+
@usd_uah_info[:delta] = (cur - @last_val)*100/cur
|
35
|
+
|
36
|
+
@push = track_change @usd_uah_info[:delta], @notif_limit
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def notify
|
43
|
+
super do
|
44
|
+
if @push == 1 then
|
45
|
+
note = "Minfin
|
46
|
+
Current market: #{@usd_uah_info[:sale_bank]}
|
47
|
+
Last value: #{@last_val}
|
48
|
+
Delta percentage: #{@usd_uah_info[:delta]}"
|
49
|
+
push_note note
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
def write_to_db
|
56
|
+
super do
|
57
|
+
write_hist @entity, :sale_bank.to_s, @usd_uah_info[:sale_bank], @push
|
58
|
+
write_hist @entity, :delta.to_s, @usd_uah_info[:delta], @push
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def web_reload
|
63
|
+
super do
|
64
|
+
set_html @entity, {current: @usd_uah_info[:sale_bank], delta: @usd_uah_info[:delta]}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require_relative '../Changable'
|
2
|
+
module DailyRep
|
3
|
+
module Entities
|
4
|
+
class Yanoil < IBrowser
|
5
|
+
include Changable
|
6
|
+
attr_reader :change
|
7
|
+
|
8
|
+
def self.create
|
9
|
+
result = [(new )]
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize( delta=Configer.yanoil_delta, source=Configer.yanoil_source)
|
13
|
+
super
|
14
|
+
@search_path = source
|
15
|
+
@notif_limit = delta
|
16
|
+
@scope = '.b-quote__last-day'
|
17
|
+
@is_current_date = false
|
18
|
+
@push = 0
|
19
|
+
end
|
20
|
+
|
21
|
+
def log_msg phase
|
22
|
+
super @entity, phase
|
23
|
+
end
|
24
|
+
|
25
|
+
def process
|
26
|
+
super do
|
27
|
+
out_set = get_source_http @search_path, @scope
|
28
|
+
@last = out_set.css('.b-quote__value').text.gsub(',','.').to_f
|
29
|
+
v_date = out_set.css('.b-quote__date').text
|
30
|
+
change = out_set.css('.b-quote__change').text.gsub(',','.')
|
31
|
+
change_sign = out_set.css('.b-quote__change .b-quote__sgn').text
|
32
|
+
@change = (change + change_sign).to_f
|
33
|
+
@is_current_date = (Time.now.day.to_i == v_date[0..2].to_i)
|
34
|
+
if @is_current_date then
|
35
|
+
@push = track_change @change, @notif_limit
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
def notify
|
42
|
+
super do
|
43
|
+
if @push == 1 then
|
44
|
+
note = "Yandex Brent Oil
|
45
|
+
Last value: #{@last}
|
46
|
+
Delta percentage: #{@change}"
|
47
|
+
push_note note
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
def write_to_db
|
54
|
+
super do
|
55
|
+
write_hist @entity, :delta.to_s, @change, @push
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def web_reload
|
60
|
+
super do
|
61
|
+
set_html @entity, { delta: @change, current: @last }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require "dailyrep/entities/Doujob"
|
3
|
+
|
4
|
+
module DailyRep
|
5
|
+
describe "Doujob unit test" do
|
6
|
+
before do
|
7
|
+
@doujob1 = Entities::Doujob.new("Ruby")
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should test process method and write_to_hist' do
|
11
|
+
@doujob1.process
|
12
|
+
assert @doujob1.diff, 'process method returns empty json responce'
|
13
|
+
assert_not @doujob1.diff.count == 0, 'response count = 0'
|
14
|
+
assert_difference('History.count', @doujob1.diff.count) do
|
15
|
+
@doujob1.write_to_db
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DailyRep
|
4
|
+
############################
|
5
|
+
describe "Dailyrep testing" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@browser = IBrowser.new
|
9
|
+
@browser.write_hist('test_entity_1', 'test_parameter', 'test_val')
|
10
|
+
@browser.write_hist('test_entity_2', 'test_parameter', 'test_val', 1)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should check database via check_ro_exists' do
|
14
|
+
assert @browser.check_row_exists('test_entity_1', 'test_parameter', 'test_val')
|
15
|
+
end
|
16
|
+
it 'should perform http request to Dou.ua website' do
|
17
|
+
assert @browser.get_source_http('http://jobs.dou.ua/vacancies/?search=Ruby', 'div#vacancyListId li')
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should perform json request to micex website' do
|
21
|
+
assert @browser.get_source_json('http://www.micex.ru/issrpc/marketdata/currency/selt/daily/short/result.json?boardid=CETS&secid=USD000UTSTOM')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should write history data to the database' do
|
25
|
+
hist_1 = History.where(entity: 'test_entity_1').first
|
26
|
+
hist_2 = History.where(entity: 'test_entity_2').first
|
27
|
+
assert_equal 'N', hist_1.notified
|
28
|
+
assert_equal 'Y', hist_2.notified
|
29
|
+
assert_not hist_1.entity.empty?, 'entity column is empty'
|
30
|
+
assert_not hist_1.parameter.empty?
|
31
|
+
assert_not hist_1.val.empty?
|
32
|
+
assert_not hist_1.created_at.empty?
|
33
|
+
assert_not hist_1.id.nil?, 'Id has not been set'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should check if notification exists in' do
|
37
|
+
assert_nil @browser.check_history_notif('test_entity_1', 'test_parameter'), 'there should be no notifications'
|
38
|
+
assert @browser.check_history_notif('test_entity_2', 'test_parameter')
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should check pushbullet connection' do
|
42
|
+
client = Washbullet::Client.new(Configer.get_client_tokens.first)
|
43
|
+
assert_not client.me.body["email"].empty?
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require "dailyrep/entities/Kinozal"
|
3
|
+
|
4
|
+
module DailyRep
|
5
|
+
describe "Kinozal unit test" do
|
6
|
+
before do
|
7
|
+
@kinozal = Entities::Kinozal.new("Avatar")
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should test process method and write_to_hist' do
|
11
|
+
@kinozal.process
|
12
|
+
assert @kinozal.out_hash_clean, 'process method returns empty json responce'
|
13
|
+
assert_not @kinozal.out_hash_clean.count == 0, 'response count = 0'
|
14
|
+
assert_difference('History.count', @kinozal.out_hash_clean.count) do
|
15
|
+
@kinozal.write_to_db
|
16
|
+
end
|
17
|
+
assert @kinozal.to_notification.count == @kinozal.out_hash_clean.count
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require "dailyrep/entities/Micex"
|
3
|
+
|
4
|
+
module DailyRep
|
5
|
+
class Micex
|
6
|
+
def log_msg phase
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "Micex unit test" do
|
11
|
+
before do
|
12
|
+
@micex = Entities::Micex.new()
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should test process method' do
|
16
|
+
@micex.process
|
17
|
+
assert @micex.values[:last] > 0, 'process method returns empty json responce'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should test write_to_hist' do
|
21
|
+
assert_difference('History.count') do
|
22
|
+
@micex.write_to_db
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require "dailyrep/entities/Minfin"
|
3
|
+
|
4
|
+
module DailyRep
|
5
|
+
describe "Minfin unit test" do
|
6
|
+
before do
|
7
|
+
@minfin = Entities::Minfin.new()
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should test process method and write_to_hist' do
|
11
|
+
@minfin.process
|
12
|
+
@minfin.usd_uah_info.each { |key, val|
|
13
|
+
assert_not val == -999, "#{key} is not set in responce "
|
14
|
+
}
|
15
|
+
assert_difference('History.count', 2) do
|
16
|
+
@minfin.write_to_db
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require "dailyrep/entities/Yanoil"
|
3
|
+
|
4
|
+
module DailyRep
|
5
|
+
describe "Yanoil unit test" do
|
6
|
+
before do
|
7
|
+
@yanoil = Entities::Yanoil.new()
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should test process method and write_to_hist' do
|
11
|
+
@yanoil.process
|
12
|
+
assert @yanoil.change, 'process method returns empty json responce'
|
13
|
+
assert_difference('History.count') do
|
14
|
+
@yanoil.write_to_db
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
|
3
|
+
require 'active_record'
|
4
|
+
require 'json'
|
5
|
+
require 'hashdiff'
|
6
|
+
|
7
|
+
DATABASE = 'db/db_test.sql3' #sets test database
|
8
|
+
CONFIG_FILE = 'config/config.json'
|
9
|
+
|
10
|
+
#config file loading
|
11
|
+
require 'dailyrep/Loadconfig'
|
12
|
+
|
13
|
+
DailyRep::Configer.set_index_file 'config/index.html'
|
14
|
+
|
15
|
+
require 'active_support/testing/assertions'
|
16
|
+
include ActiveSupport::Testing::Assertions
|
17
|
+
|
18
|
+
#clears test database
|
19
|
+
History.delete_all
|
20
|
+
|
21
|
+
require 'dailyrep/IBrowser'
|
22
|
+
|
23
|
+
|
24
|
+
module DailyRep
|
25
|
+
class IBrowser
|
26
|
+
def self.get_html entity, key
|
27
|
+
@@out_html.css("##{entity}_#{key}")[0].content
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module Trackable
|
32
|
+
def log_msg entity, add_param='', phase
|
33
|
+
end
|
34
|
+
def log_error e
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dailyrep
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yurii Kurylenko
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hashdiff
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activerecord
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
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: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: washbullet
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: |-
|
98
|
+
This is Ruby App collects the information you need (currency, new torrents, etc) from various web sites.
|
99
|
+
|
100
|
+
Main features:
|
101
|
+
- local SQlite3 database to store history info
|
102
|
+
- devices notification over PushBullet service
|
103
|
+
- recent information visualization via html
|
104
|
+
- flexible configuration using json file
|
105
|
+
|
106
|
+
Currently available web site notificattions:
|
107
|
+
- http://minfin.com.ua - UAH/USD currency
|
108
|
+
- http://micex.ru/ - RUB/USD currency
|
109
|
+
- http://dou.ua/ - new IT job opportunities
|
110
|
+
- http://kinozal.tv/ - new movies available on torrent
|
111
|
+
- http://news.yandex.ru/ - Breny Oil rate
|
112
|
+
|
113
|
+
As the example (app reloads index.html file that is shared thought Google Drive):
|
114
|
+
www.googledrive.com/host/0Byb1mtPn4ZEAVm9zTUJQbHM2U0U
|
115
|
+
email: yuriy.kurilenko7@gmail.com
|
116
|
+
executables:
|
117
|
+
- dailyrep
|
118
|
+
extensions: []
|
119
|
+
extra_rdoc_files: []
|
120
|
+
files:
|
121
|
+
- .gitignore
|
122
|
+
- README.md
|
123
|
+
- Rakefile
|
124
|
+
- bin/dailyrep
|
125
|
+
- config/.gitkeep
|
126
|
+
- config/config_template.json
|
127
|
+
- config/index_template.html
|
128
|
+
- dailyrep.gemspec
|
129
|
+
- db/.gitkeep
|
130
|
+
- lib/dailyrep/AppContainer.rb
|
131
|
+
- lib/dailyrep/Changable.rb
|
132
|
+
- lib/dailyrep/Dbops.rb
|
133
|
+
- lib/dailyrep/IBrowser.rb
|
134
|
+
- lib/dailyrep/IndexWriter.rb
|
135
|
+
- lib/dailyrep/Loadconfig.rb
|
136
|
+
- lib/dailyrep/Notificator.rb
|
137
|
+
- lib/dailyrep/Trackable.rb
|
138
|
+
- lib/dailyrep/entities/Doujob.rb
|
139
|
+
- lib/dailyrep/entities/Kinozal.rb
|
140
|
+
- lib/dailyrep/entities/Micex.rb
|
141
|
+
- lib/dailyrep/entities/Minfin.rb
|
142
|
+
- lib/dailyrep/entities/Yanoil.rb
|
143
|
+
- lib/dailyrep/version.rb
|
144
|
+
- test/dailyrep/Doujob_test.rb
|
145
|
+
- test/dailyrep/IBrowser_test.rb
|
146
|
+
- test/dailyrep/Kinozal_test.rb
|
147
|
+
- test/dailyrep/Micex_test.rb
|
148
|
+
- test/dailyrep/Minfin_test.rb
|
149
|
+
- test/dailyrep/Yanoil_test.rb
|
150
|
+
- test/test_helper.rb
|
151
|
+
homepage:
|
152
|
+
licenses:
|
153
|
+
- MIT
|
154
|
+
metadata: {}
|
155
|
+
post_install_message:
|
156
|
+
rdoc_options: []
|
157
|
+
require_paths:
|
158
|
+
- lib
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - '>='
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '2.0'
|
164
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
requirements: []
|
170
|
+
rubyforge_project:
|
171
|
+
rubygems_version: 2.4.5
|
172
|
+
signing_key:
|
173
|
+
specification_version: 4
|
174
|
+
summary: Ruby app that provides values checking on particular websites and performs
|
175
|
+
notification
|
176
|
+
test_files: []
|