lentil 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 855952ce24fa3466918cbc10af3fda79a022938d
4
- data.tar.gz: 60cea752bc2402326b4f6b8bc3ce24a781133a9b
3
+ metadata.gz: 97465eeca8fbdaaa274f0202ff41703550717f74
4
+ data.tar.gz: 1bf43a3507e0ea9be6d0d97873019b3afe1905c2
5
5
  SHA512:
6
- metadata.gz: 2aa0c1e76c081f7a569fd3bad3a1eb0f90249da556ddd6f30c7e0aaa6b8811994f4f009672f19af8d203c656bca5b00e89b31177bb14d40b7ef303c3900cf497
7
- data.tar.gz: 945f99687061485de682bc5fdfadb2bc08e7d154892a46d84be10f3ec41d2261c3e62ceb67613b4852463adf408df66e11235a6e674c0e755b6446b46bebf716
6
+ metadata.gz: e3527f957cf817df95f4a50d87177f83ff28a15690ba31b5960360563a6c908e867747b240b30f4fdcb7c2657f7431518e272669a1fd5d5dd5b7fef557caa25a
7
+ data.tar.gz: 1fcc672f9e3b5b5d323bb75d484a9cb52005ae07f45113baacafb1d55d97c02ebf905c2f12185ef9d5a57b10ce94108136269325b3ab0e2507a424a57120e916
data/README.md CHANGED
@@ -47,6 +47,10 @@ bundle exec rails server
47
47
 
48
48
  Visit <http://localhost:3000>
49
49
 
50
+ ## Upgrading
51
+
52
+ You may need to run `bundle exec rake lentil:install:migrations` to incorporate any new database migration files.
53
+
50
54
  ## Harvest Images
51
55
 
52
56
  - You will need to define your `instagram_client_id` and `instagram_client_secret` in `config/lentil_config.yml`. You can generate these strings by creating an [Instagram API](http://instagram.com/developer) client for your application.
@@ -223,8 +227,10 @@ Submit a GitHub issue or contact lentil@lists.ncsu.edu.
223
227
 
224
228
  * Jason Casden
225
229
  * Bret Davidson
230
+ * Aniket Lawande
226
231
  * Cory Lown
227
232
  * Jason Ronallo
233
+ * Heidi Tebbe
228
234
 
229
235
  ## Additional project team members
230
236
 
@@ -84,6 +84,7 @@ function addfancybox() {
84
84
  title : { type : 'inside' },
85
85
  overlay : { locked : false }
86
86
  },
87
+ aspectRatio : true,
87
88
  afterLoad: function(current, previous) {
88
89
 
89
90
  // pushing base url so that back/close returns to image gallery
@@ -35,8 +35,8 @@
35
35
  class Lentil::Image < ActiveRecord::Base
36
36
  attr_accessible :description, :title, :user_id, :state, :staff_like, :url, :long_url, :external_identifier,
37
37
  :original_datetime, :popular_score, :taggings, :tag_id, :moderator, :moderated_at, :second_moderation,
38
- :do_not_request_donation, :donor_agreement_rejected, :media_type, :video_url
39
-
38
+ :do_not_request_donation, :donor_agreement_rejected, :media_type, :video_url, :suppressed
39
+
40
40
  attr_protected :original_metadata
41
41
 
42
42
  has_many :won_battles, :class_name => "Battle"
@@ -84,6 +84,10 @@ class Lentil::Image < ActiveRecord::Base
84
84
  end
85
85
 
86
86
  def self.approved
87
+ where(state: self::States[:approved]).where(:suppressed => false)
88
+ end
89
+
90
+ def self.approved_all
87
91
  where(state: self::States[:approved])
88
92
  end
89
93
 
@@ -12,6 +12,7 @@
12
12
  <% if action?("moderate_passed")%>
13
13
  <th>Moderator</th>
14
14
  <% end %>
15
+ <th>Suppressed</th>
15
16
  <th>Status</th>
16
17
  </tr>
17
18
  </thead>
@@ -38,6 +39,7 @@
38
39
  <% if action?("moderate_passed")%>
39
40
  <td><%= image.moderator.email %></td>
40
41
  <% end %>
42
+ <td><%= f.input :suppressed, :label => "Suppressed", :wrapper_html => { :class => "moderation_checkbox" } %></td>
41
43
  <td><%= f.input :state, :label => false, :as => :radio, :collection => Lentil::Image::States, :wrapper_html => { :class => "moderation_radio" } %></td>
42
44
  <% end -%>
43
45
  </tr>
@@ -50,4 +52,4 @@
50
52
  <% if params[:action] != "update_image" %>
51
53
  <div class="pagination"><%= paginate @images %></div>
52
54
  <% end %>
53
- </div>
55
+ </div>
@@ -0,0 +1,5 @@
1
+ class AddSuppressedToImages < ActiveRecord::Migration
2
+ def change
3
+ add_column :lentil_images, :suppressed, :boolean, :default => false
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ class AddIndexesToImages < ActiveRecord::Migration
2
+ def change
3
+ add_index :lentil_images, :user_id
4
+ add_index :lentil_images, :state
5
+ add_index :lentil_images, :created_at
6
+ add_index :lentil_images, :updated_at
7
+ add_index :lentil_images, :staff_like
8
+ add_index :lentil_images, :original_datetime
9
+ add_index :lentil_images, :file_last_checked
10
+ add_index :lentil_images, :failed_file_checks
11
+ add_index :lentil_images, :do_not_request_donation
12
+ add_index :lentil_images, :last_donor_agreement_failure_date
13
+ add_index :lentil_images, :suppressed
14
+ end
15
+ end
@@ -6,6 +6,7 @@ if defined?(ActiveAdmin)
6
6
  config.per_page = 10
7
7
 
8
8
  filter :state, :as => :select, :collection => proc { Lentil::Image::States }
9
+ filter :suppressed
9
10
  filter :media_type, :as => :select
10
11
  filter :user_user_name, :as => :string, :label => "Username"
11
12
  filter :user_full_name, :as => :string, :label => "Full Name"
@@ -60,6 +61,7 @@ if defined?(ActiveAdmin)
60
61
  end
61
62
  end
62
63
  column "Score", :popular_score
64
+ column :suppressed
63
65
  column :state do |image|
64
66
  image.state_name
65
67
  end
@@ -92,6 +94,7 @@ if defined?(ActiveAdmin)
92
94
  row :do_not_request_donation
93
95
  row :donor_agreement_submitted_date
94
96
  row :file_harvested_date
97
+ row :suppressed
95
98
  row :state do
96
99
  image.state_name
97
100
  end
@@ -134,7 +137,8 @@ if defined?(ActiveAdmin)
134
137
  taggings = new_taggings + taggings_to_keep
135
138
 
136
139
  image.update_attributes!(:state => image_params['state'], :taggings => taggings, :staff_like => image_params['staff_like'],
137
- :moderator => current_admin_user, :moderated_at => DateTime.now, :second_moderation => second_moderation, :do_not_request_donation => image_params['do_not_request_donation'])
140
+ :moderator => current_admin_user, :moderated_at => DateTime.now, :second_moderation => second_moderation,
141
+ :do_not_request_donation => image_params['do_not_request_donation'], :suppressed => image_params['suppressed'])
138
142
  end
139
143
  end
140
144
  end
@@ -54,30 +54,6 @@ module Lentil
54
54
  Instagram.tag_recent_media(tag, :count=>100)
55
55
  end
56
56
 
57
- def fetch_recent_images_by_tag_with_args(tag = nil, args = {:count=>100})
58
- configure_connection
59
- tag ||= Lentil::Engine::APP_CONFIG["default_image_search_tag"]
60
- Instagram.tag_recent_media(tag, args)
61
- end
62
-
63
- def recursive_fetch(tag=nil, max_tag_id=nil, total=0)
64
- case max_tag_id
65
- when nil
66
- instagram_metadata = fetch_recent_images_by_tag_with_args(tag)
67
- else
68
- instagram_metadata = fetch_recent_images_by_tag_with_args(tag, {:max_tag_id=>max_tag_id})
69
- end
70
- total += save_instagram_load(instagram_metadata).size
71
- next_max_id = instagram_metadata.pagination.next_max_id
72
- case next_max_id
73
- when nil
74
- puts "nil next_max_id. Previous next_max_id: " + max_tag_id.to_s
75
- else
76
- subtotal = recursive_fetch(tag, next_max_id, total)
77
- total += subtotal.nil? ? 0 : subtotal
78
- end
79
- total
80
- end
81
57
 
82
58
  # Queries the Instagram API for the image metadata associated with a given ID.
83
59
  #
@@ -159,9 +135,7 @@ module Lentil
159
135
  :media_type => image_data[:media_type]
160
136
  })
