ramesh 1.1.0 → 1.2.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 +4 -4
- data/README.md +4 -4
- data/lib/ramesh/client.rb +9 -1
- data/lib/ramesh/image.rb +9 -3
- data/lib/ramesh/version.rb +1 -1
- data/ramesh.gemspec +2 -2
- data/spec/fixtures/index.js +2 -2
- data/spec/ramesh/client_spec.rb +2 -2
- data/spec/ramesh/image_spec.rb +28 -9
- data/spec/spec_helper.rb +2 -12
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f095feb67813f3fc287cae0facf015f91cb6a8ed
|
4
|
+
data.tar.gz: 7e375fa8880fa9cf421c74944c6cd8f9c4ec19ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6842b6ad926081e3f31064693b1505bbd26ae5cfbbb96d7136bb2ad4f0441bd94fe988b67db492638f59cf2db4e673fb134ee7644ca2740fca6f4a1b3bb62fe0
|
7
|
+
data.tar.gz: bab705ad4c7ff24a27b47f91efd0c86b6558725cd5fd3d829301da45616fb09ddc5fb8222dcba53b79899286f1431bfa3162265e856ce576d2e91cf592136691
|
data/README.md
CHANGED
@@ -23,10 +23,10 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
-
ramesh
|
27
|
-
ramesh [0-120
|
28
|
-
ramesh [0-120
|
29
|
-
ramesh -h
|
26
|
+
ramesh [-d save_dir] download the latest image
|
27
|
+
ramesh [-d save_dir] 0-120 download the image specified minutes before
|
28
|
+
ramesh [-d save_dir] 0-120 0-120 download images within a specified range
|
29
|
+
ramesh -h, --help show this usage
|
30
30
|
|
31
31
|
## Contributing
|
32
32
|
|
data/lib/ramesh/client.rb
CHANGED
@@ -12,7 +12,7 @@ module Ramesh
|
|
12
12
|
end
|
13
13
|
|
14
14
|
image_name = name_from_minute(minute)
|
15
|
-
image = Image.new(image_name)
|
15
|
+
image = Image.new(image_name, background_image, mask_image)
|
16
16
|
image.save(save_dir, image_name)
|
17
17
|
|
18
18
|
@logger.info("Downloaded: #{image_name}.jpg")
|
@@ -30,6 +30,14 @@ module Ramesh
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
+
def background_image
|
34
|
+
@background_image ||= Image.background_image
|
35
|
+
end
|
36
|
+
|
37
|
+
def mask_image
|
38
|
+
@mask_image ||= Image.mask_image
|
39
|
+
end
|
40
|
+
|
33
41
|
def meshes_index
|
34
42
|
@meshes_index ||= open(MESHES_INDEX_URL).read.gsub(/[^0-9,]/, "").split(",")
|
35
43
|
end
|
data/lib/ramesh/image.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require "
|
1
|
+
require "mini_magick"
|
2
2
|
require "open-uri"
|
3
3
|
|
4
4
|
module Ramesh
|
@@ -34,7 +34,7 @@ module Ramesh
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def self.download_image(url)
|
37
|
-
|
37
|
+
MiniMagick::Image.read(open(url).read)
|
38
38
|
end
|
39
39
|
|
40
40
|
def moment_image_url(image_name)
|
@@ -43,7 +43,13 @@ module Ramesh
|
|
43
43
|
|
44
44
|
def composite_images(image_list)
|
45
45
|
image = image_list.shift
|
46
|
-
|
46
|
+
|
47
|
+
image_list.each do |layer|
|
48
|
+
image = image.composite(layer) do |c|
|
49
|
+
c.compose "Over"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
47
53
|
image
|
48
54
|
end
|
49
55
|
end
|
data/lib/ramesh/version.rb
CHANGED
data/ramesh.gemspec
CHANGED
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "fakefs"
|
24
24
|
spec.add_development_dependency "guard-rspec"
|
25
25
|
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.0.0"
|
27
27
|
spec.add_development_dependency "terminal-notifier-guard"
|
28
28
|
spec.add_development_dependency "webmock"
|
29
29
|
|
30
|
-
spec.add_dependency "
|
30
|
+
spec.add_dependency "mini_magick"
|
31
31
|
end
|
data/spec/fixtures/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
Amesh.setIndexList(["201405091845","201405091840","201405091835","201405091830","201405091825","201405091820","201405091815","201405091810","201405091805","201405091800","201405091755","201405091750","201405091745","201405091740","201405091735","201405091730","201405091725","201405091720","201405091715","201405091710","201405091705","201405091700","201405091655","201405091650","201405091645"]);
|
2
|
-
|
1
|
+
Amesh.setIndexList(["201405091845","201405091840","201405091835","201405091830","201405091825","201405091820","201405091815","201405091810","201405091805","201405091800","201405091755","201405091750","201405091745","201405091740","201405091735","201405091730","201405091725","201405091720","201405091715","201405091710","201405091705","201405091700","201405091655","201405091650","201405091645"]);
|
2
|
+
|
data/spec/ramesh/client_spec.rb
CHANGED
@@ -28,8 +28,8 @@ module Ramesh
|
|
28
28
|
describe "#download_image" do
|
29
29
|
before do
|
30
30
|
image = double(write: true)
|
31
|
-
Image.
|
32
|
-
Image.
|
31
|
+
allow(Image).to receive(:download_image).and_return(image)
|
32
|
+
allow_any_instance_of(Image).to receive(:composite_images).and_return(image)
|
33
33
|
end
|
34
34
|
|
35
35
|
context "when minute is not specified" do
|
data/spec/ramesh/image_spec.rb
CHANGED
@@ -23,13 +23,17 @@ module Ramesh
|
|
23
23
|
"http://tokyo-ame.jwa.or.jp/map/msk000.png"
|
24
24
|
end
|
25
25
|
|
26
|
+
let(:fixture_image) do
|
27
|
+
open(fixture_path("lena.png")).read
|
28
|
+
end
|
29
|
+
|
26
30
|
before do
|
27
31
|
stub_request(:get, mesh_url)
|
28
|
-
.to_return(status: 200, body:
|
32
|
+
.to_return(status: 200, body: fixture_image)
|
29
33
|
stub_request(:get, background_url)
|
30
|
-
.to_return(status: 200, body:
|
34
|
+
.to_return(status: 200, body: fixture_image)
|
31
35
|
stub_request(:get, mask_url)
|
32
|
-
.to_return(status: 200, body:
|
36
|
+
.to_return(status: 200, body: fixture_image)
|
33
37
|
end
|
34
38
|
|
35
39
|
describe "#background_image" do
|
@@ -47,11 +51,26 @@ module Ramesh
|
|
47
51
|
end
|
48
52
|
|
49
53
|
describe "#initialize" do
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
54
|
+
context "without cached images" do
|
55
|
+
it "should composite the moment image" do
|
56
|
+
described_class.new(image_name)
|
57
|
+
expect(a_request(:get, mesh_url)).to have_been_made.once
|
58
|
+
expect(a_request(:get, background_url)).to have_been_made.once
|
59
|
+
expect(a_request(:get, mask_url)).to have_been_made.once
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context "with cached images" do
|
64
|
+
it "should composite the moment image" do
|
65
|
+
image = double(composite: true)
|
66
|
+
background_image = double(composite: image)
|
67
|
+
mask_image = double(composite: image)
|
68
|
+
|
69
|
+
described_class.new(image_name, background_image, mask_image)
|
70
|
+
expect(a_request(:get, mesh_url)).to have_been_made.once
|
71
|
+
expect(a_request(:get, background_url)).not_to have_been_made
|
72
|
+
expect(a_request(:get, mask_url)).not_to have_been_made
|
73
|
+
end
|
55
74
|
end
|
56
75
|
end
|
57
76
|
|
@@ -63,7 +82,7 @@ module Ramesh
|
|
63
82
|
it "should save itself to the file" do
|
64
83
|
image = described_class.new(image_name)
|
65
84
|
image.save(tmpdir, image_name)
|
66
|
-
expect(File.exist?(File.join(tmpdir, "#{image_name}.jpg"))).to
|
85
|
+
expect(File.exist?(File.join(tmpdir, "#{image_name}.jpg"))).to be_truthy
|
67
86
|
end
|
68
87
|
|
69
88
|
after do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,21 +1,11 @@
|
|
1
1
|
require 'coveralls'
|
2
2
|
Coveralls.wear!
|
3
3
|
|
4
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
5
|
+
|
4
6
|
require 'ramesh'
|
5
7
|
require 'webmock/rspec'
|
6
8
|
|
7
|
-
RSpec.configure do |config|
|
8
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
-
config.run_all_when_everything_filtered = true
|
10
|
-
config.filter_run :focus
|
11
|
-
|
12
|
-
# Run specs in random order to surface order dependencies. If you find an
|
13
|
-
# order dependency and want to debug it, you can fix the order by providing
|
14
|
-
# the seed, which is printed after each run.
|
15
|
-
# --seed 1234
|
16
|
-
config.order = 'random'
|
17
|
-
end
|
18
|
-
|
19
9
|
def fixture_path(name)
|
20
10
|
File.expand_path(File.join("..", "fixtures", name), __FILE__)
|
21
11
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ramesh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dtan4
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 3.0.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.0.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: terminal-notifier-guard
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: mini_magick
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|