Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 11:05
    mabasic review_requested #246
  • 11:04
    mabasic synchronize #246
  • 10:58
    mabasic closed #271
  • 09:51
    Chemaclass commented #4
  • 09:51
    Chemaclass commented #4
  • 09:46
    Chemaclass commented #4
  • 09:46
    Chemaclass commented #4
  • May 07 19:14
    Chemaclass synchronize #253
  • May 07 19:14

    Chemaclass on implementing-gacela-framework

    Adding RuntimeFacade->initializ… Composer update phel-composer-p… (compare)

  • May 07 19:11
    Chemaclass synchronize #4
  • May 07 19:11

    Chemaclass on change-factory-to-singleton

    Using RuntimeFacade->initialize… (compare)

  • May 07 19:03
    Chemaclass commented #4
  • May 07 18:51
    Chemaclass commented #4
  • May 07 18:50
    Chemaclass commented #4
  • May 07 18:23

    Chemaclass on 271-print-transients

    (compare)

  • May 07 18:18
    jenshaase commented #4
  • May 07 18:16
    Chemaclass closed #272
  • May 07 18:16
    Chemaclass commented #272
  • May 07 18:02
    jenshaase commented #272
  • May 07 15:45
    Chemaclass synchronize #272
Mario Bašić
@mabasic
Don't know if this is any better :
(defn is-reading [request]
  (let [result
        (find (fn [method]
                (= (get request :method) method)
                ["HEAD" "GET" "OPTIONS"]))]
    (nil? result)))
This looks good:
(defn handle [request]
  (if
    (or
     (is-reading request)
     (tokens-match request))
    request
    @{:status 302
      :headers @{"Location" "/csrf"}
      :body "CSRF token mismatch."}))
Correction:
(defn is-reading [request]
  (let [result
        (find
         (fn [method]
           (= (get request :method) method)
           ["HEAD" "GET" "OPTIONS"]))]
    (not (nil? result))))
Mario Bašić
@mabasic
Thank you Jens for the help. My brain was broken this morning :) I've manage to implement a very basic router, csrf protection and global middleware
Mario Bašić
@mabasic
Next steps: sending emails with aws ses, using a database (probably sqlite or some experimental php database I've read about recently)
Mario Bašić
@mabasic
Is there a way to check if a key exists in a table?
Mario Bašić
@mabasic
I found keys, and then i do find, but is there a simpler option?
Jens Haase
@jenshaase
Currently there isn't. But that would be a helpful function. Can you add a issue, then I can implement such a function.
Mario Bašić
@mabasic
Sure thing.
Mario Bašić
@mabasic
When destructuring a table, can I get the key and value? In the docs there are only examples of getting the value.
Found it in for using :pairs
Mario Bašić
@mabasic
Is there a way to dynamically create a table?
with a for loop maybe
Jens Haase
@jenshaase
(put table key value) (e.g. (put @{:a 1 :b 2} :c 3))
Mario Bašić
@mabasic
Thank you. I had to use foreach loop with put, because for always returns an array.
Mario Bašić
@mabasic
@jenshaase :parsed-body in a request is not working for me.
I know that we have a test for this, and that it passed
Mario Bašić
@mabasic
It's not a Phel issue after all. Even PHP does not see anything with $_POST
Mario Bašić
@mabasic
Found the data here (def data (json/decode (php/file_get_contents "php://input"))) xD since I was using application/json content-data xD
Should we place that in the request somewhere?
When the content-data is set to application/json should we place the above as :parsed-body instead of using $_POST?
Mario Bašić
@mabasic
There is a issue with my phel-json library. It converts strings to keywords for table keys. I should probably add an option to have it return either keywords or strings. This caused me a couple of minutes to work out.
Mario Bašić
@mabasic
Is there a strlen in Phel? For some reason I can't use count on a string.
Jens Haase
@jenshaase:matrix.org
[m]
php/strlen
Mario Bašić
@mabasic
I expected to find a (strlen x) function. But php/strlen does the job.
Mario Bašić
@mabasic
Is there a Phel function for explode ? It would seem that most of php functions for strings and arrays and to be used with (php/.. I was also looking for str_replace.
Jens Haase
@jenshaase
There are so many Php function. I will not wrap every function in phel.
Jose Maria Valera Reales
@Chemaclass
I would also say that. I think it's ok to use the native PHP functions for most of the common things such as strlen or similar.
But well, in case anyone find/does some interesting functions for phel that might get an additional advantage of having them in phel and not in native-php, then feel free and welcome to create a PR with it :)
Mario Bašić
@mabasic
It kind of makes sense. Making a 1 to 1 conversion is a big job, and the benefits are not really there, because (php/strlen "") instead of (strlen "") is trivial.
Mario Bašić
@mabasic
I'm really excited to share my code with you guys. Just a few things left before doing so.
Mario Bašić
@mabasic
Believe it or not, the website is complete: https://mariobasic.com/
The source code is here: https://github.com/mabasic/mariobasic-n7
Let me know what you think :)
There are some bugs that I need to polish like mobile experience etc.
Jose Maria Valera Reales
@Chemaclass
Pretty cool, @mabasic! 👌🏻👏
Jose Maria Valera Reales
@Chemaclass

Adding re-seq phel function 👉 phel-lang/phel-lang#259

Returns a sequence of successive matches of pattern in string.

lonelos
@lonelos

Let me know what you think :)

Nice job my fellow countryman. Just started exploring Phel and found this gem, thank you :)

Mario Bašić
@mabasic

Let me know what you think :)

Nice job my fellow countryman. Just started exploring Phel and found this gem, thank you :)

Thank you :heart:

Mario Bašić
@mabasic
@jenshaase Regarding PHP interop (calling phel from php). I haven't tested that part yet, but have you seen this article https://www.simonholywell.com/post/2016/10/importing-and-aliasing-php-functions/. I remember discussing something about not being able to call phel functions directly from php...
Jens Haase
@jenshaase
Problem is, that standard autoloading is not working in this case. Autloading only works for classes and not functions
metehan
@metehan
actuallly I just came back to gitter to see if you finished your website
oh it doesn't have permissive license :(
anyway congratulations for the website :)
Mario Bašić
@mabasic
@metehan Usually I use MIT license, but considering that this time I have my personal information in the source code it made no sense to allow everyone to use my personal information. Maybe there is a license for this case, but I don't know which one.
metehan
@metehan
phel extenstion for VS code is pretty fine but maybe we can integrate some paredit functionaly
now I use calva instead of phel extension. it gives bad coloring and thinks my core is wrong but without paredit coding lisp is hard
metehan
@metehan
is there any html to ignore itself lets say in clojurescript if you write [:<> [:p "as"] [:p "sda"]] the [:<> ]element will be ignored and [:pelements will be forwarded to parent of [:<>
Jens Haase
@jenshaase
You can use an array for that: (html @[[:p "a"] [:p "b"]])
6 replies
Mario Bašić
@mabasic
Interesting, did not know that. I just figured that it works like React JSX meaning that you need to have one "root" component.