161
137
 
162
- # This is a temporary fix for a bug in the Hashie to_hash method.
163
- # It's fixed in master and should be in the next release (>1.2.0).
164
- image_record.original_metadata = JSON.parse(image_data[:original_metadata].to_json)
138
+ image_record.original_metadata = image_data[:original_metadata].to_hash
165
139
 
166
140
  # Default to "All Rights Reserved" until we find out more about licenses
167
141
  # FIXME: Set the default license in the app config
@@ -1,3 +1,3 @@
1
1
  module Lentil
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -60,7 +60,7 @@ namespace :lentil do
60
60
  raise "Image file already exists, will not overwrite: #{image_file_path}" if File.exist?(image_file_path)
61
61
 
62
62
  image_data = harvester.harvest_image_data(image)
63
-
63
+
64
64
  File.open(image_file_path, "wb") do |f|
65
65
  f.write image_data
66
66
  end
@@ -72,7 +72,7 @@ namespace :lentil do
72
72
  f.write video_data
73
73
  end
74
74
  end
75
-
75
+
76
76
  image.file_harvested_date = DateTime.now
77
77
  image.save
78
78
  puts "Harvested image #{image.id}, #{image_file_path}"
@@ -144,7 +144,7 @@ namespace :lentil do
144
144
  end
145
145
  end
146
146
  end
147
-
147
+
148
148
  desc "Get video urls from videos previously harvested"
149
149
  task :restore_videos, [:image_service] => :environment do |t, args|
150
150
  args.with_defaults(:image_service => 'Instagram')
@@ -153,10 +153,10 @@ namespace :lentil do
153
153
 
154
154
  lentilService = Lentil::Service.unscoped.where(:name => args[:image_service]).first
155
155
  numUpdated = 0;
156
- lentilService.images.unscoped.each do |image|
156
+ lentilService.images.unscoped.find_each do |image|
157
157
  #Skip if media type already known i.e. was properly harvested
158
158
  next if !image.media_type.blank?
159
-
159
+
160
160
  meta = image.original_metadata
161
161
  obj = YAML.load(meta)
162
162
  type = obj["type"]
@@ -175,7 +175,7 @@ namespace :lentil do
175
175
  end
176
176
  puts numUpdated.to_s + " record(s) updated"
177
177
  end
178
-
178
+
179
179
  desc "Dump image metadata for archiving"
180
180
  task :dump_metadata, [:image_service, :base_directory] => :environment do |t, args|
181
181
  args.with_defaults(:image_service => 'Instagram')
@@ -184,7 +184,7 @@ namespace :lentil do
184
184
 
185
185
  lentilService = Lentil::Service.unscoped.where(:name => args[:image_service]).first
186
186
  numArchived = 0;
187
- lentilService.images.unscoped.each do |image|
187
+ lentilService.images.unscoped.find_each do |image|
188
188
  begin
189
189
  raise "Destination directory does not exist or is not a directory: #{base_dir}" unless File.directory?(base_dir)
190
190
 
@@ -199,24 +199,20 @@ namespace :lentil do
199
199
  Rails.logger.error e.message
200
200
  raise e
201
201
  end
202
-
203
- @jsonobj = JSON.parse(image.to_json)
204
- @jsonobj.delete("id")
205
- @jsonobj["tags"] = JSON.parse(image.tags.to_json)
206
- @jsonobj["licenses"] = JSON.parse(image.licenses.to_json)
207
- @jsonobj["licenses"].each do |lic|
208
- lic.delete("id")
209
- end
210
-
211
- @jsonobj["like_votes"] = JSON.parse(image.like_votes.to_json)
212
- @jsonobj["flags"] = JSON.parse(image.flags.to_json)
213
-
214
- @jsonobj["service"] = JSON.parse(image.service.to_json).except("id")
215
- @jsonobj["user"] = JSON.parse(image.user.to_json).except("id", "service_id")
216
-
202
+
203
+ jsonobj = image.serializable_hash
204
+ jsonobj["tags"] = image.tags.all
205
+ jsonobj["licenses"] = image.licenses.all
206
+
207
+ jsonobj["like_votes"] = image.like_votes.all
208
+ jsonobj["flags"] = image.flags.all
209
+
210
+ jsonobj["service"] = image.service
211
+ jsonobj["user"] = image.user
212
+
217
213
  image_file_path += "/#{image.external_identifier}.json"
