link_thumbnailer 1.1.1 → 1.1.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTgzM2U1MzdhMjgxNDU2NGY0MDA0ZDA0ODZhMDIxZjJiNGJjMWVjMg==
4
+ MTI4ZDFkMDdhMWJiM2Y2M2ZlODEwMTg1NjU4MDg3NWIxNDg1NmVkMw==
5
5
  data.tar.gz: !binary |-
6
- OTIyODJjMzZmYWNiYzE0ZDczNTg5ODg5Yjg5NTgzNzEzMzk5YzQyNQ==
6
+ ZGY2MzVlMTM1OGQxNWEwODNjMDM2ZGIyNDIwZjAzNWZiNjI5ZmEzNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODFiYmUxZmU1MGI5NTA2ZDlhZTk1Y2Y4YTM1Y2IxNjlmMzcwY2I5Yjg5MTM2
10
- NzAwYjAzYzdmMGQ2N2EzNjlmYTFjZTJmMDgwNThlMjQ2ZmZjNzgzMGRkYTI3
11
- ZjZiM2NjZDBiOWRmN2I4ZmJiNGYxODA5YjYyZWFiYjFjMTlhMzM=
9
+ YTRlNGI4Yjk2Njk2MDgwNTI2YTgyMGJlNDdmMTk2Y2Q4YjEyY2UyODAyOGU5
10
+ YTk0ZTJjOTg5YWJjZDBjN2U5NWM2ODg3YzRiNGY3ZGYzZGU3NTE0YzE2YjM3
11
+ MDIyM2UwNTQ3MmJkZWY4YzcwZjkzNWU0ZjRiNzNmMmViNzA2MTM=
12
12
  data.tar.gz: !binary |-
