Class: RageRender::WebcomicDrop

Inherits:
Jekyll::Drops::Drop
  • Object
show all
Extended by:
Forwardable, Pipettes
Defined in:
lib/ragerender/jekyll.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Pipettes

clean_payload, def_data_delegator, def_image_metadata, def_loop, def_safe_delegator, extended, loops

Class Method Details

.def_config_delegator(source, target, default = nil) ⇒ Object



137
138
139
# File 'lib/ragerender/jekyll.rb', line 137

def self.def_config_delegator source, target, default=nil
  define_method(target) { @obj.site.config.fetch(source.to_s, default) }
end

Instance Method Details



174
175
176
# File 'lib/ragerender/jekyll.rb', line 174

def addsubscriptionlink
  "https://comicfury.com/comic.php?action=addsubscription&url=#{webcomicsub}"
end


212
213
214
# File 'lib/ragerender/jekyll.rb', line 212

def banner
  Pathname.new(@obj.site.baseurl || '/').join(@obj.site.config['banner'] || '').to_path
end

#cfscriptcodeObject



260
261
262
263
264
265
266
# File 'lib/ragerender/jekyll.rb', line 260

def cfscriptcode
  <<~HTML
    <script type="text/javascript">
      function jumpTo(place) { window.location = place; }
    </script>
  HTML
end

#comicprofileObject



170
171
172
# File 'lib/ragerender/jekyll.rb', line 170

def comicprofile
  "https://comicfury.com/comicprofile.php?url=#{webcomicsub}"
end

#comicsnumObject



233
234
235
# File 'lib/ragerender/jekyll.rb', line 233

def comicsnum
  @obj.site.collections['comics'].docs.size
end

#copyrightsObject



208
209
210
# File 'lib/ragerender/jekyll.rb', line 208

def copyrights
  escape @obj.site.config.fetch('copyrights', '').gsub('[year]', Date.today.year.to_s)
end

#currentdateObject



323
324
325
# File 'lib/ragerender/jekyll.rb', line 323

def currentdate
  comicfury_date Date.today
end

#dayObject



327
328
329
# File 'lib/ragerender/jekyll.rb', line 327

def day
  Date.today.day
end

#extrapagesObject



250
251
252
253
254
255
256
257
258
# File 'lib/ragerender/jekyll.rb', line 250

def extrapages
  @obj.site.pages.reject {|page| page.data['hidden'] }.map do |page|
    {
      'link' => page.url,
      'title' => escape(page.data['title']),
      'foldername' => File.basename(URI::parse(page.url).path, '.*'),
    }
  end
end

#fallback_dataObject



339
340
341
# File 'lib/ragerender/jekyll.rb', line 339

def fallback_data
  {}
end

#hasblogsObject



225
226
227
# File 'lib/ragerender/jekyll.rb', line 225

def hasblogs
  @obj.site.posts.docs.any?
end

#hascomicsObject



229
230
231
# File 'lib/ragerender/jekyll.rb', line 229

def hascomics
  comicsnum > 0
end

#hidefromhostObject



245
246
247
# File 'lib/ragerender/jekyll.rb', line 245

def hidefromhost
  false
end

#isarchiveObject



287
288
289
# File 'lib/ragerender/jekyll.rb', line 287

def isarchive
  @obj.data['layout'] == 'archive'
end

#isblogObject



299
300
301
# File 'lib/ragerender/jekyll.rb', line 299

def isblog
  @obj.data['layout'] == 'blog-archive'
end

#iscomicpageObject



295
296
297
# File 'lib/ragerender/jekyll.rb', line 295

def iscomicpage
  @obj.data['layout'] == 'comic-page'
end

#iscomicrelatedpageObject



315
316
317
# File 'lib/ragerender/jekyll.rb', line 315

def iscomicrelatedpage
  @obj.type == :comics || @obj.data['layout'] == 'overview'
end

#iserrorpageObject



307
308
309
# File 'lib/ragerender/jekyll.rb', line 307

def iserrorpage
  @obj.data['layout'] == 'error-page'
end

#isextrapageObject



319
320
321
# File 'lib/ragerender/jekyll.rb', line 319