218
214
  File.open(image_file_path, "w") do |f|
219
- f.write @jsonobj.to_json
215
+ f.write jsonobj.to_json
220
216
  numArchived += 1
221
217
  end
222
218
  end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20141106172834) do
14
+ ActiveRecord::Schema.define(:version => 20150422123522) do
15
15
 
16
16
  create_table "active_admin_comments", :force => true do |t|
17
17
  t.string "resource_id", :null => false
@@ -92,10 +92,22 @@ ActiveRecord::Schema.define(:version => 20141106172834) do
92
92
  t.datetime "last_donor_agreement_failure_date"
93
93
  t.string "media_type"
94
94
  t.string "video_url"
95
+ t.boolean "suppressed", :default => false
95
96
  end
96
97
 
98
+ add_index "lentil_images", ["created_at"], :name => "index_lentil_images_on_created_at"
99
+ add_index "lentil_images", ["do_not_request_donation"], :name => "index_lentil_images_on_do_not_request_donation"
97
100
  add_index "lentil_images", ["external_identifier"], :name => "index_images_on_external_identifier"
101
+ add_index "lentil_images", ["failed_file_checks"], :name => "index_lentil_images_on_failed_file_checks"
102
+ add_index "lentil_images", ["file_last_checked"], :name => "index_lentil_images_on_file_last_checked"
103
+ add_index "lentil_images", ["last_donor_agreement_failure_date"], :name => "index_lentil_images_on_last_donor_agreement_failure_date"
98
104
  add_index "lentil_images", ["moderator_id"], :name => "index_images_on_moderator_id"
105
+ add_index "lentil_images", ["original_datetime"], :name => "index_lentil_images_on_original_datetime"
106
+ add_index "lentil_images", ["staff_like"], :name => "index_lentil_images_on_staff_like"
107
+ add_index "lentil_images", ["state"], :name => "index_lentil_images_on_state"
108
+ add_index "lentil_images", ["suppressed"], :name => "index_lentil_images_on_suppressed"
109
+ add_index "lentil_images", ["updated_at"], :name => "index_lentil_images_on_updated_at"
110
+ add_index "lentil_images", ["user_id"], :name => "index_lentil_images_on_user_id"
99
111
 
100
112
  create_table "lentil_licenses", :force => true do |t|
101
113
  t.string "name"
@@ -91,4 +91,13 @@ class ImageTest < ActiveSupport::TestCase
91
91
  assert_equal image.valid?, true
92
92
  end
93
93
  end
94
+
95
+ test 'Suppressed images should not be returned with approved images' do
96
+ assert_difference 'Lentil::Image.approved.count', -1,
97
+ 'A suppressed image should not be treated as approved' do
98
+ img = Lentil::Image.approved.first
99
+ img.suppressed = true
100
+ img.save
101
+ end
102
+ end
94
103
  end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R82ycNoNfn/
5
+ uri: https://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R82ycNoNfn/
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -10,98 +10,66 @@ http_interactions:
10
10
  Accept-Encoding:
11
11
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
12
  Accept:
13
- - '*/*'
13
+ - "*/*"
14
14
  User-Agent:
15
- - Ruby
15
+ - Mozilla/5.0 (compatible; ruby-oembed/0.8.13)
16
16
  response:
17
17
  status:
18
18
  code: 200
19
19
  message: OK
20
20
  headers:
21
- Cache-Control:
22
- - private, no-cache, no-store, must-revalidate
23
- Content-Language:
24
- - en
25
- Content-Type:
26
- - application/json
27
- Date:
28
- - Thu, 27 Feb 2014 19:42:54 GMT
29
- Expires:
30
- - Sat, 01 Jan 2000 00:00:00 GMT
31
- Pragma:
32
- - no-cache
33
21
  Server:
34
22
  - nginx
35
- Set-Cookie:
36
- - ccode=US; Path=/
37
- - csrftoken=e081cc0702791acd6a3fa8ff8b1a5513; expires=Thu, 26-Feb-2015 19:42:54
38
- GMT; Max-Age=31449600; Path=/
39
- - mid=Uw-VPgAEAAFy8J-uIsSZp_EdCnnn; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
40
- Path=/
41
- Vary:
42
- - Cookie, Accept-Language, Accept-Encoding
43
- Content-Length:
44
- - '249'
45
- Connection:
46
- - keep-alive
47
- body:
48
- encoding: UTF-8
49
- string: '{"provider_url":"http:\/\/instagram.com\/","media_id":"323374234042685415_31727100","title":"Bubble
50
- bubble...","url":"http:\/\/distilleryimage3.ak.instagram.com\/644f52a02d2f11e2b55e22000a9f09fb_7.jpg","author_name":"cazzerson","height":612,"width":612,"version":"1.0","author_url":"http:\/\/instagram.com\/cazzerson","author_id":31727100,"type":"photo","provider_name":"Instagram"}'
51
- http_version:
52
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
53
- - request:
54
- method: get
55
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/ZA1L0nINXi/
56
- body:
57
- encoding: US-ASCII
58
- string: ''
59
- headers:
60
- Accept-Encoding:
61
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
62
- Accept:
63
- - '*/*'
64
- User-Agent:
65
- - Ruby
66
- response:
67
- status:
68
- code: 404
69
- message: NOT FOUND
70
- headers:
71
- Cache-Control:
72
- - private, no-cache, no-store, must-revalidate
23
+ Date:
24
+ - Fri, 24 Apr 2015 14:06:25 GMT
25
+ Content-Type:
26
+ - application/json
73
27
  Content-Language:
74
28
  - en
75
- Content-Type:
76
- - text/html; charset=utf-8
77
- Date:
78
- - Thu, 27 Feb 2014 19:42:54 GMT
79
29
  Expires:
80
30
  - Sat, 01 Jan 2000 00:00:00 GMT
31
+ Vary:
32
+ - Cookie, Accept-Language, Accept-Encoding
81
33
  Pragma:
82
34
  - no-cache
83
- Server:
84
- - nginx
35
+ Cache-Control:
36
+ - private, no-cache, no-store, must-revalidate
85
37
  Set-Cookie:
86
- - ccode=US; Path=/
87
- - csrftoken=c9d44bf3281ffa60168cf219fece1006; expires=Thu, 26-Feb-2015 19:42:54
38
+ - csrftoken=90bcd97d51e11c0c4cfee1df6eaea696; expires=Fri, 22-Apr-2016 14:06:25
88
39
  GMT; Max-Age=31449600; Path=/
89
- - mid=Uw-VPgAEAAE6MIQcBg24mIuWY8fR; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
40
+ - mid=VTpN4QAEAAHAmPRsIL3gjnyQqmLw; expires=Thu, 19-Apr-2035 14:06:25 GMT; Max-Age=630720000;
90
41
  Path=/
91
- Vary:
92
- - Cookie, Accept-Language
93
- Content-Length:
94
- - '34'
95
42
  Connection:
96
43
  - keep-alive
44
+ Content-Length:
45
+ - '1393'
97
46
  body:
98
47
  encoding: UTF-8
99
- string: No Media Match
48
+ string: '{"provider_url":"https:\/\/instagram.com\/","media_id":"323374234042685415_31727100","author_name":"cazzerson","height":null,"thumbnail_url":"https:\/\/igcdn-photos-c-a.akamaihd.net\/hphotos-ak-xaf1\/outbound-distilleryimage3\/t0.0-17\/OBPTH\/644f52a02d2f11e2b55e22000a9f09fb_7.jpg","thumbnail_width":612,"thumbnail_height":612,"provider_name":"Instagram","title":"Bubble
49
+ bubble...","html":"\u003cblockquote class=\"instagram-media\" data-instgrm-captioned
50
+ data-instgrm-version=\"4\" style=\" background:#FFF; border:0; border-radius:3px;
51
+ box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin:
52
+ 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% -
53
+ 2px); width:calc(100% - 2px);\"\u003e\u003cdiv style=\"padding:8px;\"\u003e
54
+ \u003cdiv style=\" background:#F8F8F8; line-height:0; margin-top:40px; padding:50%
55
+ 0; text-align:center; width:100%;\"\u003e \u003cdiv style=\" background:url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf\/\/42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB\/lQPb79drWOyJVa\/DAvg9B\/rLB4cC+Nqgdz\/TvBbBnr6GBReqn\/nRmDgaQEej7WhonozjF+Y2I\/fZou\/qAAAAAElFTkSuQmCC);
56
+ display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px;
57
+ width:44px;\"\u003e\u003c\/div\u003e\u003c\/div\u003e \u003cp style=\" margin:8px
58
+ 0 0 0; padding:0 4px;\"\u003e \u003ca href=\"https:\/\/instagram.com\/p\/R82ycNoNfn\/\"
59
+ style=\" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal;
60
+ font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;\"
61
+ target=\"_top\"\u003eBubble bubble...\u003c\/a\u003e\u003c\/p\u003e \u003cp
62
+ style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px;
63
+ margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center;
64
+ text-overflow:ellipsis; white-space:nowrap;\"\u003eA photo posted by @cazzerson
65
+ on \u003ctime style=\" font-family:Arial,sans-serif; font-size:14px; line-height:17px;\"
66
+ datetime=\"2012-11-13T01:13:54+00:00\"\u003eNov 12, 2012 at 5:13pm PST\u003c\/time\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/blockquote\u003e\n\u003cscript
67
+ async defer src=\"\/\/platform.instagram.com\/en_US\/embeds.js\"\u003e\u003c\/script\u003e","width":658,"version":"1.0","author_url":"https:\/\/instagram.com\/cazzerson","author_id":31727100,"type":"rich"}'
100
68
  http_version:
101
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
69
+ recorded_at: Fri, 24 Apr 2015 14:06:25 GMT
102
70
  - request:
103
71
  method: get
104
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/k5LhuktiSC/
72
+ uri: https://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R0NyCsK_xf/
105
73
  body:
106
74
  encoding: US-ASCII
107
75
  string: ''
@@ -109,49 +77,66 @@ http_interactions:
109
77
  Accept-Encoding:
110
78
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
111
79
  Accept:
112
- - '*/*'
80
+ - "*/*"
113
81
  User-Agent:
114
- - Ruby
82
+ - Mozilla/5.0 (compatible; ruby-oembed/0.8.13)
115
83
  response:
116
84
  status:
117
85
  code: 200
118
86
  message: OK
119
87
  headers:
120
- Cache-Control:
121
- - private, no-cache, no-store, must-revalidate
122
- Content-Language:
123
- - en
88
+ Server:
89
+ - nginx
90
+ Date:
91
+ - Fri, 24 Apr 2015 14:06:25 GMT
124
92
  Content-Type:
125
93
  - application/json
126
- Date:
127
- - Thu, 27 Feb 2014 19:42:54 GMT
94
+ Content-Language:
95
+ - en
128
96
  Expires:
129
97
  - Sat, 01 Jan 2000 00:00:00 GMT
98
+ Vary:
99
+ - Cookie, Accept-Language, Accept-Encoding
130
100
  Pragma:
131
101
  - no-cache
132
- Server:
133
- - nginx
102
+ Cache-Control:
103
+ - private, no-cache, no-store, must-revalidate
134
104
  Set-Cookie:
135
- - ccode=US; Path=/
136
- - csrftoken=0433d840e863edb10666afa87b2a068b; expires=Thu, 26-Feb-2015 19:42:54
105
+ - csrftoken=77fceb42170f31889c0d18c1b719de25; expires=Fri, 22-Apr-2016 14:06:25
137
106
  GMT; Max-Age=31449600; Path=/
138
- - mid=Uw-VPgAEAAH3fw8MDboIOffN0zE2; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
107
+ - mid=VTpN4QAEAAHu4KvWNVG6zftRYgfJ; expires=Thu, 19-Apr-2035 14:06:25 GMT; Max-Age=630720000;
139
108
  Path=/
140
- Vary:
141
- - Cookie, Accept-Language, Accept-Encoding
142
- Content-Length:
143
- - '245'
144
109
  Connection:
145
110
  - keep-alive
111
+ Content-Length:
112
+ - '1351'
146
113
  body:
147
114
  encoding: UTF-8
