Module: Pedicab

Defined in:
lib/pedicab.rb,
lib/pedicab/on.rb,
lib/pedicab/mark.rb,
lib/pedicab/rank.rb,
lib/pedicab/ride.rb,
lib/pedicab/query.rb,
lib/pedicab/version.rb

Defined Under Namespace

Modules: RANK Classes: Error, P, RedditQuery, Ride

Constant Summary collapse

VERSION =
"0.3.1"
@@ON =
Hash.new { |h,k| h[k] = lambda() { |ride| ride } }
@@Ride =
Hash.new { |h,k| h[k] = Ride.new(k) }

Class Method Summary collapse

Class Method Details

.[](k) ⇒ Object



173
174
175
# File 'lib/pedicab.rb', line 173

def self.[] k
  P.new(k)
end

.chunk(text, size = 1024, &b) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/pedicab.rb', line 151

def self.chunk text, size=1024, &b
  chunks = []
  paragraphs = text.split(/\n\n+/)
  
  current_chunk = ""
  paragraphs.each do |para|
    # If adding this paragraph would exceed chunk size
    if current_chunk.length + para.length > size && !current_chunk.empty?
      chunks << current_chunk
      current_chunk = para
    else
      current_chunk += (current_chunk.empty? ? "" : "\n\n") + para 
    end
  end
  chunks << current_chunk unless current_chunk.empty?
  if block_given?
    return chunks.map { |e| b.call(self, e) }
  else
    return chunks
  end
end

.mark(x) ⇒ Object



2
3
4
5
6
7
8
# File 'lib/pedicab/mark.rb', line 2

def self.mark x
  Nokogiri::HTML(Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true).render(x)).css('p').map { |e|
    if !/http.*/.match(e.text)
      e.text
    end
  }.flatten.compact
end

.modelsObject



22
23
24
# File 'lib/pedicab.rb', line 22

def self.models
  Dir['/models/*'].map { |e| e.gsub('.gguf', '').gsub('/models/','') }
end

.onObject



3
4
5
# File 'lib/pedicab/on.rb', line 3

def self.on
  @@ON
end

.reddit(q) ⇒ Object

Example usage:



84
85
86
87
88
89
90
91
# File 'lib/pedicab/query.rb', line 84

def self.reddit q
  qq = RedditQuery.new(q).search(limit: 10, sort: 'hot', time: 'week').map { |post|
    p = post[:selftext];
    if p.length > 0;
      p;
    end;
  }.flatten.compact
end

.rideObject



106
107
108
# File 'lib/pedicab/ride.rb', line 106

def self.ride
  @@Ride
end