Module: HttpFn::Utils
- Included in:
- HttpFn
- Defined in:
- lib/http_fn/utils.rb
Constant Summary collapse
- @@parse_json =
JSON.method(:parse)
- @@debug =
->print, a, b { print.(a); print.(b.to_s); b }.curry
- @@at =
->key, hash { hash; hash[key] }.curry
- @@red =
->a { "\033[31m#{a}\033[0m" }
- @@try =
( a -> b ) -> a -> b
->f, a { a.nil? ? nil : f.(a) }.curry
- @@retry_fn =
->fn, a { begin fn.(a) rescue sleep(1) puts "RETRYING" @@retry_fn.(fn).(a) end }.curry
- @@record =
->filename, to_save { File.open(filename, "w+") { |a| a << to_save.to_yaml } to_save }.curry
- @@play =
->filename, _params { YAML.load(File.read(filename)) }.curry
- @@cache =
(Float -> String -> Bool) -> String -> (a -> b) -> b
->expired, filename, fn, param { if expired.(filename) @@record.(filename).(fn.(param)) else puts "reading from cache" @@play.(filename).(nil) end }.curry
- @@expired =
->sec, a { !File.exist?(a) || (Time.now - File.mtime(a)) > sec }.curry
- @@count_by =
->fn, a { a.inject({}) do |res, a| by = fn.(a) res[by] ||= 0 res[by] += 1 res end }.curry
- @@time =
(String -> String) -> String -> ( a -> b ) -> a -> b
->print, msg, fn, a { start_time = Time.now res = fn.(a) print.("Time duration for #{msg} = #{Time.now - start_time}") res }.curry
- @@apply =
->method, a { a.send(method) }.curry
- @@default =
->default, a { a.nil? ? default : a }.curry
- @@and_then =
->f, a { a.nil? ? nil : f.(a) }.curry
- @@map =
->f, enum { enum.map(&f) }.curry
- @@get =
->method, obj { obj.send(method) }.curry