148
- string: '{"provider_url":"http:\/\/instagram.com\/","media_id":"664613116276253826_1128023464","title":"six
149
- #hunttesting","url":"http:\/\/distilleryimage8.ak.instagram.com\/28b09b209f2811e38e831293e346cce0_8.jpg","author_name":"bddnc","height":640,"width":640,"version":"1.0","author_url":"http:\/\/instagram.com\/bddnc","author_id":1128023464,"type":"photo","provider_name":"Instagram"}'
115
+ string: '{"provider_url":"https:\/\/instagram.com\/","media_id":"320942086917192799_244467814","author_name":"corylown","height":null,"thumbnail_url":"https:\/\/distilleryimage7-a.akamaihd.net\/55dcf0ba2a8c11e29cc822000a1f96e3_7.jpg","thumbnail_width":612,"thumbnail_height":612,"provider_name":"Instagram","title":"Tethered","html":"\u003cblockquote
116
+ class=\"instagram-media\" data-instgrm-captioned data-instgrm-version=\"4\"
117
+ style=\" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px
118
+ 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px;
119
+ padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100%
120
+ - 2px);\"\u003e\u003cdiv style=\"padding:8px;\"\u003e \u003cdiv style=\" background:#F8F8F8;
121
+ line-height:0; margin-top:40px; padding:50% 0; text-align:center; width:100%;\"\u003e
122
+ \u003cdiv style=\" background:url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf\/\/42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB\/lQPb79drWOyJVa\/DAvg9B\/rLB4cC+Nqgdz\/TvBbBnr6GBReqn\/nRmDgaQEej7WhonozjF+Y2I\/fZou\/qAAAAAElFTkSuQmCC);
123
+ display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px;
124
+ width:44px;\"\u003e\u003c\/div\u003e\u003c\/div\u003e \u003cp style=\" margin:8px
125
+ 0 0 0; padding:0 4px;\"\u003e \u003ca href=\"https:\/\/instagram.com\/p\/R0NyCsK_xf\/\"
126
+ style=\" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal;
127
+ font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;\"
128
+ target=\"_top\"\u003eTethered\u003c\/a\u003e\u003c\/p\u003e \u003cp style=\"
129
+ color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px;
130
+ margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center;
131
+ text-overflow:ellipsis; white-space:nowrap;\"\u003eA photo posted by @corylown
132
+ on \u003ctime style=\" font-family:Arial,sans-serif; font-size:14px; line-height:17px;\"
133
+ datetime=\"2012-11-09T16:41:39+00:00\"\u003eNov 9, 2012 at 8:41am PST\u003c\/time\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/blockquote\u003e\n\u003cscript
134
+ async defer src=\"\/\/platform.instagram.com\/en_US\/embeds.js\"\u003e\u003c\/script\u003e","width":658,"version":"1.0","author_url":"https:\/\/instagram.com\/corylown","author_id":244467814,"type":"rich"}'
150
135
  http_version:
151
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
136
+ recorded_at: Fri, 24 Apr 2015 14:06:25 GMT
152
137
  - request:
153
138
  method: get
154
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R82ycNoNfn/
139
+ uri: https://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R82ycNoNfn/
155
140
  body:
156
141
  encoding: US-ASCII
157
142
  string: ''
@@ -159,98 +144,66 @@ http_interactions:
159
144
  Accept-Encoding:
160
145
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
161
146
  Accept:
162
- - '*/*'
147
+ - "*/*"
163
148
  User-Agent:
164
- - Ruby
149
+ - Mozilla/5.0 (compatible; ruby-oembed/0.8.13)
165
150
  response:
166
151
  status:
167
152
  code: 200
168
153
  message: OK
169
154
  headers:
170
- Cache-Control:
171
- - private, no-cache, no-store, must-revalidate
172
- Content-Language:
173
- - en
174
- Content-Type:
175
- - application/json
176
- Date:
177
- - Thu, 27 Feb 2014 19:42:54 GMT
178
- Expires:
179
- - Sat, 01 Jan 2000 00:00:00 GMT
180
- Pragma:
181
- - no-cache
182
155
  Server:
183
156
  - nginx
184
- Set-Cookie:
185
- - ccode=US; Path=/
186
- - csrftoken=55845d2b97bc7fb8c3f8f9d4d3fe9409; expires=Thu, 26-Feb-2015 19:42:54
187
- GMT; Max-Age=31449600; Path=/
188
- - mid=Uw-VPgAEAAEij81IRus_AlKNWNP7; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
189
- Path=/
190
- Vary:
191
- - Cookie, Accept-Language, Accept-Encoding
192
- Content-Length:
193
- - '249'
194
- Connection:
195
- - keep-alive
196
- body:
197
- encoding: UTF-8
198
- string: '{"provider_url":"http:\/\/instagram.com\/","media_id":"323374234042685415_31727100","title":"Bubble
199
- bubble...","url":"http:\/\/distilleryimage3.ak.instagram.com\/644f52a02d2f11e2b55e22000a9f09fb_7.jpg","author_name":"cazzerson","height":612,"width":612,"version":"1.0","author_url":"http:\/\/instagram.com\/cazzerson","author_id":31727100,"type":"photo","provider_name":"Instagram"}'
200
- http_version:
201
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
202
- - request:
203
- method: get
204
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/ZA1L0nINXi/
205
- body:
206
- encoding: US-ASCII
207
- string: ''
208
- headers:
209
- Accept-Encoding:
210
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
211
- Accept:
212
- - '*/*'
213
- User-Agent:
214
- - Ruby
215
- response:
216
- status:
217
- code: 404
218
- message: NOT FOUND
219
- headers:
220
- Cache-Control:
221
- - private, no-cache, no-store, must-revalidate
157
+ Date:
158
+ - Fri, 24 Apr 2015 14:06:25 GMT
159
+ Content-Type:
160
+ - application/json
222
161
  Content-Language:
223
162
  - en
224
- Content-Type:
225
- - text/html; charset=utf-8
226
- Date:
227
- - Thu, 27 Feb 2014 19:42:54 GMT
228
163
  Expires:
229
164
  - Sat, 01 Jan 2000 00:00:00 GMT
165
+ Vary:
166
+ - Cookie, Accept-Language, Accept-Encoding
230
167
  Pragma:
231
168
  - no-cache
232
- Server:
233
- - nginx
169
+ Cache-Control:
170
+ - private, no-cache, no-store, must-revalidate
234
171
  Set-Cookie:
235
- - ccode=US; Path=/
236
- - csrftoken=d6266caf663f9909c87673d4d8f895a8; expires=Thu, 26-Feb-2015 19:42:54
172
+ - csrftoken=a357ae75d73113c0ea09f6a5920acacc; expires=Fri, 22-Apr-2016 14:06:25
237
173
  GMT; Max-Age=31449600; Path=/