def isextrapage
  @obj.type == :pages && @obj.data['hidden'] != true
end

#isfrontpageObject



311
312
313
# File 'lib/ragerender/jekyll.rb', line 311

def isfrontpage
  @obj.data['slug'] == 'frontpage'
end

#isoverviewObject



303
304
305
# File 'lib/ragerender/jekyll.rb', line 303

def isoverview
  @obj.data['layout'] == 'overview'
end

#issearchObject



291
292
293
# File 'lib/ragerender/jekyll.rb', line 291

def issearch
  @obj.data['layout'] == 'search'
end

#lastupdateObject



200
201
202
# File 'lib/ragerender/jekyll.rb', line 200

def lastupdate
  comicfury_date Time.now
end

#lastupdatedmyObject



204
205
206
# File 'lib/ragerender/jekyll.rb', line 204

def lastupdatedmy
  Time.now.strftime('%d/%m/%Y')
end

#layoutcssObject



275
276
277
278
279
280
281
# File 'lib/ragerender/jekyll.rb', line 275

def layoutcss
  <<~HTML
  <style type="text/css">
    #{css}
  </style>
  HTML
end

#monthObject



331
332
333
# File 'lib/ragerender/jekyll.rb', line 331

def month
  Date.today.month
end

#pagetitleObject



283
284
285
# File 'lib/ragerender/jekyll.rb', line 283

def pagetitle
  escape @obj.data['title']
end

#usechaptersObject



237
238
239
# File 'lib/ragerender/jekyll.rb', line 237

def usechapters
  @obj.site.collections['comics'].docs.any? {|comic| comic.data.include? 'chapter' }
end

#webcomicactivitystatusObject



162
163
164
# File 'lib/ragerender/jekyll.rb', line 162

def webcomicactivitystatus
  escape @obj.site.config['status']&.capitalize
end

#webcomicavatarObject



216
217
218
# File 'lib/ragerender/jekyll.rb', line 216

def webcomicavatar
  Pathname.new(@obj.site.baseurl || '/').join(@obj.site.config['webcomicavatar'] || '').to_path
end

#webcomicdescriptionObject



158
159
160
# File 'lib/ragerender/jekyll.rb', line 158

def webcomicdescription
  escape @obj.site.config['description']
end

#webcomicgenreObject



188
189
190
# File 'lib/ragerender/jekyll.rb', line 188

def webcomicgenre
  (webcomicgenres.first || {})['genre_name']
end

#webcomicgenresObject



179
180
181
182
183
184
185
186
# File 'lib/ragerender/jekyll.rb', line 179

def webcomicgenres
  (@obj.site.config['genres'] || []).map do |g|
    {
      'genre_name' => escape(g),
      'genre_link' => "https://comicfury.com/search.php?vr=1&query=&tags=#{g.downcase.gsub(/[^a-z]/, '')}"
    }
  end
end

#webcomiciconObject



220
221
222
# File 'lib/ragerender/jekyll.rb', line 220

def webcomicicon
  @obj.site.config.fetch('webcomicavatar', '')
end

#webcomicidObject



146
147
148
# File 'lib/ragerender/jekyll.rb', line 146

def webcomicid
  @obj.site.config['id'] || @obj.site.hash
end

#webcomicnameObject



150
151
152
# File 'lib/ragerender/jekyll.rb', line 150

def webcomicname
  escape @obj.site.config['title']
end

#webcomicratingObject



196
197
198
# File 'lib/ragerender/jekyll.rb', line 196

def webcomicrating
  @obj.site.config['rating']
end

#webcomicsloganObject



154
155
156
# File 'lib/ragerender/jekyll.rb', line 154

def webcomicslogan
  escape @obj.site.config['slogan']
end

#webcomicsubObject



166
167
168
# File 'lib/ragerender/jekyll.rb', line 166

def webcomicsub
  URI.parse(@obj.site.config['url']).host.split.first
end

#webcomicurlObject



192
193
194
# File 'lib/ragerender/jekyll.rb', line 192

def webcomicurl
  @obj.site.config['url']
end

#yearObject



335
336
337
# File 'lib/ragerender/jekyll.rb', line 335

def year
  Date.today.year
end