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_pages, def_safe_delegator, extended, loops, own_methods

Class Method Details

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



134
135
136
# File 'lib/ragerender/jekyll.rb', line 134

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

Instance Method Details



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

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


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

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

#cfscriptcodeObject



257
258
259
260
261
262
263
# File 'lib/ragerender/jekyll.rb', line 257

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

#comicprofileObject



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

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

#comicsnumObject



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

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

#copyrightsObject



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

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

#currentdateObject



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

def currentdate
  comicfury_date Date.today
end

#dayObject



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

def day
  Date.today.day
end

#extrapagesObject



247
248
249
250
251
252
253
254
255
# File 'lib/ragerender/jekyll.rb', line 247

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



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

def fallback_data
  {}
end

#hasblogsObject



222
223
224
# File 'lib/ragerender/jekyll.rb', line 222

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

#hascomicsObject



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

def hascomics
  comicsnum > 0
end

#hidefromhostObject



242
243
244
# File 'lib/ragerender/jekyll.rb', line 242

def hidefromhost
  false
end

#isarchiveObject



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

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

#isblogObject



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

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

#iscomicpageObject



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

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

#iscomicrelatedpageObject



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

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

#iserrorpageObject



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

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

#isextrapageObject



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

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

#isfrontpageObject



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

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

#isoverviewObject



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

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

#issearchObject



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

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

#lastupdateObject



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

def lastupdate
  comicfury_date Time.now
end

#lastupdatedmyObject



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

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

#layoutcssObject



272
273
274
275
276
277
278
# File 'lib/ragerender/jekyll.rb', line 272

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

#monthObject



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

def month
  Date.today.month
end

#pagetitleObject



280
281
282
# File 'lib/ragerender/jekyll.rb', line 280

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

#usechaptersObject



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

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

#webcomicactivitystatusObject



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

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

#webcomicavatarObject



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

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

#webcomicdescriptionObject



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

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

#webcomicgenreObject



185
186
187
# File 'lib/ragerender/jekyll.rb', line 185

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

#webcomicgenresObject



176
177
178
179
180
181
182
183
# File 'lib/ragerender/jekyll.rb', line 176

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



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

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

#webcomicidObject



143
144
145
# File 'lib/ragerender/jekyll.rb', line 143

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

#webcomicnameObject



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

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

#webcomicratingObject



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

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

#webcomicsloganObject



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

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

#webcomicsubObject



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

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

#webcomicurlObject



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

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

#yearObject



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

def year
  Date.today.year
end