238
- - mid=Uw-VPgAEAAE-mydLNVv49vMpmJT4; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
174
+ - mid=VTpN4QAEAAGkXM9mXRPGp1GE9UtC; expires=Thu, 19-Apr-2035 14:06:25 GMT; Max-Age=630720000;
239
175
  Path=/
240
- Vary:
241
- - Cookie, Accept-Language
242
- Content-Length:
243
- - '34'
244
176
  Connection:
245
177
  - keep-alive
178
+ Content-Length:
179
+ - '1393'
246
180
  body:
247
181
  encoding: UTF-8
248
- string: No Media Match
182
+ string: '{"provider_url":"https:\/\/instagram.com\/","media_id":"323374234042685415_31727100","author_name":"cazzerson","height":null,"thumbnail_url":"https:\/\/igcdn-photos-c-a.akamaihd.net\/hphotos-ak-xaf1\/outbound-distilleryimage3\/t0.0-17\/OBPTH\/644f52a02d2f11e2b55e22000a9f09fb_7.jpg","thumbnail_width":612,"thumbnail_height":612,"provider_name":"Instagram","title":"Bubble
183
+ bubble...","html":"\u003cblockquote class=\"instagram-media\" data-instgrm-captioned
184
+ data-instgrm-version=\"4\" style=\" background:#FFF; border:0; border-radius:3px;
185
+ box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin:
186
+ 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% -
187
+ 2px); width:calc(100% - 2px);\"\u003e\u003cdiv style=\"padding:8px;\"\u003e
188
+ \u003cdiv style=\" background:#F8F8F8; line-height:0; margin-top:40px; padding:50%
189
+ 0; text-align:center; width:100%;\"\u003e \u003cdiv style=\" background:url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf\/\/42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB\/lQPb79drWOyJVa\/DAvg9B\/rLB4cC+Nqgdz\/TvBbBnr6GBReqn\/nRmDgaQEej7WhonozjF+Y2I\/fZou\/qAAAAAElFTkSuQmCC);
190
+ display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px;
191
+ width:44px;\"\u003e\u003c\/div\u003e\u003c\/div\u003e \u003cp style=\" margin:8px
192
+ 0 0 0; padding:0 4px;\"\u003e \u003ca href=\"https:\/\/instagram.com\/p\/R82ycNoNfn\/\"
193
+ style=\" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal;
194
+ font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;\"
195
+ target=\"_top\"\u003eBubble bubble...\u003c\/a\u003e\u003c\/p\u003e \u003cp
196
+ style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px;
197
+ margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center;
198
+ text-overflow:ellipsis; white-space:nowrap;\"\u003eA photo posted by @cazzerson
199
+ on \u003ctime style=\" font-family:Arial,sans-serif; font-size:14px; line-height:17px;\"
200
+ datetime=\"2012-11-13T01:13:54+00:00\"\u003eNov 12, 2012 at 5:13pm PST\u003c\/time\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/blockquote\u003e\n\u003cscript
201
+ async defer src=\"\/\/platform.instagram.com\/en_US\/embeds.js\"\u003e\u003c\/script\u003e","width":658,"version":"1.0","author_url":"https:\/\/instagram.com\/cazzerson","author_id":31727100,"type":"rich"}'
249
202
  http_version:
250
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
203
+ recorded_at: Fri, 24 Apr 2015 14:06:25 GMT
251
204
  - request:
252
205
  method: get
253
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R0NyCsK_xf/
206
+ uri: https://api.instagram.com/oembed?format=json&url=http://instagram.com/p/k5LhuktiSC/
254
207
  body:
255
208
  encoding: US-ASCII
256
209
  string: ''
@@ -258,43 +211,61 @@ http_interactions:
258
211
  Accept-Encoding:
259
212
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
260
213
  Accept:
261
- - '*/*'
214
+ - "*/*"
262
215
  User-Agent:
263
- - Ruby
216
+ - Mozilla/5.0 (compatible; ruby-oembed/0.8.13)
264
217
  response:
265
218
  status:
266
219
  code: 200
267
220
  message: OK
268
221
  headers:
269
- Cache-Control:
270
- - private, no-cache, no-store, must-revalidate
271
- Content-Language:
272
- - en
222
+ Server:
223
+ - nginx
224
+ Date:
225
+ - Fri, 24 Apr 2015 14:06:26 GMT
273
226
  Content-Type:
274
227
  - application/json
275
- Date:
276
- - Thu, 27 Feb 2014 19:42:54 GMT
228
+ Content-Language:
229
+ - en
277
230
  Expires:
278
231
  - Sat, 01 Jan 2000 00:00:00 GMT
232
+ Vary:
233
+ - Cookie, Accept-Language, Accept-Encoding
279
234
  Pragma:
280
235
  - no-cache
281
- Server:
282
- - nginx
236
+ Cache-Control:
237
+ - private, no-cache, no-store, must-revalidate
283
238
  Set-Cookie:
284
- - ccode=US; Path=/
285
- - csrftoken=65113997a68a232330752b7f4ecfc78e; expires=Thu, 26-Feb-2015 19:42:54
239
+ - csrftoken=06d3bb3b1f7a4ba826522411e4285e54; expires=Fri, 22-Apr-2016 14:06:26
286
240
  GMT; Max-Age=31449600; Path=/
287
- - mid=Uw-VPgAEAAFdCNfvK9phYZ52i0ao; expires=Wed, 22-Feb-2034 19:42:54 GMT; Max-Age=630720000;
241
+ - mid=VTpN4gAEAAFyrp01nR8WxGLcwi82; expires=Thu, 19-Apr-2035 14:06:26 GMT; Max-Age=630720000;
288
242
  Path=/
289
- Vary:
290
- - Cookie, Accept-Language, Accept-Encoding
291
- Content-Length:
292
- - '243'
293
243
  Connection:
294
244
  - keep-alive
245
+ Content-Length:
246
+ - '1368'
295
247
  body:
296
248
  encoding: UTF-8