13
- MmQyYWJlZjMxNzcwNGQ0ZmIyZjQ1ZjdiYWUwNjE4YTI0ZDdjMDY5ODRhOTVj
14
- ZDJiNzM2OTNmYjY1MWQ2NDM2OTFjY2M1OGNjYjNjNTgwMjM1MTI0Njc3ODUz
15
- Mzg4NjA1ODliNDI2ODkxOGZjMWQyYmEwMTJjY2YzODUyN2YwOGI=
13
+ MGI4ZjIwNWEzODIwN2E4YjA0MGVjYWY1NzUzZGE0Njk3MzcxOTA0Zjk3OGY5
14
+ YmFkZmM3MTE3ODc5Mzk2OTYxZTY0NTQwYjY0NjQwNzFjODY5NmY2MDE2MDFj
15
+ ODY0NWYxMzNmMTAzY2FkYjU5YzY3YTg2ODhmNjhhODFlYzc5ZjA=
data/CHANGELOG.md CHANGED
@@ -1,100 +1,104 @@
1
- # 1.1.1
2
-
3
- - Fix route helper not working under rails 4.
4
-
5
- # 1.1.0
6
-
7
- - Replace RMagick by [FastImage](https://github.com/sdsykes/fastimage)
8
- - Rename `rmagick_attributes` config into `image_attributes`
9
-
10
- # 1.0.9
11
-
12
- - Fix issue when Location header used a relative path instead of an absolute path
13
- - Update gemfile to be more flexible when using Hashie gem
14
-
15
- # 1.0.8
16
-
17
- - Thanks to [juriglx](https://github.com/juriglx), support for canonical urls
18
- - Bug fixes
19
-
20
- # 1.0.7
21
-
22
- - Fix: Issue with preview controller
23
-
24
- # 1.0.6
25
-
26
- - Fix: Issue when setting `strict` option. Always returning OG representation.
27
-
28
- # 1.0.5
29
-
30
- - Thanks to [phlegx](https://github.com/phlegx), support for timeout http connection through configurations.
31
-
32
- # 1.0.4
33
-
34
- - Fix issue #7: nil img was returned when exception is raised. Now skiping nil images in results.
35
- - Thanks to [phlegx](https://github.com/phlegx), support for SSL and User Agent customization through configurations.
36
-
37
- # 1.0.3
38
-
39
- - Fix issue #5: Url was incorect in case of HTTP Redirections.
40
-
41
- # 1.0.2
42
-
43
- - Feature: User can now set options at runtime by passing valid options to ```generate``` method
44
- - Bug fix when doing ```rails g link_thumbnailer:install``` by explicitly specifying the scope of Rails
45
-
46
- # 1.0.1
47
-
48
- - Refactor LinkThumbnailer#generate method to have a cleaner code
49
-
50
- # 1.0.0
51
-
52
- - Update readme
53
- - Add PreviewController for easy integration with user's app
54
- - Add link_thumbnailer routes for easy integration with user's app
55
- - Refactor some code
56
- - Change 'to_a' method to 'to_hash' in object model
57
-
58
- # 0.0.6
59
-
60
- - Update readme
61
- - Add `to_a` to WebImage class
62
- - Refactor `to_json` for WebImage class
63
- - Add specs corresponding
64
-
65
- # 0.0.5
66
-
67
- - Bug fix
68
- - Remove `require 'rails'` from spec_helper.rb
69
- - Remove rails dependences (blank? method) in code
70
- - Spec fix
71
-
72
- # 0.0.4
73
-
74
- - Add specs for almost all classes
75
- - Add a method `to_json` for WebImage class to be able to get a usable array of images' attributes
76
-
77
- # 0.0.3
78
-
79
- - Add specs for LinkThumbnailer class
80
- - Refactor config system, now using dedicated configuration class
81
-
82
- # 0.0.2
83
-
84
- - Added Rspec
85
- - Bug fixes:
86
- - Now checking if attribute is blank for LinkThumbnailer::Object.valid? method
87
-
88
- # 0.0.1
89
-
90
- - LinkThumbnailer::Object
91
- - LinkThumbnailer::Doc
92
- - LinkThumbnailer::DocParser
93
- - LinkThumbnailer::Fetcher
94
- - LinkThumbnailer::ImgComparator
95
- - LinkThumbnailer::ImgParser
96
- - LinkThumbnailer::ImgUrlFilter
97
- - LinkThumbnailer::Opengraph
98
- - LinkThumbnailer::WebImage
99
- - LinkThumbnailer.configure
100
- - LinkThumbnailer.generate
1
+ # 1.1.2
2
+
3
+ - Fix issue with FastImage URLs [https://github.com/gottfrois/link_thumbnailer/pull/31](https://github.com/gottfrois/link_thumbnailer/pull/31)
4
+
5
+ # 1.1.1
6
+
7
+ - Fix route helper not working under rails 4.
8
+
9
+ # 1.1.0
10
+
11
+ - Replace RMagick by [FastImage](https://github.com/sdsykes/fastimage)
12
+ - Rename `rmagick_attributes` config into `image_attributes`
13
+
14
+ # 1.0.9
15
+
16
+ - Fix issue when Location header used a relative path instead of an absolute path
17
+ - Update gemfile to be more flexible when using Hashie gem
18
+
19
+ # 1.0.8
20
+
21
+ - Thanks to [juriglx](https://github.com/juriglx), support for canonical urls
22
+ - Bug fixes
23
+
24
+ # 1.0.7
25
+
26
+ - Fix: Issue with preview controller
27
+
28
+ # 1.0.6
29
+
30
+ - Fix: Issue when setting `strict` option. Always returning OG representation.
31
+
32
+ # 1.0.5
33
+
34
+ - Thanks to [phlegx](https://github.com/phlegx), support for timeout http connection through configurations.
35
+
36
+ # 1.0.4
37
+
38
+ - Fix issue #7: nil img was returned when exception is raised. Now skiping nil images in results.
39
+ - Thanks to [phlegx](https://github.com/phlegx), support for SSL and User Agent customization through configurations.
40
+
41
+ # 1.0.3
42
+
43
+ - Fix issue #5: Url was incorect in case of HTTP Redirections.
44
+
45
+ # 1.0.2
46
+
47
+ - Feature: User can now set options at runtime by passing valid options to ```generate``` method
48
+ - Bug fix when doing ```rails g link_thumbnailer:install``` by explicitly specifying the scope of Rails
49
+
50
+ # 1.0.1
51
+
52
+ - Refactor LinkThumbnailer#generate method to have a cleaner code
53
+
54
+ # 1.0.0
55
+
56
+ - Update readme
57
+ - Add PreviewController for easy integration with user's app
58
+ - Add link_thumbnailer routes for easy integration with user's app
59
+ - Refactor some code
60
+ - Change 'to_a' method to 'to_hash' in object model
61
+
62
+ # 0.0.6
63
+
64
+ - Update readme
65
+ - Add `to_a` to WebImage class
66
+ - Refactor `to_json` for WebImage class
67
+ - Add specs corresponding
68
+
69
+ # 0.0.5
70
+
71
+ - Bug fix
72
+ - Remove `require 'rails'` from spec_helper.rb
73
+ - Remove rails dependences (blank? method) in code
74
+ - Spec fix
75
+
76
+ # 0.0.4
77
+
78
+ - Add specs for almost all classes
79
+ - Add a method `to_json` for WebImage class to be able to get a usable array of images' attributes
80
+
81
+ # 0.0.3
82
+
83
+ - Add specs for LinkThumbnailer class
84
+ - Refactor config system, now using dedicated configuration class
85
+
86
+ # 0.0.2
87
+
88
+ - Added Rspec
89
+ - Bug fixes:
90
+ - Now checking if attribute is blank for LinkThumbnailer::Object.valid? method
91
+
92
+ # 0.0.1
93
+
94
+ - LinkThumbnailer::Object
95
+ - LinkThumbnailer::Doc
96
+ - LinkThumbnailer::DocParser
97
+ - LinkThumbnailer::Fetcher
98
+ - LinkThumbnailer::ImgComparator
99
+ - LinkThumbnailer::ImgParser
100
+ - LinkThumbnailer::ImgUrlFilter
101
+ - LinkThumbnailer::Opengraph
102
+ - LinkThumbnailer::WebImage
103
+ - LinkThumbnailer.configure
104
+ - LinkThumbnailer.generate
data/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- Copyright (c) 2012 Pierre-Louis Gottfrois
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
1
+ Copyright (c) 2012 Pierre-Louis Gottfrois
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
22
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,184 +1,184 @@
1
- # LinkThumbnailer
2
-
3
- [![Code Climate](https://codeclimate.com/github/gottfrois/link_thumbnailer.png)](https://codeclimate.com/github/gottfrois/link_thumbnailer)
4
- [![Coverage Status](https://coveralls.io/repos/gottfrois/link_thumbnailer/badge.png?branch=master)](https://coveralls.io/r/gottfrois/link_thumbnailer?branch=master)
5
- [![Build Status](https://travis-ci.org/gottfrois/link_thumbnailer.png?branch=master)](https://travis-ci.org/gottfrois/link_thumbnailer)
6
-
7
- Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.
8
-
9
- Demo Application is [here](http://link-thumbnailer-demo.herokuapp.com/) !
10
-
11
- ## Installation
12
-
13
- Add this line to your application's Gemfile:
14
-
15
- gem 'link_thumbnailer'
16
-
17
- And then execute:
18
-
19
- $ bundle
20
-
21
- Or install it yourself as:
22
-
23
- $ gem install link_thumbnailer
24
-
25
- Run:
26
-
27
- $ rails g link_thumbnailer:install
28
-
29
- This will add `link_thumbnailer.rb` to `config/initializers/`. See [#Configuration](https://github.com/gottfrois/link_thumbnailer#configuration) for more details.
30
-
31
- ## Usage
32
-
33
- Run `irb` and require the gem:
34
-
35
- require 'rails'
36
- => true
37
-
38
- require 'link_thumbnailer'
39
- => true
40
-
41
- This gem can handle [Opengraph](http://ogp.me/) protocol. Here is an example with such a website:
42
-
43
- object = LinkThumbnailer.generate('http://zerply.com')
44
- => #<LinkThumbnailer::Object description="Go beyond the résumé - showcase your work and your talent" image="http://zerply.com/img/front/facebook_icon_green.png" images=["http://zerply.com/img/front/facebook_icon_green.png"] site_name="zerply.com" title="Join Me on Zerply" url="http://zerply.com">
45
-
46
- object.title?
47
- => true
48
- object.title
49
- => "Join Me on Zerply"
50
-
51
- object.url?
52
- => true
53
- object.url
54
- => "http://zerply.com"
55
-
56
- object.foo?
57
- => false
58
- object.foo
59
- => nil
60
-
61
- Now with a regular website with no particular protocol:
62
-
63
- object = LinkThumbnailer.generate('http://foo.com')
64
- => #<LinkThumbnailer::Object description=nil images=[[ JPEG 750x200 750x200+0+0 DirectClass 8-bit 45kb] scene=0] title="Foo.com" url="http://foo.com">
65
-
66
- object.title
67
- => "Foo.com"
68
-
69
- object.images
70
- => [[ JPEG 750x200 750x200+0+0 DirectClass 8-bit 45kb]
71
- scene=0]
72
-
73
- object.images.first.source_url
74
- => #<URI::HTTP:0x007ff7a923ef58 URL:http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg>
75
-
76
- object.to_hash
77
- => {"url"=>"http://foo.com", "images"=>[{:source_url=>"http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg", :mime_type=>"image/jpeg", :rows=>200, :filesize=>46501, :number_colors=>9490}], "title"=>"Foo.com", "description"=>nil}
78
-
79
- object.to_json
80
- => "{\"url\":\"http://foo.com\",\"images\":[{\"source_url\":\"http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg\",\"mime_type\":\"image/jpeg\",\"rows\":200,\"filesize\":46501,\"number_colors\":9490}],\"title\":\"Foo.com\",\"description\":null}"
81
-
82
- You can check whether this object is valid or not (set mandatory attributes in the initializer, defaults are `[url, title, images]`)
83
-
84
- object.valid?
85
- => true
86
-
87
- You also can set options at runtime:
88
-
89
- object = LinkThumbnailer.generate('http://foo.com', top: 10, limit: 20, redirect_limit: 5)
90
-
91
- ## Preview Controller
92
-
93
- For an easy integration into your application, use the builtin `PreviewController`.
94
-
95
- Take a look at the demo application [here](https://github.com/gottfrois/link_thumbnailer_demo).
96
-
97
- Basically, all you have to do in your view is something like this:
98
-
99
- <%= form_tag '/link/preview', method: :post, remote: true do %>
100
- <%= text_field_tag :url %>
101
- <%= submit_tag 'Preview' %>
102
- <% end %>
103
-
104
- Don't forget to add this anywhere in your `routes.rb` file:
105
-
106
- use_link_thumbnailer
107
-
108
- Note: You won't have to bother with this if you did run the installer using:
109
-
110
- $ rails g link_thumbnailer:install
111
-
112
- The `PreviewController` will automatically respond to json calls, returning json version of the preview object. Just like in the IRB console above.
113
-
114
- ## Configuration
115
-
116
- In `config/initializers/link_thumbnailer.rb`
117
-
118
- LinkThumbnailer.configure do |config|
119
- # Set mandatory attributes require for the website to be valid.
120
- # You can set `strict` to false if you want to skip this validation.
121
- # config.mandatory_attributes = %w(url title image)
122
-
123
- # Whether you want to validate given website against mandatory attributes or not.
124
- # config.strict = true
125
-
126
- # Numbers of redirects before raising an exception when trying to parse given url.
127
- # config.redirect_limit = 3
128
-
129
- # List of blacklisted urls you want to skip when searching for images.
130
- # config.blacklist_urls = [
131
- # %r{^http://ad\.doubleclick\.net/},
132
- # %r{^http://b\.scorecardresearch\.com/},
133
- # %r{^http://pixel\.quantserve\.com/},
134
- # %r{^http://s7\.addthis\.com/}
135
- # ]
136
-
137
- # Fetch 10 images maximum.
138
- # config.limit = 10
139
-
140
- # Return top 5 images only.
141
- # config.top = 5
142
-
143
- # Set user agent
144
- # config.user_agent = 'linkthumbnailer'
145
-
146
- # Enable or disable SSL verification
147
- # config.verify_ssl = true
148
-
149
- # HTTP open_timeout: The amount of time in seconds to wait for a connection to be opened.
150
- # config.http_timeout = 5
151
- end
152
-
153
- ## Features
154
-
155
- Implemented:
156
-
157
- - Implements [OpenGraph](http://ogp.me/) protocol.
158
- - Find images and sort them according to how well they represent what the page is about (includes absolute images).
159
- - Sort images based on their size and color.
160
- - Blacklist some well known advertisings image urls.
161
- - Routes and Controllers to handle preview generation
162
-
163
- Coming soon:
164
-
165
- - Use the gem [ruby-readability](https://github.com/iterationlabs/ruby-readability) to parse images and website information
166
- - Cache results on filesystem
167
-
168
- ## Contributing
169
-
170
- 1. Fork it
171
- 2. Create your feature branch (`git checkout -b my-new-feature`)
172
- 3. Run the specs (`bundle exec rspec spec`)
173
- 4. Commit your changes (`git commit -am 'Added some feature'`)
174
- 5. Push to the branch (`git push origin my-new-feature`)
175
- 6. Create new Pull Request
176
-
177
- ## Contributors
178
-
179
- - [phlegx](https://github.com/phlegx)
180
- - [juriglx](https://github.com/juriglx)
181
-
182
-
183
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/gottfrois/link_thumbnailer/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
184
-
1
+ # LinkThumbnailer
2
+
3
+ [![Code Climate](https://codeclimate.com/github/gottfrois/link_thumbnailer.png)](https://codeclimate.com/github/gottfrois/link_thumbnailer)
4
+ [![Coverage Status](https://coveralls.io/repos/gottfrois/link_thumbnailer/badge.png?branch=master)](https://coveralls.io/r/gottfrois/link_thumbnailer?branch=master)
5
+ [![Build Status](https://travis-ci.org/gottfrois/link_thumbnailer.png?branch=master)](https://travis-ci.org/gottfrois/link_thumbnailer)
6
+
7
+ Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.
8
+
9
+ Demo Application is [here](http://link-thumbnailer-demo.herokuapp.com/) !
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ gem 'link_thumbnailer'
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install link_thumbnailer
24
+
25
+ Run:
26
+
27
+ $ rails g link_thumbnailer:install
28
+
29
+ This will add `link_thumbnailer.rb` to `config/initializers/`. See [#Configuration](https://github.com/gottfrois/link_thumbnailer#configuration) for more details.
30
+
31
+ ## Usage
32
+
33
+ Run `irb` and require the gem:
34
+
35
+ require 'rails'
36
+ => true
37
+
38
+ require 'link_thumbnailer'
39
+ => true
40
+
41
+ This gem can handle [Opengraph](http://ogp.me/) protocol. Here is an example with such a website:
42
+
43
+ object = LinkThumbnailer.generate('http://zerply.com')
44
+ => #<LinkThumbnailer::Object description="Go beyond the résumé - showcase your work and your talent" image="http://zerply.com/img/front/facebook_icon_green.png" images=["http://zerply.com/img/front/facebook_icon_green.png"] site_name="zerply.com" title="Join Me on Zerply" url="http://zerply.com">
45
+
46
+ object.title?
47
+ => true
48
+ object.title
49
+ => "Join Me on Zerply"
50
+
51
+ object.url?
52
+ => true
53
+ object.url
54
+ => "http://zerply.com"
55
+
56
+ object.foo?
57
+ => false
58
+ object.foo
59
+ => nil
60
+
61
+ Now with a regular website with no particular protocol:
62
+
63
+ object = LinkThumbnailer.generate('http://foo.com')
64
+ => #<LinkThumbnailer::Object description=nil images=[[ JPEG 750x200 750x200+0+0 DirectClass 8-bit 45kb] scene=0] title="Foo.com" url="http://foo.com">
65
+
66
+ object.title
67
+ => "Foo.com"
68
+
69
+ object.images
70
+ => [[ JPEG 750x200 750x200+0+0 DirectClass 8-bit 45kb]
71
+ scene=0]
72
+
73
+ object.images.first.source_url
74
+ => #<URI::HTTP:0x007ff7a923ef58 URL:http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg>
75
+
76
+ object.to_hash
77
+ => {"url"=>"http://foo.com", "images"=>[{:source_url=>"http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg", :mime_type=>"image/jpeg", :rows=>200, :filesize=>46501, :number_colors=>9490}], "title"=>"Foo.com", "description"=>nil}
78
+
79
+ object.to_json
80
+ => "{\"url\":\"http://foo.com\",\"images\":[{\"source_url\":\"http://foo.com/media/BAhbB1sHOgZmSSItMjAxMi8wNC8yNi8yMC8xMS80OS80MjYvY29yZG92YWJlYWNoLmpwZwY6BkVUWwg6BnA6CnRodW1iSSINNzUweDIwMCMGOwZU/cordovabeach.jpg\",\"mime_type\":\"image/jpeg\",\"rows\":200,\"filesize\":46501,\"number_colors\":9490}],\"title\":\"Foo.com\",\"description\":null}"
81
+
82
+ You can check whether this object is valid or not (set mandatory attributes in the initializer, defaults are `[url, title, images]`)
83
+
84
+ object.valid?
85
+ => true
86
+
87
+ You also can set options at runtime:
88
+
89
+ object = LinkThumbnailer.generate('http://foo.com', top: 10, limit: 20, redirect_limit: 5)
90
+
91
+ ## Preview Controller
92
+
93
+ For an easy integration into your application, use the builtin `PreviewController`.
94
+
95
+ Take a look at the demo application [here](https://github.com/gottfrois/link_thumbnailer_demo).
96
+
97
+ Basically, all you have to do in your view is something like this:
98
+
99
+ <%= form_tag '/link/preview', method: :post, remote: true do %>
100
+ <%= text_field_tag :url %>
101
+ <%= submit_tag 'Preview' %>
102
+ <% end %>
103
+
104
+ Don't forget to add this anywhere in your `routes.rb` file:
105
+
106
+ use_link_thumbnailer
107
+
108
+ Note: You won't have to bother with this if you did run the installer using:
109
+
110
+ $ rails g link_thumbnailer:install
111
+
112
+ The `PreviewController` will automatically respond to json calls, returning json version of the preview object. Just like in the IRB console above.
113
+
114
+ ## Configuration
115
+
116
+ In `config/initializers/link_thumbnailer.rb`
117
+
118
+ LinkThumbnailer.configure do |config|
119
+ # Set mandatory attributes require for the website to be valid.
120
+ # You can set `strict` to false if you want to skip this validation.
121
+ # config.mandatory_attributes = %w(url title image)
122
+
123
+ # Whether you want to validate given website against mandatory attributes or not.
124
+ # config.strict = true
125
+
126
+ # Numbers of redirects before raising an exception when trying to parse given url.
127
+ # config.redirect_limit = 3
128
+
129
+ # List of blacklisted urls you want to skip when searching for images.
130
+ # config.blacklist_urls = [
131
+ # %r{^http://ad\.doubleclick\.net/},
132
+ # %r{^http://b\.scorecardresearch\.com/},
133
+ # %r{^http://pixel\.quantserve\.com/},
134
+ # %r{^http://s7\.addthis\.com/}
135
+ # ]
136
+
137
+ # Fetch 10 images maximum.
138
+ # config.limit = 10
139
+
140
+ # Return top 5 images only.
141
+ # config.top = 5
142
+
143
+ # Set user agent
144
+ # config.user_agent = 'linkthumbnailer'
145
+
146
+ # Enable or disable SSL verification
147
+ # config.verify_ssl = true
148
+
149
+ # HTTP open_timeout: The amount of time in seconds to wait for a connection to be opened.
150
+ # config.http_timeout = 5
151
+ end
152
+
153
+ ## Features
154
+
155
+ Implemented:
156
+
157
+ - Implements [OpenGraph](http://ogp.me/) protocol.
158
+ - Find images and sort them according to how well they represent what the page is about (includes absolute images).
159
+ - Sort images based on their size and color.
160
+ - Blacklist some well known advertisings image urls.
161
+ - Routes and Controllers to handle preview generation
162
+
163
+ Coming soon:
164
+
165
+ - Use the gem [ruby-readability](https://github.com/iterationlabs/ruby-readability) to parse images and website information
166
+ - Cache results on filesystem
167
+
168
+ ## Contributing
169
+
170
+ 1. Fork it
171
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
172
+ 3. Run the specs (`bundle exec rspec spec`)
173
+ 4. Commit your changes (`git commit -am 'Added some feature'`)
174
+ 5. Push to the branch (`git push origin my-new-feature`)
175
+ 6. Create new Pull Request
176
+
177
+ ## Contributors
178
+
179
+ - [phlegx](https://github.com/phlegx)
180
+ - [juriglx](https://github.com/juriglx)
181
+
182
+
183
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/gottfrois/link_thumbnailer/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
184
+