This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Gem::Specification.new do |s| | |
s.name = 'acts_as_untitled' | |
s.version = '0.1.0' | |
s.platform = Gem::Platform::RUBY | |
s.author = 'Edward Tsech' | |
s.email = 'edtsech@gmail.com' | |
s.summary = 'Acts as untitled!' | |
s.description = '' | |
s.files = ['acts_as_untitled.rb'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ContentFor = Class.new | |
x = ContentFor.new | |
puts x.class.object_id # => 2266662780 | |
# puts x.class.name | |
ContentFor = Class.new | |
y = ContentFor.new | |
puts x.class.object_id # => 2266662780 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
THOUSAND = -> p { -> x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[ | |
p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[ | |
p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[ | |
p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[ | |
p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(use 'net.cgrand.enlive-html) | |
; Define our posts, it can be response from the database. | |
(def posts [{:title "First post" | |
:content "Content of my first post." | |
:comments [{ | |
:user "edtsech" | |
:text "boom"} | |
{:user "anonymous" | |
:text "blah-blah-blah"}]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defroutes posts-routes | |
(context "/posts" [] | |
(GET "/" request ...) | |
(GET "/new" request ...) | |
(POST "/" request ...))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
h1 = { "a" => 100, "b" => 200 } | |
h2 = { "b" => 254, "c" => 300 } | |
h3 = h1.merge(h2) | |
h3 #=> {"a"=>100, "b"=>254, "c"=>300} | |
h1 #=> { "a" => 100, "b" => 200 } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn validate [data schema] | |
(into {} (for [[x y] schema] | |
[x (if (contains? data x) | |
(let [res (x data)] | |
(try (y res) (catch IllegalArgumentException e false))) | |
false)]))) | |
(defn valid? [data schema] | |
(every? true? (vals (validate data schema)))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn split-by | |
"Create from sequence (l) sequence of sequences with specified number of elemenets (c) | |
Example: | |
(split-by 2 [1 2 3 4 5 6 7]) | |
=> '((1 2) (3 4) (5 6) (7))" | |
[c l] | |
(if (seq l) | |
(cons (take c l) (split-by c (drop c l))))) | |
(defn split-into-chunks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
flipArgs = function (f) { | |
return function() { | |
let args = Array.prototype.slice.call(arguments); | |
return f.apply(null, args.slice(1).concat(args[0])) | |
} | |
} | |
fullName = function(name, lastName) { return name + ' ' + lastName} | |
// fullName("John", "Doe") -> "John Doe" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rightCurry = function (f) { | |
let args = Array.prototype.slice.call(arguments).slice(1); | |
return function(firstArg) { | |
return f.apply(null, [firstArg].concat(args)) | |
} | |
} | |
fullName = function (name, middleName, lastName) { return name + " " + middleName + " " + lastName } | |
// rightCurry(fullName, "David", "Doe")("John") -> "John David Doe" |
OlderNewer