297
- string: '{"provider_url":"http:\/\/instagram.com\/","media_id":"320942086917192799_244467814","title":"Tethered","url":"http:\/\/distilleryimage7.ak.instagram.com\/55dcf0ba2a8c11e29cc822000a1f96e3_7.jpg","author_name":"corylown","height":612,"width":612,"version":"1.0","author_url":"http:\/\/instagram.com\/corylown","author_id":244467814,"type":"photo","provider_name":"Instagram"}'
249
+ string: '{"provider_url":"https:\/\/instagram.com\/","media_id":"664613116276253826_1128023464","author_name":"bddnc","height":null,"thumbnail_url":"https:\/\/scontent.cdninstagram.com\/hphotos-xfp1\/t51.2885-15\/1725673_1407639456161936_589510248_n.jpg","thumbnail_width":640,"thumbnail_height":640,"provider_name":"Instagram","title":"six
250
+ #hunttesting","html":"\u003cblockquote class=\"instagram-media\" data-instgrm-captioned
251
+ data-instgrm-version=\"4\" style=\" background:#FFF; border:0; border-radius:3px;
252
+ box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin:
253
+ 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% -
254
+ 2px); width:calc(100% - 2px);\"\u003e\u003cdiv style=\"padding:8px;\"\u003e
255
+ \u003cdiv style=\" background:#F8F8F8; line-height:0; margin-top:40px; padding:50%
256
+ 0; text-align:center; width:100%;\"\u003e \u003cdiv style=\" background:url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf\/\/42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB\/lQPb79drWOyJVa\/DAvg9B\/rLB4cC+Nqgdz\/TvBbBnr6GBReqn\/nRmDgaQEej7WhonozjF+Y2I\/fZou\/qAAAAAElFTkSuQmCC);
257
+ display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px;
258
+ width:44px;\"\u003e\u003c\/div\u003e\u003c\/div\u003e \u003cp style=\" margin:8px
259
+ 0 0 0; padding:0 4px;\"\u003e \u003ca href=\"https:\/\/instagram.com\/p\/k5LhuktiSC\/\"
260
+ style=\" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal;
261
+ font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;\"
262
+ target=\"_top\"\u003esix #hunttesting\u003c\/a\u003e\u003c\/p\u003e \u003cp
263
+ style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px;
264
+ margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center;
265
+ text-overflow:ellipsis; white-space:nowrap;\"\u003eA photo posted by @bddnc
266
+ on \u003ctime style=\" font-family:Arial,sans-serif; font-size:14px; line-height:17px;\"
267
+ datetime=\"2014-02-26T20:54:39+00:00\"\u003eFeb 26, 2014 at 12:54pm PST\u003c\/time\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/blockquote\u003e\n\u003cscript
268
+ async defer src=\"\/\/platform.instagram.com\/en_US\/embeds.js\"\u003e\u003c\/script\u003e","width":658,"version":"1.0","author_url":"https:\/\/instagram.com\/bddnc","author_id":1128023464,"type":"rich"}'
298
269
  http_version:
299
- recorded_at: Thu, 27 Feb 2014 19:42:54 GMT
300
- recorded_with: VCR 2.7.0
270
+ recorded_at: Fri, 24 Apr 2015 14:06:26 GMT
271
+ recorded_with: VCR 2.9.3
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R0NyCsK_xf/
5
+ uri: https://api.instagram.com/oembed?format=json&url=http://instagram.com/p/R0NyCsK_xf/
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -10,43 +10,61 @@ http_interactions:
10
10
  Accept-Encoding:
11
11
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
12
  Accept:
13
- - '*/*'
13
+ - "*/*"
14
14
  User-Agent:
15
- - Ruby
15
+ - Mozilla/5.0 (compatible; ruby-oembed/0.8.13)
16
16
  response:
17
17
  status:
18
18
  code: 200
19
19
  message: OK
20
20
  headers:
21
- Cache-Control:
22
- - private, no-cache, no-store, must-revalidate
23
- Content-Language:
24
- - en
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Fri, 24 Apr 2015 14:02:19 GMT
25
25
  Content-Type:
26
26
  - application/json
27
- Date:
28
- - Wed, 26 Feb 2014 21:56:54 GMT
27
+ Content-Language:
28
+ - en
29
29
  Expires:
30
30
  - Sat, 01 Jan 2000 00:00:00 GMT
31
+ Vary:
32
+ - Cookie, Accept-Language, Accept-Encoding
31
33
  Pragma:
32
34
  - no-cache
33
- Server:
34
- - nginx
35
+ Cache-Control:
36
+ - private, no-cache, no-store, must-revalidate
35
37
  Set-Cookie:
36
- - ccode=US; Path=/
37
- - csrftoken=e2b7546b8f6205ce3b63f01ddd5ed9e8; expires=Wed, 25-Feb-2015 21:56:54
38
+ - csrftoken=38177ebb04cbab402bd6873db2c70d5c; expires=Fri, 22-Apr-2016 14:02:19
38
39
  GMT; Max-Age=31449600; Path=/
39
- - mid=Uw5jJgAEAAGFSpf5tlLPwEjb_CCP; expires=Tue, 21-Feb-2034 21:56:54 GMT; Max-Age=630720000;
40
+ - mid=VTpM6wAEAAFkIMLVGldYscBUFcuc; expires=Thu, 19-Apr-2035 14:02:19 GMT; Max-Age=630720000;
40
41
  Path=/
41
- Vary:
42
- - Cookie, Accept-Language, Accept-Encoding
43
- Content-Length:
44
- - '243'
45
42
  Connection:
46
43
  - keep-alive
44
+ Content-Length:
45
+ - '1351'
47
46
  body:
48
47
  encoding: UTF-8
49
- string: '{"provider_url":"http:\/\/instagram.com\/","media_id":"320942086917192799_244467814","title":"Tethered","url":"http:\/\/distilleryimage7.ak.instagram.com\/55dcf0ba2a8c11e29cc822000a1f96e3_7.jpg","author_name":"corylown","height":612,"width":612,"version":"1.0","author_url":"http:\/\/instagram.com\/corylown","author_id":244467814,"type":"photo","provider_name":"Instagram"}'
48
+ string: '{"provider_url":"https:\/\/instagram.com\/","media_id":"320942086917192799_244467814","author_name":"corylown","height":null,"thumbnail_url":"https:\/\/distilleryimage7-a.akamaihd.net\/55dcf0ba2a8c11e29cc822000a1f96e3_7.jpg","thumbnail_width":612,"thumbnail_height":612,"provider_name":"Instagram","title":"Tethered","html":"\u003cblockquote
49
+ class=\"instagram-media\" data-instgrm-captioned data-instgrm-version=\"4\"
50
+ style=\" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px
51
+ 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px;
52
+ padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100%
53
+ - 2px);\"\u003e\u003cdiv style=\"padding:8px;\"\u003e \u003cdiv style=\" background:#F8F8F8;
54
+ line-height:0; margin-top:40px; padding:50% 0; text-align:center; width:100%;\"\u003e
55
+ \u003cdiv style=\" background:url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf\/\/42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB\/lQPb79drWOyJVa\/DAvg9B\/rLB4cC+Nqgdz\/TvBbBnr6GBReqn\/nRmDgaQEej7WhonozjF+Y2I\/fZou\/qAAAAAElFTkSuQmCC);
56
+ display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px;
57
+ width:44px;\"\u003e\u003c\/div\u003e\u003c\/div\u003e \u003cp style=\" margin:8px
58
+ 0 0 0; padding:0 4px;\"\u003e \u003ca href=\"https:\/\/instagram.com\/p\/R0NyCsK_xf\/\"
59
+ style=\" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal;
60
+ font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;\"
61
+ target=\"_top\"\u003eTethered\u003c\/a\u003e\u003c\/p\u003e \u003cp style=\"
62
+ color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px;
63
+ margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center;
64
+ text-overflow:ellipsis; white-space:nowrap;\"\u003eA photo posted by @corylown
65
+ on \u003ctime style=\" font-family:Arial,sans-serif; font-size:14px; line-height:17px;\"
66
+ datetime=\"2012-11-09T16:41:39+00:00\"\u003eNov 9, 2012 at 8:41am PST\u003c\/time\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/blockquote\u003e\n\u003cscript
67
+ async defer src=\"\/\/platform.instagram.com\/en_US\/embeds.js\"\u003e\u003c\/script\u003e","width":658,"version":"1.0","author_url":"https:\/\/instagram.com\/corylown","author_id":244467814,"type":"rich"}'
50
68
  http_version:
51
- recorded_at: Wed, 26 Feb 2014 21:56:54 GMT
52
- recorded_with: VCR 2.7.0
69
+ recorded_at: Fri, 24 Apr 2015 14:02:19 GMT
70
+ recorded_with: VCR 2.9.3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lentil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Casden
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-03-04 00:00:00.000000000 Z
14
+ date: 2015-04-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -111,6 +111,20 @@ dependencies:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
113
  version: 1.1.2
114
+ - !ruby/object:Gem::Dependency
115
+ name: hashie
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 3.4.1
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 3.4.1
114
128
  - !ruby/object:Gem::Dependency
115
129
  name: modernizr-rails
116
130
  requirement: !ruby/object:Gem::Requirement
@@ -285,14 +299,14 @@ dependencies:
285
299
  requirements:
286
300
  - - "~>"
287
301
  - !ruby/object:Gem::Version
288
- version: 0.6.6
302
+ version: 0.7.1
289
303
  type: :runtime
290
304
  prerelease: false
291
305
  version_requirements: !ruby/object:Gem::Requirement
292
306
  requirements:
293
307
  - - "~>"
294
308
  - !ruby/object:Gem::Version
295
- version: 0.6.6
309
+ version: 0.7.1
296
310
  - !ruby/object:Gem::Dependency
297
311
  name: kaminari
298
312
  requirement: !ruby/object:Gem::Requirement
@@ -307,6 +321,34 @@ dependencies:
307
321
  - - "~>"
308
322
  - !ruby/object:Gem::Version
309
323
  version: 0.16.1
324
+ - !ruby/object:Gem::Dependency
325
+ name: oj
326
+ requirement: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - "~>"
329
+ - !ruby/object:Gem::Version
330
+ version: 2.12.4
331
+ type: :runtime
332
+ prerelease: false
333
+ version_requirements: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - "~>"
336
+ - !ruby/object:Gem::Version
337
+ version: 2.12.4
338
+ - !ruby/object:Gem::Dependency
339
+ name: oj_mimic_json
340
+ requirement: !ruby/object:Gem::Requirement
341
+ requirements:
342
+ - - "~>"
343
+ - !ruby/object:Gem::Version
344
+ version: 1.0.1
345
+ type: :runtime
346
+ prerelease: false
347
+ version_requirements: !ruby/object:Gem::Requirement
348
+ requirements:
349
+ - - "~>"
350
+ - !ruby/object:Gem::Version
351
+ version: 1.0.1
310
352
  - !ruby/object:Gem::Dependency
311
353
  name: sqlite3
312
354
  requirement: !ruby/object:Gem::Requirement
@@ -397,14 +439,14 @@ dependencies:
397
439
  requirements:
398
440
  - - "~>"
399
441
  - !ruby/object:Gem::Version
400
- version: 0.9.0
442
+ version: 0.10.0
401
443
  type: :development
402
444
  prerelease: false
403
445
  version_requirements: !ruby/object:Gem::Requirement
404
446
  requirements:
405
447
  - - "~>"
406
448
  - !ruby/object:Gem::Version
407
- version: 0.9.0
449
+ version: 0.10.0
408
450
  - !ruby/object:Gem::Dependency
409
451
  name: pry-rails
410
452
  requirement: !ruby/object:Gem::Requirement
@@ -467,14 +509,14 @@ dependencies:
467
509
  requirements:
468
510
  - - "~>"
469
511
  - !ruby/object:Gem::Version
470
- version: 1.3.0
512
+ version: 1.5.1
471
513
  type: :development
472
514
  prerelease: false
473
515
  version_requirements: !ruby/object:Gem::Requirement
474
516
  requirements:
475
517
  - - "~>"
476
518
  - !ruby/object:Gem::Version
477
- version: 1.3.0
519
+ version: 1.5.1
478
520
  - !ruby/object:Gem::Dependency
479
521
  name: yard
480
522
  requirement: !ruby/object:Gem::Requirement
@@ -647,6 +689,8 @@ files:
647
689
  - db/migrate/20130506205348_add_do_not_request_donation_to_lentil_images.rb
648
690
  - db/migrate/20131205181204_add_last_donor_agreement_failure_date_to_lentil_images.rb
649
691
  - db/migrate/20141106172834_add_type_to_images.rb
692
+ - db/migrate/20150311004606_add_suppressed_to_images.rb
693
+ - db/migrate/20150422123522_add_indexes_to_images.rb
650
694
  - db/seeds.rb
651
695
  - lib/generators/lentil/USAGE
652
696
  - lib/generators/lentil/install_generator.rb