├── 0x00-challenge ├── 0-fizzbuzz.py ├── 1-print_square.js ├── 2-sort.rb ├── 3-user.py ├── 4-delete_dnodeint │ ├── add_dnodeint_end.c │ ├── delete_dnodeint_at_index.c │ ├── free_dlistint.c │ ├── lists.h │ ├── main.c │ └── print_dlistint.c └── README.md ├── 0x01-challenge ├── README.md ├── blog │ ├── Gemfile │ ├── Gemfile.lock │ ├── README.md │ ├── Rakefile │ ├── app │ │ ├── assets │ │ │ ├── config │ │ │ │ └── manifest.js │ │ │ ├── images │ │ │ │ ├── .keep │ │ │ │ └── logo.svg │ │ │ ├── javascripts │ │ │ │ ├── application.js │ │ │ │ ├── cable.js │ │ │ │ ├── channels │ │ │ │ │ └── .keep │ │ │ │ ├── comments.coffee │ │ │ │ └── posts.coffee │ │ │ └── stylesheets │ │ │ │ ├── _normalize.scss │ │ │ │ ├── application.scss │ │ │ │ ├── comments.scss │ │ │ │ └── posts.scss │ │ ├── channels │ │ │ └── application_cable │ │ │ │ ├── channel.rb │ │ │ │ └── connection.rb │ │ ├── controllers │ │ │ ├── application_controller.rb │ │ │ ├── comments_controller.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── pages_controller.rb │ │ │ └── posts_controller.rb │ │ ├── helpers │ │ │ ├── application_helper.rb │ │ │ ├── comments_helper.rb │ │ │ └── posts_helper.rb │ │ ├── jobs │ │ │ └── application_job.rb │ │ ├── mailers │ │ │ └── application_mailer.rb │ │ ├── models │ │ │ ├── application_record.rb │ │ │ ├── comment.rb │ │ │ ├── concerns │ │ │ │ └── .keep │ │ │ ├── install.rb │ │ │ ├── post.rb │ │ │ └── user.rb │ │ └── views │ │ │ ├── comments │ │ │ ├── _comment.html.erb │ │ │ └── _form.html.erb │ │ │ ├── devise │ │ │ ├── confirmations │ │ │ │ └── new.html.erb │ │ │ ├── mailer │ │ │ │ ├── confirmation_instructions.html.erb │ │ │ │ ├── password_change.html.erb │ │ │ │ ├── reset_password_instructions.html.erb │ │ │ │ └── unlock_instructions.html.erb │ │ │ ├── passwords │ │ │ │ ├── edit.html.erb │ │ │ │ └── new.html.erb │ │ │ ├── registrations │ │ │ │ ├── edit.html.erb │ │ │ │ └── new.html.erb │ │ │ ├── sessions │ │ │ │ └── new.html.erb │ │ │ ├── shared │ │ │ │ └── _links.html.erb │ │ │ └── unlocks │ │ │ │ └── new.html.erb │ │ │ ├── layouts │ │ │ ├── application.html.erb │ │ │ ├── mailer.html.erb │ │ │ └── mailer.text.erb │ │ │ ├── pages │ │ │ └── about.html.erb │ │ │ └── posts │ │ │ ├── _form.html.erb │ │ │ ├── edit.html.erb │ │ │ ├── index.html.erb │ │ │ ├── new.html.erb │ │ │ └── show.html.erb │ ├── bin │ │ ├── bundle │ │ ├── rails │ │ ├── rake │ │ ├── setup │ │ ├── spring │ │ └── update │ ├── config.ru │ ├── config │ │ ├── application.rb │ │ ├── boot.rb │ │ ├── cable.yml │ │ ├── database.yml │ │ ├── environment.rb │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── initializers │ │ │ ├── application_controller_renderer.rb │ │ │ ├── assets.rb │ │ │ ├── backtrace_silencers.rb │ │ │ ├── cookies_serializer.rb │ │ │ ├── devise.rb │ │ │ ├── filter_parameter_logging.rb │ │ │ ├── inflections.rb │ │ │ ├── mime_types.rb │ │ │ ├── new_framework_defaults.rb │ │ │ ├── session_store.rb │ │ │ └── wrap_parameters.rb │ │ ├── locales │ │ │ ├── devise.en.yml │ │ │ └── en.yml │ │ ├── puma.rb │ │ ├── routes.rb │ │ ├── secrets.yml │ │ └── spring.rb │ ├── db │ │ ├── development.sqlite3 │ │ ├── migrate │ │ │ ├── 20170124001207_create_posts.rb │ │ │ ├── 20170124151721_create_comments.rb │ │ │ ├── 20170124183511_devise_create_installs.rb │ │ │ └── 20170124184440_devise_create_users.rb │ │ ├── schema.rb │ │ └── seeds.rb │ ├── lib │ │ ├── assets │ │ │ └── .keep │ │ └── tasks │ │ │ └── .keep │ ├── log │ │ ├── .keep │ │ └── development.log │ ├── public │ │ ├── 404.html │ │ ├── 422.html │ │ ├── 500.html │ │ ├── apple-touch-icon-precomposed.png │ │ ├── apple-touch-icon.png │ │ ├── favicon.ico │ │ └── robots.txt │ ├── test │ │ ├── controllers │ │ │ ├── .keep │ │ │ ├── comments_controller_test.rb │ │ │ └── posts_controller_test.rb │ │ ├── fixtures │ │ │ ├── .keep │ │ │ ├── comments.yml │ │ │ ├── files │ │ │ │ └── .keep │ │ │ ├── installs.yml │ │ │ ├── posts.yml │ │ │ └── users.yml │ │ ├── helpers │ │ │ └── .keep │ │ ├── integration │ │ │ └── .keep │ │ ├── mailers │ │ │ └── .keep │ │ ├── models │ │ │ ├── .keep │ │ │ ├── comment_test.rb │ │ │ ├── install_test.rb │ │ │ ├── post_test.rb │ │ │ └── user_test.rb │ │ └── test_helper.rb │ ├── tmp │ │ ├── .keep │ │ ├── cache │ │ │ └── assets │ │ │ │ └── sprockets │ │ │ │ └── v3.0 │ │ │ │ ├── 70 │ │ │ │ └── 70XNiXJ_-AJ5FbNhvh8cLx-NN9yOBcodFmxzI8Qh8yI.cache │ │ │ │ ├── -4 │ │ │ │ └── -4Iz1QtpXcIMwbce3FFNTGnGTtlhsZPD5Q-jh7VGBgs.cache │ │ │ │ ├── 0t │ │ │ │ └── 0tBN7CpG0GdAzd2V3WdXj-RaJx-U7oIBmjHOEWJ3Oq0.cache │ │ │ │ ├── 1v │ │ │ │ └── 1v8DUfyZLe3TNcn_TarN6cL21TbtpxiQ5xULHrE3GHg.cache │ │ │ │ ├── 3L │ │ │ │ └── 3L4r4UQWc-XG5qAf06ToDLIsPrOjaPxuP1wGq6_ehgs.cache │ │ │ │ ├── 3c │ │ │ │ └── 3cJUhBesAUu2ZfyWQv5l-Ji-VCkrTXg0Qn_GyqSC-zE.cache │ │ │ │ ├── 4P │ │ │ │ └── 4PVEjscMV8XunfQoAS4lcFO3j1SK2Mf93gMmBz62mlU.cache │ │ │ │ ├── 6E │ │ │ │ └── 6E606oj0Q5p_ctSCsiGJG-VnjBkaDlnalRYFK-VbMIo.cache │ │ │ │ ├── 7G │ │ │ │ └── 7GegKhso8_ooMfAnLhSFfpOskbJT8sfrtvjHMmdPr4Y.cache │ │ │ │ ├── 7e │ │ │ │ └── 7eRhadV2fDVHPoU7W4l2Ty0530FkOwUHYAQOnj7DMzk.cache │ │ │ │ ├── 8X │ │ │ │ └── 8Xc0hQMUwIbDLwrfPtUOr1w5Uc4CUOhYxq6mX2ioTuw.cache │ │ │ │ ├── B_ │ │ │ │ └── B_kgxPjYP7xyQXjytJwn1vG_CYPHaWEk0kFFs9_FUa8.cache │ │ │ │ ├── C2 │ │ │ │ └── C2q5vKYPx2iMTfU5DNG_80e6wl_sOzhSBJcIvQ_s6O8.cache │ │ │ │ ├── CA │ │ │ │ └── CAD22mhymbzftK3sJaAeoYMKP70DFWtFTDDrsLyG594.cache │ │ │ │ ├── Db │ │ │ │ └── DbdYHIB09GQq3hXSmAHPXPJkgoLBnN058veLcVRW6jU.cache │ │ │ │ ├── EL │ │ │ │ └── ELNziigNfXMIjYxNDpthI0ZePslrfhss0hhJZGZb1w0.cache │ │ │ │ ├── EP │ │ │ │ ├── EPny8CSEldWNZLPRJwm3RkMm8fAyo2MaxKz_apw9OjQ.cache │ │ │ │ └── epdNXBi41k_Qg39LZG3YPvBFYXm6Ya-NtZOABiqp8qg.cache │ │ │ │ ├── Eb │ │ │ │ └── Ebq_J6okRILPbKdEpXgs4B5ybpG3ZHzEBxIgar9V-B8.cache │ │ │ │ ├── G9 │ │ │ │ └── G9dObMHsMQQcmQuYL6MhtYI7JT4OXrCwKYiLYG4BpxM.cache │ │ │ │ ├── GE │ │ │ │ └── GEGtQMoDQISANJgaIT2lytWX2gfLT86GaodzO8SUoXs.cache │ │ │ │ ├── GI │ │ │ │ └── GId3Guf_fZf3nrXvBwJH3cCJnYVUXPHebhX5f8ABadc.cache │ │ │ │ ├── Gs │ │ │ │ └── GsV70s6Ji3ZYWMq__0GYn64SBJp1YWpFr_V7Ciys-CI.cache │ │ │ │ ├── Hu │ │ │ │ └── HugYFQG_rqjtk5mw1GjGLpL1NR0WnpGXDjYjCC6_pPQ.cache │ │ │ │ ├── Ib │ │ │ │ └── IbDMJ623wj0hwPTmE6DMVm0EderdWDfeDS9xLMB6zm4.cache │ │ │ │ ├── Im │ │ │ │ └── ImwNcwKD7kAQQgkK6uy718QhXpRXMIhe6intXTJCAL8.cache │ │ │ │ ├── Jw │ │ │ │ └── JwVdxwYe2M0H_JVkcGXMwtDtKth7yp7Rs9aLq-3Vq_c.cache │ │ │ │ ├── MF │ │ │ │ └── MFmBxiEPTzVo2U45YebCL-Zo1Z7MIHoCB-sZDuVfLOY.cache │ │ │ │ ├── MZ │ │ │ │ └── MZRK4vnb04vrPlS8aoWeJbEN6k-T3ZoGCedM6to_qzI.cache │ │ │ │ ├── N5 │ │ │ │ └── N57OAsaECS2DeFCn_mAgzyUtmXyaViKoIPWdW2ROI04.cache │ │ │ │ ├── O0 │ │ │ │ └── O0QJKLCAALXn8Bkher3r2CRf86EzkfCzaOpgejh0Tgk.cache │ │ │ │ ├── O_ │ │ │ │ └── O__EWXFcu46QvfZACME107ZpHnkulOzH6mTBO-NdQDc.cache │ │ │ │ ├── Oz │ │ │ │ └── OzUlv0XAmWdUFgo31_NFci4GOczrxCEPkw6ciAssIeo.cache │ │ │ │ ├── P- │ │ │ │ └── P-NwRhI7ccn1UkzMe1lml3CK9pF84V_50Im56v8RYKk.cache │ │ │ │ ├── PH │ │ │ │ └── PHgJxBodAK3KMwcih_V55I5ub5dRT5OZcprHC1qxNGY.cache │ │ │ │ ├── Pz │ │ │ │ └── Pz1P9rx8zj6hGH3NikdOdopmVwQLYb81a3hOPjYoSS8.cache │ │ │ │ ├── RS │ │ │ │ └── RSXp9Uun1sD0hpS2Ym1uPP0TNSGAYOVN_oVEg8ViXpM.cache │ │ │ │ ├── Rt │ │ │ │ └── Rt3AoS_YDeBSdzp4W0YhhdoL6rhvAqL6QgWg_7MPZRw.cache │ │ │ │ ├── TO │ │ │ │ └── TOOZrA-IkofC8tmiL8HLxvbhkXf387mEudJxyTrgq2s.cache │ │ │ │ ├── TT │ │ │ │ └── TTq38qv8Dc7EVht2znO_CUAYaIU2x8fwuSBm0tAcYl8.cache │ │ │ │ ├── UA │ │ │ │ └── UAXxNUgEBPHSy9KRhkkjiemKfciE2GYzz_QSlEZpWtY.cache │ │ │ │ ├── UL │ │ │ │ └── ULjavcopv0jZMqlDH9fhCI6VDN68ol_08XfwTTg35IQ.cache │ │ │ │ ├── UR │ │ │ │ └── URHJQQRgVFUptBfULTQSKfPdOFFB3SPa8gVCdcIN-k4.cache │ │ │ │ ├── Um │ │ │ │ └── Umnr-u817BGaDC6YjbUn2JwG83rHNWJSY7MsftbSVfo.cache │ │ │ │ ├── W5 │ │ │ │ └── W51_i7Ki0t5iUsiveg5kYO3CiWQiUEfsxuz7RuRT3sw.cache │ │ │ │ ├── WL │ │ │ │ └── WLd7sWvt1KcS6hMrtQG-yvybazijeLr7B4nlFw2aq94.cache │ │ │ │ ├── Y5 │ │ │ │ └── Y5Ig3w3Cvl8xiCpb6xeuoZ_v6gvXM4_DVtpd2trtKAY.cache │ │ │ │ ├── Zv │ │ │ │ └── ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache │ │ │ │ ├── _8 │ │ │ │ └── _8Cf3lV6bnx6jPzgm9PZJj0A91ZMKdbV4qGwU0u-8pk.cache │ │ │ │ ├── af │ │ │ │ └── afby1fOt8ba7SHH3tEQZPxFylCkVvVO1P-ejOdCPVtI.cache │ │ │ │ ├── b0 │ │ │ │ └── b0p9_WsdM3bOJ69n2P3RMbH-AGxuS7Yw67CtB-ICilg.cache │ │ │ │ ├── b8 │ │ │ │ └── b8qCl0FYYJJVMyxCEWXKSLe9ZJKUDuFM-VGuSaUU6oE.cache │ │ │ │ ├── c1 │ │ │ │ └── c1bf2wHoA-g0JMHKHmqCZcYXmQnDC2k97HSVJmHEfs0.cache │ │ │ │ ├── cM │ │ │ │ └── cMROkbqwqb0Dm-lCpcR80yK-lJr7QwnDdRxG9TCFneQ.cache │ │ │ │ ├── cb │ │ │ │ └── cb86St0XOekhtEfksTYLd3BJi8fQ7ZQioVOFoWqeo80.cache │ │ │ │ ├── cl │ │ │ │ └── clYeoKlLfh8ThYSBiqi9_dI5uMgPNN_tpxMju9vg68w.cache │ │ │ │ ├── dE │ │ │ │ └── dEhpgX1dwkhIVMWYMuBJRcHc5Tp0mPFzMUyHm7Bv-c8.cache │ │ │ │ ├── dG │ │ │ │ └── dGEolBTI3pemI_Jr1dDtUvl83eQD1pjoUaZbGkEESuo.cache │ │ │ │ ├── e5 │ │ │ │ └── e53XnhcI3oA8EkmkoOKMVOXg37p2tKUB8ekJWuoWxGA.cache │ │ │ │ ├── em │ │ │ │ └── emerpo8-4QIHmc1liJVkzcmULFp0Y96r3u9iZV_GZoo.cache │ │ │ │ ├── gD │ │ │ │ └── gDCG1m8m3LBqegymlHMGF1zwtq-CaK6ToTsFFzvVS1g.cache │ │ │ │ ├── gY │ │ │ │ └── gY4-cJOFUEYH-6ZCWhnZclNi4PICd-uZco2fC2G-43I.cache │ │ │ │ ├── gk │ │ │ │ └── gkyNqK2RL0HR6JqoSLdEXGsFscAnr0n8h23iYZPZ7sk.cache │ │ │ │ ├── gq │ │ │ │ └── gq6kAOe-_GezJXNDTfV6l4hn1g1T_E0mA2-jSM7osl4.cache │ │ │ │ ├── hD │ │ │ │ └── hDpV3g2E-f4Ys_KRfS7hMCgwaferoZoh_cYs_BI8atk.cache │ │ │ │ ├── hS │ │ │ │ └── hS3A7zWIX9bzQglhC98mIQQ8rYgYF2AbcdqCTi7xMIM.cache │ │ │ │ ├── ij │ │ │ │ ├── ij037g79RnbyHtqFaRGq6DQD5h6SogbAwxBC5KsFIoM.cache │ │ │ │ └── ijJg1SMUtwhAo9w5b4rlZHKHnZE16TTex1oO1_NJf6s.cache │ │ │ │ ├── jN │ │ │ │ └── jN86f-BzMJXkTGcVIz2T9f_3I9W0WJmVGHu7gDgR7jo.cache │ │ │ │ ├── k7 │ │ │ │ └── k7eiKO72_ZYgpQ3EKDjl4auGBz6lOm5-CGueS0XZB0Y.cache │ │ │ │ ├── kB │ │ │ │ └── kBdCQlyHWpsfYOAv7lSH-_UgovGXLcefHW_ssGOgDkw.cache │ │ │ │ ├── lG │ │ │ │ └── lGcWFJpXw_3FtOZGGQuUN_gh9a08_W4F6YRqzSXWL7k.cache │ │ │ │ ├── lY │ │ │ │ └── lYiaBWp_L7Gj0emM2VvsUmYtAgWqk0Vrs7at6orIAOA.cache │ │ │ │ ├── m3 │ │ │ │ └── m3Ffdk2qCWC8LKXzoX08sdTMUrr2k-R-kjtE9vI9HxA.cache │ │ │ │ ├── mK │ │ │ │ └── mKyFOz4xXMA5XK8RMw6t0vs9DFkJcs-iRPF1cHrANy0.cache │ │ │ │ ├── nG │ │ │ │ └── nGC9JLYJ4n9NvefBHBO9Y6mVnvcj61Rod1rGbntRR3E.cache │ │ │ │ ├── nI │ │ │ │ └── nIwkmY1CPq94l0g-fJAxdZUFFN21whkto-swdSgEAJE.cache │ │ │ │ ├── ol │ │ │ │ └── olmLkA7OINaH1DPAgktf908cfJ4yipneXXlXu7BIe6I.cache │ │ │ │ ├── pe │ │ │ │ └── peJVA4AetIqR1uaETWJKAVv8fyt8vEwPSbinssS8ddQ.cache │ │ │ │ ├── q8 │ │ │ │ └── q8wGFsnE_Tyc6-ABSkEqTpFian3i322eSqMher-WlXY.cache │ │ │ │ ├── qI │ │ │ │ └── qIxLqsln1b6g59oh_lHCixwllXN_5xLb9vlR0LDdylQ.cache │ │ │ │ ├── qO │ │ │ │ └── qOuOR8oJId156PAzgOZBNpzmd8T3RbaPZxryogTPGh8.cache │ │ │ │ ├── rN │ │ │ │ └── rNwiv5MF9Ztcn7w2bN2Ko8D-D4JHjXg-mzZPTgfI6xg.cache │ │ │ │ ├── r_ │ │ │ │ └── r_93aEN_RF7IYC67OZqgY9BK3LeHk_RcSOgQUd0PS5s.cache │ │ │ │ ├── ss │ │ │ │ └── sszN_mRnRNd86ee4eVvZu__j_6xEh21ldBoMAkZb8Ek.cache │ │ │ │ ├── tX │ │ │ │ └── tX2Qrtzo6LLOw2Ll0v0eYF-lVtOzPUSCggKGQbtvHzE.cache │ │ │ │ ├── uG │ │ │ │ └── uGvt08r1rHtiGuaNPC-s294UZeg20rNm8dVTEFKwYjE.cache │ │ │ │ ├── wQ │ │ │ │ └── wQJGNFqXztfj44KTvzJZ0QHImqwDbTAfUWJItHZu85Q.cache │ │ │ │ ├── wX │ │ │ │ └── wX0BfFK05lscuV2JrRFqUA13K-CEXJYSP4EfRLqFKog.cache │ │ │ │ ├── wp │ │ │ │ └── wptHSSlSS198N_3GcHpnXy3rJauhf9tqUWDE__rndls.cache │ │ │ │ ├── ww │ │ │ │ └── wwxM-oakA2Hia-kqjPIxORvHFYJWfxCiQ1DO7xsxV4Q.cache │ │ │ │ ├── x_ │ │ │ │ └── x_wytkUu6skWrUcumKe06JGOBTMEP2Y3m-Ix4qWDUts.cache │ │ │ │ └── xu │ │ │ │ └── xu2Q-1gSMSou8BorJ2TalhkDPkQzZTcGjYJaX_OFq0A.cache │ │ ├── pids │ │ │ └── server.pid │ │ └── restart.txt │ └── vendor │ │ └── assets │ │ ├── javascripts │ │ └── .keep │ │ └── stylesheets │ │ └── .keep ├── react-blog │ ├── .DS_Store │ ├── .bowerrc │ ├── .gitignore │ ├── README.md │ ├── app.js │ ├── bin │ │ └── www.js │ ├── config.js │ ├── controllers │ │ └── post.controller.js │ ├── gulpfile.js │ ├── package.json │ ├── public │ │ ├── css │ │ │ ├── app.min.css │ │ │ └── includes.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── images │ │ │ └── jonathan.jpg │ │ ├── lib │ │ │ ├── bootstrap │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ └── nprogress │ │ │ │ ├── .bower.json │ │ │ │ ├── History.md │ │ │ │ ├── License.md │ │ │ │ ├── Notes.md │ │ │ │ ├── Readme.md │ │ │ │ ├── bower.json │ │ │ │ ├── component.json │ │ │ │ ├── index.html │ │ │ │ ├── nprogress.css │ │ │ │ ├── nprogress.js │ │ │ │ └── support │ │ │ │ ├── extras.css │ │ │ │ └── style.css │ │ ├── scripts │ │ │ ├── includes.js │ │ │ └── react │ │ │ │ └── bundle.js │ │ └── static │ │ │ ├── css │ │ │ └── static-html-example.css │ │ │ ├── html │ │ │ └── static-html-example.html │ │ │ ├── js │ │ │ └── static-html-example.js │ │ │ ├── jsx │ │ │ └── react-components-example.jsx │ │ │ ├── md │ │ │ └── react-blog-readme.md │ │ │ └── posts.json │ ├── react-bootstrap-0.26.4 │ │ ├── .ackrc │ │ ├── .babelrc │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .projections.json │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MAINTAINING.md │ │ ├── README.md │ │ ├── appveyor.yml │ │ ├── docs │ │ │ ├── .eslintrc │ │ │ ├── README.docs.md │ │ │ ├── README.md │ │ │ ├── assets │ │ │ │ ├── CodeMirror.css │ │ │ │ ├── TheresaKnott_castle.svg │ │ │ │ ├── carousel.png │ │ │ │ ├── docs.css │ │ │ │ ├── favicon.ico │ │ │ │ ├── logo.png │ │ │ │ ├── style.css │ │ │ │ ├── thumbnail.png │ │ │ │ └── thumbnaildiv.png │ │ │ ├── build.js │ │ │ ├── client.js │ │ │ ├── dev-run │ │ │ ├── examples │ │ │ │ ├── .eslintrc │ │ │ │ ├── AlertAutoDismissable.js │ │ │ │ ├── AlertBasic.js │ │ │ │ ├── AlertDismissable.js │ │ │ │ ├── Badge.js │ │ │ │ ├── Breadcrumb.js │ │ │ │ ├── ButtonActive.js │ │ │ │ ├── ButtonBlock.js │ │ │ │ ├── ButtonDisabled.js │ │ │ │ ├── ButtonGroupBasic.js │ │ │ │ ├── ButtonGroupBlock.js │ │ │ │ ├── ButtonGroupJustified.js │ │ │ │ ├── ButtonGroupNested.js │ │ │ │ ├── ButtonGroupSizes.js │ │ │ │ ├── ButtonGroupVertical.js │ │ │ │ ├── ButtonInput.js │ │ │ │ ├── ButtonLoading.js │ │ │ │ ├── ButtonSizes.js │ │ │ │ ├── ButtonTagTypes.js │ │ │ │ ├── ButtonToolbarBasic.js │ │ │ │ ├── ButtonTypes.js │ │ │ │ ├── CarouselControlled.js │ │ │ │ ├── CarouselUncontrolled.js │ │ │ │ ├── Collapse.js │ │ │ │ ├── CollapsibleNav.js │ │ │ │ ├── DropdownButtonBasic.js │ │ │ │ ├── DropdownButtonCustom.js │ │ │ │ ├── DropdownButtonCustomMenu.js │ │ │ │ ├── DropdownButtonNoCaret.js │ │ │ │ ├── DropdownButtonSizes.js │ │ │ │ ├── Fade.js │ │ │ │ ├── Glyphicon.js │ │ │ │ ├── GridBasic.js │ │ │ │ ├── ImageResponsive.js │ │ │ │ ├── ImageShape.js │ │ │ │ ├── Input.js │ │ │ │ ├── InputAddons.js │ │ │ │ ├── InputHorizontal.js │ │ │ │ ├── InputSizes.js │ │ │ │ ├── InputTypes.js │ │ │ │ ├── InputValidation.js │ │ │ │ ├── InputWrapper.js │ │ │ │ ├── Jumbotron.js │ │ │ │ ├── Label.js │ │ │ │ ├── LabelVariations.js │ │ │ │ ├── LeftTabs.js │ │ │ │ ├── ListGroupActive.js │ │ │ │ ├── ListGroupCustom.js │ │ │ │ ├── ListGroupDefault.js │ │ │ │ ├── ListGroupHeader.js │ │ │ │ ├── ListGroupLinked.js │ │ │ │ ├── ListGroupStyle.js │ │ │ │ ├── MenuItem.js │ │ │ │ ├── Modal.js │ │ │ │ ├── ModalContained.js │ │ │ │ ├── ModalCustomSizing.js │ │ │ │ ├── ModalDefaultSizing.js │ │ │ │ ├── ModalStatic.js │ │ │ │ ├── NavBasic.js │ │ │ │ ├── NavDropdown.js │ │ │ │ ├── NavJustified.js │ │ │ │ ├── NavStacked.js │ │ │ │ ├── NavbarBasic.js │ │ │ │ ├── NavbarBrand.js │ │ │ │ ├── NavbarCollapsible.js │ │ │ │ ├── Overlay.js │ │ │ │ ├── OverlayCustom.js │ │ │ │ ├── PageHeader.js │ │ │ │ ├── PagerAligned.js │ │ │ │ ├── PagerDefault.js │ │ │ │ ├── PagerDisabled.js │ │ │ │ ├── PaginationAdvanced.js │ │ │ │ ├── PaginationBasic.js │ │ │ │ ├── PanelBasic.js │ │ │ │ ├── PanelCollapsible.js │ │ │ │ ├── PanelContextual.js │ │ │ │ ├── PanelGroupAccordion.js │ │ │ │ ├── PanelGroupControlled.js │ │ │ │ ├── PanelGroupUncontrolled.js │ │ │ │ ├── PanelListGroupFill.js │ │ │ │ ├── PanelWithFooter.js │ │ │ │ ├── PanelWithHeading.js │ │ │ │ ├── PopoverBasic.js │ │ │ │ ├── PopoverContained.js │ │ │ │ ├── PopoverPositioned.js │ │ │ │ ├── PopoverPositionedScrolling.js │ │ │ │ ├── PopoverTriggerBehaviors.js │ │ │ │ ├── ProgressBarAnimated.js │ │ │ │ ├── ProgressBarBasic.js │ │ │ │ ├── ProgressBarContextual.js │ │ │ │ ├── ProgressBarScreenreaderLabel.js │ │ │ │ ├── ProgressBarStacked.js │ │ │ │ ├── ProgressBarStriped.js │ │ │ │ ├── ProgressBarWithLabel.js │ │ │ │ ├── ResponsiveEmbed.js │ │ │ │ ├── SplitButtonBasic.js │ │ │ │ ├── SplitButtonDropup.js │ │ │ │ ├── SplitButtonRight.js │ │ │ │ ├── StaticText.js │ │ │ │ ├── TableBasic.js │ │ │ │ ├── TableResponsive.js │ │ │ │ ├── TabsControlled.js │ │ │ │ ├── TabsNoAnimation.js │ │ │ │ ├── TabsUncontrolled.js │ │ │ │ ├── ThumbnailAnchor.js │ │ │ │ ├── ThumbnailDiv.js │ │ │ │ ├── TooltipBasic.js │ │ │ │ ├── TooltipInCopy.js │ │ │ │ ├── TooltipPositioned.js │ │ │ │ ├── Well.js │ │ │ │ └── WellSizes.js │ │ │ ├── generate-metadata.js │ │ │ ├── server.js │ │ │ └── src │ │ │ │ ├── Anchor.js │ │ │ │ ├── CodeExample.js │ │ │ │ ├── ComponentsPage.js │ │ │ │ ├── GettingStartedPage.js │ │ │ │ ├── HomePage.js │ │ │ │ ├── IntroductionPage.js │ │ │ │ ├── NavMain.js │ │ │ │ ├── NotFoundPage.js │ │ │ │ ├── PageFooter.js │ │ │ │ ├── PageHeader.js │ │ │ │ ├── PropTable.js │ │ │ │ ├── ReactPlayground.js │ │ │ │ ├── Root.js │ │ │ │ ├── Routes.js │ │ │ │ ├── Samples.js │ │ │ │ └── SupportPage.js │ │ ├── karma.conf.js │ │ ├── nodemon.json │ │ ├── package.json │ │ ├── src │ │ │ ├── .eslintrc │ │ │ ├── Accordion.js │ │ │ ├── Affix.js │ │ │ ├── AffixMixin.js │ │ │ ├── Alert.js │ │ │ ├── Badge.js │ │ │ ├── BootstrapMixin.js │ │ │ ├── Breadcrumb.js │ │ │ ├── BreadcrumbItem.js │ │ │ ├── Button.js │ │ │ ├── ButtonGroup.js │ │ │ ├── ButtonInput.js │ │ │ ├── ButtonToolbar.js │ │ │ ├── Carousel.js │ │ │ ├── CarouselItem.js │ │ │ ├── Col.js │ │ │ ├── Collapse.js │ │ │ ├── CollapsibleNav.js │ │ │ ├── Dropdown.js │ │ │ ├── DropdownButton.js │ │ │ ├── DropdownMenu.js │ │ │ ├── DropdownToggle.js │ │ │ ├── Fade.js │ │ │ ├── FormControls │ │ │ │ ├── Static.js │ │ │ │ └── index.js │ │ │ ├── FormGroup.js │ │ │ ├── Glyphicon.js │ │ │ ├── Grid.js │ │ │ ├── Image.js │ │ │ ├── Input.js │ │ │ ├── InputBase.js │ │ │ ├── Interpolate.js │ │ │ ├── Jumbotron.js │ │ │ ├── Label.js │ │ │ ├── ListGroup.js │ │ │ ├── ListGroupItem.js │ │ │ ├── MenuItem.js │ │ │ ├── Modal.js │ │ │ ├── ModalBody.js │ │ │ ├── ModalDialog.js │ │ │ ├── ModalFooter.js │ │ │ ├── ModalHeader.js │ │ │ ├── ModalTitle.js │ │ │ ├── Nav.js │ │ │ ├── NavBrand.js │ │ │ ├── NavDropdown.js │ │ │ ├── NavItem.js │ │ │ ├── Navbar.js │ │ │ ├── Overlay.js │ │ │ ├── OverlayTrigger.js │ │ │ ├── PageHeader.js │ │ │ ├── PageItem.js │ │ │ ├── Pager.js │ │ │ ├── Pagination.js │ │ │ ├── PaginationButton.js │ │ │ ├── Panel.js │ │ │ ├── PanelGroup.js │ │ │ ├── Popover.js │ │ │ ├── ProgressBar.js │ │ │ ├── ResponsiveEmbed.js │ │ │ ├── Row.js │ │ │ ├── SafeAnchor.js │ │ │ ├── SplitButton.js │ │ │ ├── SplitToggle.js │ │ │ ├── SubNav.js │ │ │ ├── Tab.js │ │ │ ├── Table.js │ │ │ ├── Tabs.js │ │ │ ├── Thumbnail.js │ │ │ ├── Tooltip.js │ │ │ ├── Well.js │ │ │ ├── index.js │ │ │ ├── styleMaps.js │ │ │ └── utils │ │ │ │ ├── CustomPropTypes.js │ │ │ │ ├── EventListener.js │ │ │ │ ├── TransitionEvents.js │ │ │ │ ├── ValidComponentChildren.js │ │ │ │ ├── childrenToArray.js │ │ │ │ ├── childrenValueInputValidation.js │ │ │ │ ├── createChainedFunction.js │ │ │ │ ├── createContextWrapper.js │ │ │ │ ├── createSelectedEvent.js │ │ │ │ ├── deprecationWarning.js │ │ │ │ ├── domUtils.js │ │ │ │ ├── index.js │ │ │ │ └── overlayPositionUtils.js │ │ ├── test │ │ │ ├── .eslintrc │ │ │ ├── AlertSpec.js │ │ │ ├── BadgeSpec.js │ │ │ ├── BootstrapMixinSpec.js │ │ │ ├── BreadcrumbItemSpec.js │ │ │ ├── BreadcrumbSpec.js │ │ │ ├── ButtonGroupSpec.js │ │ │ ├── ButtonInputSpec.js │ │ │ ├── ButtonSpec.js │ │ │ ├── ButtonToolbarSpec.js │ │ │ ├── CarouselSpec.js │ │ │ ├── ColSpec.js │ │ │ ├── CollapseSpec.js │ │ │ ├── CollapsibleNavSpec.js │ │ │ ├── DropdownButtonSpec.js │ │ │ ├── DropdownMenuSpec.js │ │ │ ├── DropdownSpec.js │ │ │ ├── DropdownToggleSpec.js │ │ │ ├── FadeSpec.js │ │ │ ├── FormControlsSpec.js │ │ │ ├── FormGroupSpec.js │ │ │ ├── GlyphiconSpec.js │ │ │ ├── GridSpec.js │ │ │ ├── ImageSpec.js │ │ │ ├── InputSpec.js │ │ │ ├── JumbotronSpec.js │ │ │ ├── LabelSpec.js │ │ │ ├── ListGroupItemSpec.js │ │ │ ├── ListGroupSpec.js │ │ │ ├── MenuItemSpec.js │ │ │ ├── ModalSpec.js │ │ │ ├── NavBrandSpec.js │ │ │ ├── NavDropdownSpec.js │ │ │ ├── NavItemSpec.js │ │ │ ├── NavSpec.js │ │ │ ├── NavbarSpec.js │ │ │ ├── OverlayTriggerSpec.js │ │ │ ├── PageHeaderSpec.js │ │ │ ├── PageItemSpec.js │ │ │ ├── PagerSpec.js │ │ │ ├── PaginationSpec.js │ │ │ ├── PanelGroupSpec.js │ │ │ ├── PanelSpec.js │ │ │ ├── PopoverSpec.js │ │ │ ├── ProgressBarSpec.js │ │ │ ├── ResponsiveEmbedSpec.js │ │ │ ├── RowSpec.js │ │ │ ├── SafeAnchorSpec.js │ │ │ ├── SplitButtonSpec.js │ │ │ ├── TabSpec.js │ │ │ ├── TableSpec.js │ │ │ ├── TabsSpec.js │ │ │ ├── ThumbnailSpec.js │ │ │ ├── TooltipSpec.js │ │ │ ├── WellSpec.js │ │ │ ├── helpers.js │ │ │ ├── index.js │ │ │ ├── server │ │ │ │ └── ModalSpec.js │ │ │ └── utils │ │ │ │ ├── createChainedFunctionSpec.js │ │ │ │ └── deprecationWarningSpec.js │ │ ├── tools │ │ │ ├── .eslintrc │ │ │ ├── amd │ │ │ │ ├── README.md │ │ │ │ ├── bower.json │ │ │ │ └── build.js │ │ │ ├── build-cli.js │ │ │ ├── build.js │ │ │ ├── buildBabel.js │ │ │ ├── constants.js │ │ │ ├── dist │ │ │ │ └── build.js │ │ │ ├── exec.js │ │ │ ├── fs-utils.js │ │ │ ├── lib │ │ │ │ └── build.js │ │ │ └── promisify.js │ │ ├── webpack.config.js │ │ ├── webpack.docs.js │ │ └── webpack │ │ │ ├── base.config.js │ │ │ ├── docs.config.js │ │ │ ├── test-coverage.config.js │ │ │ ├── test.config.js │ │ │ └── webpack.config.js │ ├── routes │ │ └── post.routes.js │ ├── sass │ │ ├── common.scss │ │ ├── font.scss │ │ ├── footer.scss │ │ ├── full-post.scss │ │ ├── pagination.scss │ │ └── post-list.scss │ ├── src │ │ ├── IncludeHandler.js │ │ ├── actions │ │ │ ├── AllPostActions.js │ │ │ └── SinglePostActions.js │ │ ├── alt.js │ │ ├── analytics.js │ │ ├── client.js │ │ ├── components │ │ │ ├── App.jsx │ │ │ ├── Footer.jsx │ │ │ ├── Header.jsx │ │ │ ├── JsxIncludes.js │ │ │ ├── Pagination.jsx │ │ │ ├── PostListHeader.jsx │ │ │ ├── PostListView.jsx │ │ │ ├── PostPreview.jsx │ │ │ └── SinglePostView.jsx │ │ ├── mixins │ │ │ └── AuthorMixin.jsx │ │ ├── routes.jsx │ │ └── stores │ │ │ ├── AllPostStore.js │ │ │ └── SinglePostStore.js │ └── views │ │ ├── error │ │ ├── 404.html │ │ └── 500.html │ │ └── index.jade ├── square.py ├── status_server │ └── api │ │ ├── __init__.py │ │ └── v1 │ │ ├── __init__.py │ │ ├── app.py │ │ └── views │ │ ├── __init__.py │ │ └── index.py └── user.py ├── LICENSE └── README.md /0x00-challenge/1-print_square.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/node 2 | /* 3 | Print a square with the character # 4 | 5 | The size of the square must be the first argument 6 | of the program. 7 | */ 8 | 9 | 10 | if (process.argv.length <= 2) { 11 | process.stderr.write("Missing argument\n"); 12 | process.stderr.write("Usage: ./1-print_square.js \n"); 13 | process.stderr.write("Example: ./1-print_square.js 8\n"); 14 | process.exit(1) 15 | } 16 | 17 | size = parseInt(process.argv[2], 10) 18 | 19 | for (let i = 0 ; i < size ; i ++) { 20 | for (let j = 0 ; j < size ; j ++) { 21 | process.stdout.write("#"); 22 | } 23 | process.stdout.write("\n"); 24 | } 25 | -------------------------------------------------------------------------------- /0x00-challenge/2-sort.rb: -------------------------------------------------------------------------------- 1 | ### 2 | # 3 | # Sort integer arguments (ascending) 4 | # 5 | ### 6 | 7 | result = [] 8 | ARGV.each do |arg| 9 | # skip if not integer 10 | next if arg !~ /^-?[0-9]+$/ 11 | 12 | # convert to integer 13 | i_arg = arg.to_i 14 | 15 | # insert result at the right position 16 | is_inserted = false 17 | i = 0 18 | l = result.size 19 | while !is_inserted && i < l do 20 | if result[i] < i_arg 21 | i += 1 22 | else 23 | result.insert(i , i_arg) 24 | is_inserted = true 25 | break 26 | end 27 | end 28 | result << i_arg if !is_inserted 29 | end 30 | 31 | puts result 32 | -------------------------------------------------------------------------------- /0x00-challenge/4-delete_dnodeint/add_dnodeint_end.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "lists.h" 4 | 5 | /** 6 | * add_dnodeint_end - Add a node at the end of a list 7 | * 8 | * @head: The address of the pointer to the first element of the list 9 | * @n: The number to store in the new element 10 | * 11 | * Return: A pointer to the new element 12 | */ 13 | dlistint_t *add_dnodeint_end(dlistint_t **head, const int n) 14 | { 15 | dlistint_t *new; 16 | dlistint_t *l; 17 | 18 | new = malloc(sizeof(dlistint_t)); 19 | if (new == NULL) 20 | { 21 | return (NULL); 22 | } 23 | new->n = n; 24 | new->next = NULL; 25 | if (*head == NULL) 26 | { 27 | *head = new; 28 | new->prev = NULL; 29 | return (new); 30 | } 31 | l = *head; 32 | while (l->next != NULL) 33 | { 34 | l = l->next; 35 | } 36 | l->next = new; 37 | new->prev = l; 38 | return (new); 39 | } 40 | -------------------------------------------------------------------------------- /0x00-challenge/4-delete_dnodeint/free_dlistint.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "lists.h" 4 | 5 | /** 6 | * free_dlistint - Free a list 7 | * 8 | * @head: A pointer to the first element of the list 9 | */ 10 | void free_dlistint(dlistint_t *head) 11 | { 12 | dlistint_t *node; 13 | 14 | while (head) 15 | { 16 | node = head; 17 | head = head->next; 18 | free(node); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /0x00-challenge/4-delete_dnodeint/lists.h: -------------------------------------------------------------------------------- 1 | #ifndef _LISTS_H_ 2 | #define _LISTS_H_ 3 | 4 | #include 5 | 6 | /** 7 | * struct dlistint_s - doubly linked list 8 | * @n: integer 9 | * @prev: points to the prev node 10 | * @next: points to the next node 11 | * 12 | * Description: doubly linked list node structure 13 | * for Holberton project 14 | */ 15 | typedef struct dlistint_s 16 | { 17 | int n; 18 | struct dlistint_s *prev; 19 | struct dlistint_s *next; 20 | } dlistint_t; 21 | 22 | size_t print_dlistint(const dlistint_t *h); 23 | dlistint_t *add_dnodeint_end(dlistint_t **head, const int n); 24 | int delete_dnodeint_at_index(dlistint_t **head, unsigned int index); 25 | void free_dlistint(dlistint_t *head); 26 | 27 | #endif -------------------------------------------------------------------------------- /0x00-challenge/4-delete_dnodeint/print_dlistint.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "lists.h" 3 | 4 | /** 5 | * print_dlistint - Prints a doubly linkedlist of integers 6 | * 7 | * @h: A pointer to the first element of a list 8 | * 9 | * Return: The number of element printed 10 | */ 11 | size_t print_dlistint(const dlistint_t *h) 12 | { 13 | size_t n; 14 | 15 | n = 0; 16 | while (h) 17 | { 18 | printf("%d\n", h->n); 19 | h = h->next; 20 | n++; 21 | } 22 | return (n); 23 | } 24 | -------------------------------------------------------------------------------- /0x00-challenge/README.md: -------------------------------------------------------------------------------- 1 | 0x00-challenge 2 | -------------------------------------------------------------------------------- /0x01-challenge/README.md: -------------------------------------------------------------------------------- 1 | # Fix-my-code-1 2 | -------------------------------------------------------------------------------- /0x01-challenge/blog/README.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | Blog application: 4 | 5 | ## How to install it: 6 | 7 | - `$ gem install bundler` 8 | - `$ bundle install` 9 | - `$ rails db:migrate RAILS_ENV=development` 10 | 11 | ## How to run the server 12 | 13 | `$ rails s -b 0.0.0.0 -p 5000` 14 | 15 | ## How to start the rails console 16 | 17 | `$ rails c` 18 | 19 | ## Admin account 20 | 21 | - email: `hbtn@hbtn.io` 22 | - password: `toto1234` 23 | -------------------------------------------------------------------------------- /0x01-challenge/blog/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../javascripts .js 3 | //= link_directory ../stylesheets .css 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/app/assets/images/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // compiled file. JavaScript code in this file should be added after the last require_* statement. 9 | // 10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11 | // about supported directives. 12 | // 13 | //= require jquery 14 | //= require jquery_ujs 15 | //= require turbolinks 16 | //= require_tree . 17 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/javascripts/cable.js: -------------------------------------------------------------------------------- 1 | // Action Cable provides the framework to deal with WebSockets in Rails. 2 | // You can generate new channels where WebSocket features live using the rails generate channel command. 3 | // 4 | //= require action_cable 5 | //= require_self 6 | //= require_tree ./channels 7 | 8 | (function() { 9 | this.App || (this.App = {}); 10 | 11 | App.cable = ActionCable.createConsumer(); 12 | 13 | }).call(this); 14 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/javascripts/channels/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/app/assets/javascripts/channels/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/javascripts/comments.coffee: -------------------------------------------------------------------------------- 1 | # Place all the behaviors and hooks related to the matching controller here. 2 | # All this logic will automatically be available in application.js. 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/javascripts/posts.coffee: -------------------------------------------------------------------------------- 1 | # Place all the behaviors and hooks related to the matching controller here. 2 | # All this logic will automatically be available in application.js. 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/stylesheets/comments.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the Comments controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/assets/stylesheets/posts.scss: -------------------------------------------------------------------------------- 1 | // Place all the styles related to the posts controller here. 2 | // They will automatically be included in application.css. 3 | // You can use Sass (SCSS) here: http://sass-lang.com/ 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/channels/application_cable/channel.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Channel < ActionCable::Channel::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/channels/application_cable/connection.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Connection < ActionCable::Connection::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | protect_from_forgery with: :exception 3 | end 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/controllers/comments_controller.rb: -------------------------------------------------------------------------------- 1 | class CommentsController < ApplicationController 2 | 3 | def create 4 | @post = Post.find(params[:post_id]) 5 | @comment = @post.comments.create(params[:comment].permit(:name, :body)) 6 | 7 | redirect_to post_path(@post) 8 | end 9 | 10 | def destroy 11 | @post = Post.find(params[:post_id]) 12 | @comment = @post.comments.find(params[:id]) 13 | @comment.destroy 14 | 15 | redirect_to post_path(@post) 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/app/controllers/pages_controller.rb: -------------------------------------------------------------------------------- 1 | class PagesController < ApplicationController 2 | def about 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/helpers/comments_helper.rb: -------------------------------------------------------------------------------- 1 | module CommentsHelper 2 | end 3 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/helpers/posts_helper.rb: -------------------------------------------------------------------------------- 1 | module PostsHelper 2 | end 3 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | end 3 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/mailers/application_mailer.rb: -------------------------------------------------------------------------------- 1 | class ApplicationMailer < ActionMailer::Base 2 | default from: 'from@example.com' 3 | layout 'mailer' 4 | end 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/comment.rb: -------------------------------------------------------------------------------- 1 | class Comment < ApplicationRecord 2 | belongs_to :post 3 | end 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/app/models/concerns/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/install.rb: -------------------------------------------------------------------------------- 1 | class Install < ApplicationRecord 2 | # Include default devise modules. Others available are: 3 | # :confirmable, :lockable, :timeoutable and :omniauthable 4 | devise :database_authenticatable, :registerable, 5 | :recoverable, :rememberable, :trackable, :validatable 6 | end 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/post.rb: -------------------------------------------------------------------------------- 1 | class Post < ApplicationRecord 2 | has_many :comments, dependent: :destroy 3 | validates :title, presence: true, length: {minimum: 5} 4 | validates :body, presence: true 5 | end 6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/models/user.rb: -------------------------------------------------------------------------------- 1 | class User < ApplicationRecord 2 | # Include default devise modules. Others available are: 3 | # :confirmable, :lockable, :timeoutable and :omniauthable 4 | devise :database_authenticatable, :registerable, 5 | :recoverable, :rememberable, :trackable, :validatable 6 | end 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/comments/_comment.html.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 |

<%= comment.name %>

4 |

<%= comment.body %>

5 |

<%= time_ago_in_words(comment.created_at) %> Ago

6 |
7 | 8 | <% if user_signed_in? %> 9 |

<%= link_to 'Delete', [comment.post, comment], method: :delete, class: "button", data: { confirm: 'Are you sure?' } %>

10 | <% end %> 11 |
12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/comments/_form.html.erb: -------------------------------------------------------------------------------- 1 | <%= form_for([@post, @post.comments.build]) do |f| %> 2 |

3 | <%= f.label :name %>
4 | <%= f.text_field :name %> 5 |

6 |

7 | <%= f.label :body %>
8 | <%= f.text_area :body %> 9 |

10 |
11 |

12 | <%= f.submit %> 13 |

14 | <% end %> 15 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/confirmations/new.html.erb: -------------------------------------------------------------------------------- 1 |

Resend confirmation instructions

2 | 3 | <%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %> 4 | <%= devise_error_messages! %> 5 | 6 |
7 | <%= f.label :email %>
8 | <%= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %> 9 |
10 | 11 |
12 | <%= f.submit "Resend confirmation instructions" %> 13 |
14 | <% end %> 15 | 16 | <%= render "devise/shared/links" %> 17 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/mailer/confirmation_instructions.html.erb: -------------------------------------------------------------------------------- 1 |

Welcome <%= @email %>!

2 | 3 |

You can confirm your account email through the link below:

4 | 5 |

<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %>

6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/mailer/password_change.html.erb: -------------------------------------------------------------------------------- 1 |

Hello <%= @resource.email %>!

2 | 3 |

We're contacting you to notify you that your password has been changed.

4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/mailer/reset_password_instructions.html.erb: -------------------------------------------------------------------------------- 1 |

Hello <%= @resource.email %>!

2 | 3 |

Someone has requested a link to change your password. You can do this through the link below.

4 | 5 |

<%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %>

6 | 7 |

If you didn't request this, please ignore this email.

8 |

Your password won't change until you access the link above and create a new one.

9 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/mailer/unlock_instructions.html.erb: -------------------------------------------------------------------------------- 1 |

Hello <%= @resource.email %>!

2 | 3 |

Your account has been locked due to an excessive number of unsuccessful sign in attempts.

4 | 5 |

Click the link below to unlock your account:

6 | 7 |

<%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %>

8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/passwords/edit.html.erb: -------------------------------------------------------------------------------- 1 |

Change your password

2 | 3 | <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %> 4 | <%= devise_error_messages! %> 5 | <%= f.hidden_field :reset_password_token %> 6 | 7 |
8 | <%= f.label :password, "New password" %>
9 | <% if @minimum_password_length %> 10 | (<%= @minimum_password_length %> characters minimum)
11 | <% end %> 12 | <%= f.password_field :password, autofocus: true, autocomplete: "off" %> 13 |
14 | 15 |
16 | <%= f.label :password_confirmation, "Confirm new password" %>
17 | <%= f.password_field :password_confirmation, autocomplete: "off" %> 18 |
19 | 20 |
21 | <%= f.submit "Change my password" %> 22 |
23 | <% end %> 24 | 25 | <%= render "devise/shared/links" %> 26 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/passwords/new.html.erb: -------------------------------------------------------------------------------- 1 |

Forgot your password?

2 | 3 | <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> 4 | <%= devise_error_messages! %> 5 | 6 |
7 | <%= f.label :email %>
8 | <%= f.email_field :email, autofocus: true %> 9 |
10 | 11 |
12 | <%= f.submit "Send me reset password instructions" %> 13 |
14 | <% end %> 15 | 16 | <%= render "devise/shared/links" %> 17 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/registrations/new.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

Sign up

3 | 4 | <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 5 | <%= devise_error_messages! %> 6 | 7 |
8 | <%= f.label :email %>
9 | <%= f.email_field :email, autofocus: true %> 10 |
11 |
12 |
13 | <%= f.label :password %> 14 | <% if @minimum_password_length %> 15 | (<%= @minimum_password_length %> characters minimum) 16 | <% end %>
17 | <%= f.password_field :password, autocomplete: "off" %> 18 |
19 |
20 |
21 | <%= f.label :password_confirmation %>
22 | <%= f.password_field :password_confirmation, autocomplete: "off" %> 23 |
24 |
25 |
26 | <%= f.submit "Sign up" %> 27 |
28 | <% end %> 29 |
30 | <%= render "devise/shared/links" %> 31 | 32 |
33 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/sessions/new.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

Log in

3 | 4 | <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> 5 |
6 | <%= f.label :email %>
7 | <%= f.email_field :email, autofocus: true %> 8 |
9 |
10 |
11 | <%= f.label :password %>
12 | <%= f.password_field :password, autocomplete: "off" %> 13 |
14 |
15 | <% if devise_mapping.rememberable? -%> 16 |
17 | <%= f.check_box :remember_me %> 18 | <%= f.label :remember_me %> 19 |
20 | <% end -%> 21 |
22 |
23 | <%= f.submit "Log in" %> 24 |
25 | <% end %> 26 |
27 | <%= render "devise/shared/links" %> 28 |
29 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/devise/unlocks/new.html.erb: -------------------------------------------------------------------------------- 1 |

Resend unlock instructions

2 | 3 | <%= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| %> 4 | <%= devise_error_messages! %> 5 | 6 |
7 | <%= f.label :email %>
8 | <%= f.email_field :email, autofocus: true %> 9 |
10 | 11 |
12 | <%= f.submit "Resend unlock instructions" %> 13 |
14 | <% end %> 15 | 16 | <%= render "devise/shared/links" %> 17 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/layouts/mailer.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | <%= yield %> 12 | 13 | 14 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/layouts/mailer.text.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/pages/about.html.erb: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/posts/_form.html.erb: -------------------------------------------------------------------------------- 1 | <%= form_for @post do |f| %> 2 | <% if @post.errors.any? %> 3 |
4 |

<%= pluralize(@post.errors.count, "error") %> prevented this post from saving:

5 |
    6 | <% @post.errors.full_messages.each do |msg| %> 7 |
  • <%= msg %>
  • 8 | <% end %> 9 |
10 |
11 | <% end %> 12 |

13 | <%= f.label :title %> 14 | <%= f.text_field :title %> 15 |

16 |

17 | <%= f.label :body %> 18 | <%= f.text_area :body %> 19 |

20 | 21 |

22 | <%= f.submit %> 23 |

24 | <% end %> 25 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/posts/edit.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

Edit Post

3 | 4 | <%= render 'form' %> 5 | 6 |
7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/posts/index.html.erb: -------------------------------------------------------------------------------- 1 | <% @posts.each do |post| %> 2 |
3 |

<%= link_to post.title, post %>

4 |

<%= post.created_at.strftime("%B, %d, %Y") %>

5 |
6 | <% end %> 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/posts/new.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

New Post

3 | 4 | <%= render 'form' %> 5 | 6 |
7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/app/views/posts/show.html.erb: -------------------------------------------------------------------------------- 1 |
2 |

3 | <%= @post.title %> 4 |

5 | 6 |

7 | Submitted <%= time_ago_in_words(@post.created_at) %> Ago 8 | <% if user_signed_in? %> 9 | | <%= link_to 'Edit', edit_post_path(@post) %> 10 | | <%= link_to 'Delete', post_path(@post), method: :delete, data: { confirm: 'Are you sure?' } %> 11 | <% end %> 12 |

13 | 14 |

15 | <%= @post.body %> 16 |

17 | 18 |
19 |

<%= @post.comments.count %> Comments

20 | <%= render @post.comments %> 21 | 22 |

Add a comment :

23 | <%= render "comments/form" %> 24 |
25 |
26 | -------------------------------------------------------------------------------- /0x01-challenge/blog/bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path('../spring', __FILE__) 4 | rescue LoadError => e 5 | raise unless e.message.include?('spring') 6 | end 7 | APP_PATH = File.expand_path('../config/application', __dir__) 8 | require_relative '../config/boot' 9 | require 'rails/commands' 10 | -------------------------------------------------------------------------------- /0x01-challenge/blog/bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path('../spring', __FILE__) 4 | rescue LoadError => e 5 | raise unless e.message.include?('spring') 6 | end 7 | require_relative '../config/boot' 8 | require 'rake' 9 | Rake.application.run 10 | -------------------------------------------------------------------------------- /0x01-challenge/blog/bin/spring: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # This file loads spring without using Bundler, in order to be fast. 4 | # It gets overwritten when you run the `spring binstub` command. 5 | 6 | unless defined?(Spring) 7 | require 'rubygems' 8 | require 'bundler' 9 | 10 | lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) 11 | spring = lockfile.specs.detect { |spec| spec.name == "spring" } 12 | if spring 13 | Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path 14 | gem 'spring', spring.version 15 | require 'spring/binstub' 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /0x01-challenge/blog/bin/update: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'pathname' 3 | require 'fileutils' 4 | include FileUtils 5 | 6 | # path to your application root. 7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) 8 | 9 | def system!(*args) 10 | system(*args) || abort("\n== Command #{args} failed ==") 11 | end 12 | 13 | chdir APP_ROOT do 14 | # This script is a way to update your development environment automatically. 15 | # Add necessary update steps to this file. 16 | 17 | puts '== Installing dependencies ==' 18 | system! 'gem install bundler --conservative' 19 | system('bundle check') || system!('bundle install') 20 | 21 | puts "\n== Updating database ==" 22 | system! 'bin/rails db:migrate' 23 | 24 | puts "\n== Removing old logs and tempfiles ==" 25 | system! 'bin/rails log:clear tmp:clear' 26 | 27 | puts "\n== Restarting application server ==" 28 | system! 'bin/rails restart' 29 | end 30 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative 'config/environment' 4 | 5 | run Rails.application 6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/application.rb: -------------------------------------------------------------------------------- 1 | require_relative 'boot' 2 | 3 | require 'rails/all' 4 | 5 | # Require the gems listed in Gemfile, including any gems 6 | # you've limited to :test, :development, or :production. 7 | Bundler.require(*Rails.groups) 8 | 9 | module RailsBlog 10 | class Application < Rails::Application 11 | # Settings in config/environments/* take precedence over those specified here. 12 | # Application configuration should go into files in config/initializers 13 | # -- all .rb files in that directory are automatically loaded. 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 2 | 3 | require 'bundler/setup' # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: async 6 | 7 | production: 8 | adapter: redis 9 | url: redis://localhost:6379/1 10 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: 5 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ApplicationController.renderer.defaults.merge!( 4 | # http_host: 'example.org', 5 | # https: false 6 | # ) 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. 11 | # Rails.application.config.assets.precompile += %w( search.js ) 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_rails-blog_session' 4 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/routes.rb: -------------------------------------------------------------------------------- 1 | Rails.application.routes.draw do 2 | devise_for :users 3 | devise_for :installs 4 | # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 5 | resources :posts do 6 | resources :comments 7 | end 8 | root "posts#index" 9 | 10 | get '/about', to: 'pages#about' 11 | end 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/config/spring.rb: -------------------------------------------------------------------------------- 1 | %w( 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ).each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /0x01-challenge/blog/db/development.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/db/development.sqlite3 -------------------------------------------------------------------------------- /0x01-challenge/blog/db/migrate/20170124001207_create_posts.rb: -------------------------------------------------------------------------------- 1 | class CreatePosts < ActiveRecord::Migration[5.0] 2 | def change 3 | create_table :posts do |t| 4 | t.string :title 5 | t.text :body 6 | 7 | t.timestamps 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /0x01-challenge/blog/db/migrate/20170124151721_create_comments.rb: -------------------------------------------------------------------------------- 1 | class CreateComments < ActiveRecord::Migration[5.0] 2 | def change 3 | create_table :comments do |t| 4 | t.string :name 5 | t.text :body 6 | t.references :post, foreign_key: true 7 | 8 | t.timestamps 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/db/seeds.rb: -------------------------------------------------------------------------------- 1 | # This file should contain all the record creation needed to seed the database with its default values. 2 | # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup). 3 | # 4 | # Examples: 5 | # 6 | # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) 7 | # Character.create(name: 'Luke', movie: movies.first) 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/lib/assets/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/lib/tasks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/lib/tasks/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/log/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/public/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/public/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /0x01-challenge/blog/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/public/apple-touch-icon.png -------------------------------------------------------------------------------- /0x01-challenge/blog/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/public/favicon.ico -------------------------------------------------------------------------------- /0x01-challenge/blog/public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/controllers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/controllers/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/controllers/comments_controller_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class CommentsControllerTest < ActionDispatch::IntegrationTest 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/controllers/posts_controller_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class PostsControllerTest < ActionDispatch::IntegrationTest 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/fixtures/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/comments.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | one: 4 | name: MyString 5 | body: MyText 6 | post: one 7 | 8 | two: 9 | name: MyString 10 | body: MyText 11 | post: two 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/files/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/fixtures/files/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/installs.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | # This model initially had no columns defined. If you add columns to the 4 | # model remove the '{}' from the fixture names and add the columns immediately 5 | # below each fixture, per the syntax in the comments below 6 | # 7 | one: {} 8 | # column: value 9 | # 10 | two: {} 11 | # column: value 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/posts.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | one: 4 | title: MyString 5 | body: MyText 6 | 7 | two: 8 | title: MyString 9 | body: MyText 10 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/fixtures/users.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 2 | 3 | # This model initially had no columns defined. If you add columns to the 4 | # model remove the '{}' from the fixture names and add the columns immediately 5 | # below each fixture, per the syntax in the comments below 6 | # 7 | one: {} 8 | # column: value 9 | # 10 | two: {} 11 | # column: value 12 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/helpers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/helpers/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/integration/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/integration/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/mailers/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/test/models/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/test/models/comment_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class CommentTest < ActiveSupport::TestCase 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/models/install_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class InstallTest < ActiveSupport::TestCase 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/models/post_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class PostTest < ActiveSupport::TestCase 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/models/user_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class UserTest < ActiveSupport::TestCase 4 | # test "the truth" do 5 | # assert true 6 | # end 7 | end 8 | -------------------------------------------------------------------------------- /0x01-challenge/blog/test/test_helper.rb: -------------------------------------------------------------------------------- 1 | ENV['RAILS_ENV'] ||= 'test' 2 | require File.expand_path('../../config/environment', __FILE__) 3 | require 'rails/test_help' 4 | 5 | class ActiveSupport::TestCase 6 | # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. 7 | fixtures :all 8 | 9 | # Add more helper methods to be used by all tests here... 10 | end 11 | -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/-4/-4Iz1QtpXcIMwbce3FFNTGnGTtlhsZPD5Q-jh7VGBgs.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/-4/-4Iz1QtpXcIMwbce3FFNTGnGTtlhsZPD5Q-jh7VGBgs.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/0t/0tBN7CpG0GdAzd2V3WdXj-RaJx-U7oIBmjHOEWJ3Oq0.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/0t/0tBN7CpG0GdAzd2V3WdXj-RaJx-U7oIBmjHOEWJ3Oq0.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/1v/1v8DUfyZLe3TNcn_TarN6cL21TbtpxiQ5xULHrE3GHg.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/1v/1v8DUfyZLe3TNcn_TarN6cL21TbtpxiQ5xULHrE3GHg.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/3L/3L4r4UQWc-XG5qAf06ToDLIsPrOjaPxuP1wGq6_ehgs.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"ufile-digest:///home/vagrant/.rvm/gems/ruby-2.3.1/gems/jquery-rails-4.2.2/vendor/assets/javascripts/jquery_ujs.js;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/3c/3cJUhBesAUu2ZfyWQv5l-Ji-VCkrTXg0Qn_GyqSC-zE.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&engines=.scss;TTI"efile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/application.scss;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"dfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/_normalize.scss;TTI"bfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/comments.scss;TTI"_file-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/posts.scss;TTI"Tfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/4P/4PVEjscMV8XunfQoAS4lcFO3j1SK2Mf93gMmBz62mlU.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/4P/4PVEjscMV8XunfQoAS4lcFO3j1SK2Mf93gMmBz62mlU.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/6E/6E606oj0Q5p_ctSCsiGJG-VnjBkaDlnalRYFK-VbMIo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/6E/6E606oj0Q5p_ctSCsiGJG-VnjBkaDlnalRYFK-VbMIo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/70/70XNiXJ_-AJ5FbNhvh8cLx-NN9yOBcodFmxzI8Qh8yI.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/70/70XNiXJ_-AJ5FbNhvh8cLx-NN9yOBcodFmxzI8Qh8yI.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/7G/7GegKhso8_ooMfAnLhSFfpOskbJT8sfrtvjHMmdPr4Y.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/7G/7GegKhso8_ooMfAnLhSFfpOskbJT8sfrtvjHMmdPr4Y.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/7e/7eRhadV2fDVHPoU7W4l2Ty0530FkOwUHYAQOnj7DMzk.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"pfile-digest:///home/vagrant/.rvm/gems/ruby-2.3.1/gems/actioncable-5.0.1/lib/assets/compiled/action_cable.js;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/8X/8Xc0hQMUwIbDLwrfPtUOr1w5Uc4CUOhYxq6mX2ioTuw.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"jprocessors:type=application/javascript&file_type=application/javascript&engines=.coffee&pipeline=self;TTI"afile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/javascripts/posts.coffee;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/B_/B_kgxPjYP7xyQXjytJwn1vG_CYPHaWEk0kFFs9_FUa8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/B_/B_kgxPjYP7xyQXjytJwn1vG_CYPHaWEk0kFFs9_FUa8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/C2/C2q5vKYPx2iMTfU5DNG_80e6wl_sOzhSBJcIvQ_s6O8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/C2/C2q5vKYPx2iMTfU5DNG_80e6wl_sOzhSBJcIvQ_s6O8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/CA/CAD22mhymbzftK3sJaAeoYMKP70DFWtFTDDrsLyG594.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/CA/CAD22mhymbzftK3sJaAeoYMKP70DFWtFTDDrsLyG594.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Db/DbdYHIB09GQq3hXSmAHPXPJkgoLBnN058veLcVRW6jU.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Db/DbdYHIB09GQq3hXSmAHPXPJkgoLBnN058veLcVRW6jU.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EL/ELNziigNfXMIjYxNDpthI0ZePslrfhss0hhJZGZb1w0.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EL/ELNziigNfXMIjYxNDpthI0ZePslrfhss0hhJZGZb1w0.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EP/EPny8CSEldWNZLPRJwm3RkMm8fAyo2MaxKz_apw9OjQ.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EP/EPny8CSEldWNZLPRJwm3RkMm8fAyo2MaxKz_apw9OjQ.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EP/epdNXBi41k_Qg39LZG3YPvBFYXm6Ya-NtZOABiqp8qg.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/EP/epdNXBi41k_Qg39LZG3YPvBFYXm6Ya-NtZOABiqp8qg.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Eb/Ebq_J6okRILPbKdEpXgs4B5ybpG3ZHzEBxIgar9V-B8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Eb/Ebq_J6okRILPbKdEpXgs4B5ybpG3ZHzEBxIgar9V-B8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/G9/G9dObMHsMQQcmQuYL6MhtYI7JT4OXrCwKYiLYG4BpxM.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"efile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/application.scss;TTI"Tfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets;TTI"dfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/_normalize.scss;TTI"bfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/comments.scss;TTI"_file-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/posts.scss;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/GE/GEGtQMoDQISANJgaIT2lytWX2gfLT86GaodzO8SUoXs.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/GE/GEGtQMoDQISANJgaIT2lytWX2gfLT86GaodzO8SUoXs.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/GI/GId3Guf_fZf3nrXvBwJH3cCJnYVUXPHebhX5f8ABadc.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/GI/GId3Guf_fZf3nrXvBwJH3cCJnYVUXPHebhX5f8ABadc.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Gs/GsV70s6Ji3ZYWMq__0GYn64SBJp1YWpFr_V7Ciys-CI.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Gs/GsV70s6Ji3ZYWMq__0GYn64SBJp1YWpFr_V7Ciys-CI.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Hu/HugYFQG_rqjtk5mw1GjGLpL1NR0WnpGXDjYjCC6_pPQ.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Hu/HugYFQG_rqjtk5mw1GjGLpL1NR0WnpGXDjYjCC6_pPQ.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Ib/IbDMJ623wj0hwPTmE6DMVm0EderdWDfeDS9xLMB6zm4.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Ib/IbDMJ623wj0hwPTmE6DMVm0EderdWDfeDS9xLMB6zm4.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Im/ImwNcwKD7kAQQgkK6uy718QhXpRXMIhe6intXTJCAL8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Im/ImwNcwKD7kAQQgkK6uy718QhXpRXMIhe6intXTJCAL8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Jw/JwVdxwYe2M0H_JVkcGXMwtDtKth7yp7Rs9aLq-3Vq_c.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Jw/JwVdxwYe2M0H_JVkcGXMwtDtKth7yp7Rs9aLq-3Vq_c.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/MF/MFmBxiEPTzVo2U45YebCL-Zo1Z7MIHoCB-sZDuVfLOY.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/MF/MFmBxiEPTzVo2U45YebCL-Zo1Z7MIHoCB-sZDuVfLOY.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/MZ/MZRK4vnb04vrPlS8aoWeJbEN6k-T3ZoGCedM6to_qzI.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI":processors:type=image/svg+xml&file_type=image/svg+xml;TTI"Xfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/images/logo.svg;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/N5/N57OAsaECS2DeFCn_mAgzyUtmXyaViKoIPWdW2ROI04.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/N5/N57OAsaECS2DeFCn_mAgzyUtmXyaViKoIPWdW2ROI04.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/O0/O0QJKLCAALXn8Bkher3r2CRf86EzkfCzaOpgejh0Tgk.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/O0/O0QJKLCAALXn8Bkher3r2CRf86EzkfCzaOpgejh0Tgk.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/O_/O__EWXFcu46QvfZACME107ZpHnkulOzH6mTBO-NdQDc.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/O_/O__EWXFcu46QvfZACME107ZpHnkulOzH6mTBO-NdQDc.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Oz/OzUlv0XAmWdUFgo31_NFci4GOczrxCEPkw6ciAssIeo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Oz/OzUlv0XAmWdUFgo31_NFci4GOczrxCEPkw6ciAssIeo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/P-/P-NwRhI7ccn1UkzMe1lml3CK9pF84V_50Im56v8RYKk.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/P-/P-NwRhI7ccn1UkzMe1lml3CK9pF84V_50Im56v8RYKk.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/PH/PHgJxBodAK3KMwcih_V55I5ub5dRT5OZcprHC1qxNGY.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/PH/PHgJxBodAK3KMwcih_V55I5ub5dRT5OZcprHC1qxNGY.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Pz/Pz1P9rx8zj6hGH3NikdOdopmVwQLYb81a3hOPjYoSS8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Pz/Pz1P9rx8zj6hGH3NikdOdopmVwQLYb81a3hOPjYoSS8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/RS/RSXp9Uun1sD0hpS2Ym1uPP0TNSGAYOVN_oVEg8ViXpM.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/RS/RSXp9Uun1sD0hpS2Ym1uPP0TNSGAYOVN_oVEg8ViXpM.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Rt/Rt3AoS_YDeBSdzp4W0YhhdoL6rhvAqL6QgWg_7MPZRw.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"jprocessors:type=application/javascript&file_type=application/javascript&engines=.coffee&pipeline=self;TTI"dfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/javascripts/comments.coffee;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/TO/TOOZrA-IkofC8tmiL8HLxvbhkXf387mEudJxyTrgq2s.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/TO/TOOZrA-IkofC8tmiL8HLxvbhkXf387mEudJxyTrgq2s.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/TT/TTq38qv8Dc7EVht2znO_CUAYaIU2x8fwuSBm0tAcYl8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/TT/TTq38qv8Dc7EVht2znO_CUAYaIU2x8fwuSBm0tAcYl8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UA/UAXxNUgEBPHSy9KRhkkjiemKfciE2GYzz_QSlEZpWtY.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UA/UAXxNUgEBPHSy9KRhkkjiemKfciE2GYzz_QSlEZpWtY.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UL/ULjavcopv0jZMqlDH9fhCI6VDN68ol_08XfwTTg35IQ.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UL/ULjavcopv0jZMqlDH9fhCI6VDN68ol_08XfwTTg35IQ.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UR/URHJQQRgVFUptBfULTQSKfPdOFFB3SPa8gVCdcIN-k4.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/UR/URHJQQRgVFUptBfULTQSKfPdOFFB3SPa8gVCdcIN-k4.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Um/Umnr-u817BGaDC6YjbUn2JwG83rHNWJSY7MsftbSVfo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Um/Umnr-u817BGaDC6YjbUn2JwG83rHNWJSY7MsftbSVfo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/W5/W51_i7Ki0t5iUsiveg5kYO3CiWQiUEfsxuz7RuRT3sw.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/W5/W51_i7Ki0t5iUsiveg5kYO3CiWQiUEfsxuz7RuRT3sw.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/WL/WLd7sWvt1KcS6hMrtQG-yvybazijeLr7B4nlFw2aq94.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/WL/WLd7sWvt1KcS6hMrtQG-yvybazijeLr7B4nlFw2aq94.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Y5/Y5Ig3w3Cvl8xiCpb6xeuoZ_v6gvXM4_DVtpd2trtKAY.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Y5/Y5Ig3w3Cvl8xiCpb6xeuoZ_v6gvXM4_DVtpd2trtKAY.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache: -------------------------------------------------------------------------------- 1 | I"$(function() { 2 | 3 | 4 | }).call(this); 5 | :ET -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/_8/_8Cf3lV6bnx6jPzgm9PZJj0A91ZMKdbV4qGwU0u-8pk.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/_8/_8Cf3lV6bnx6jPzgm9PZJj0A91ZMKdbV4qGwU0u-8pk.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/af/afby1fOt8ba7SHH3tEQZPxFylCkVvVO1P-ejOdCPVtI.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/af/afby1fOt8ba7SHH3tEQZPxFylCkVvVO1P-ejOdCPVtI.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/b0/b0p9_WsdM3bOJ69n2P3RMbH-AGxuS7Yw67CtB-ICilg.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/b0/b0p9_WsdM3bOJ69n2P3RMbH-AGxuS7Yw67CtB-ICilg.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/b8/b8qCl0FYYJJVMyxCEWXKSLe9ZJKUDuFM-VGuSaUU6oE.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/b8/b8qCl0FYYJJVMyxCEWXKSLe9ZJKUDuFM-VGuSaUU6oE.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/c1/c1bf2wHoA-g0JMHKHmqCZcYXmQnDC2k97HSVJmHEfs0.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Mprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=debug;TTI"efile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/application.scss;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"dfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/_normalize.scss;TTI"bfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/comments.scss;TTI"_file-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/posts.scss;TTI"Tfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/cM/cMROkbqwqb0Dm-lCpcR80yK-lJr7QwnDdRxG9TCFneQ.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/cM/cMROkbqwqb0Dm-lCpcR80yK-lJr7QwnDdRxG9TCFneQ.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/cb/cb86St0XOekhtEfksTYLd3BJi8fQ7ZQioVOFoWqeo80.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/cb/cb86St0XOekhtEfksTYLd3BJi8fQ7ZQioVOFoWqeo80.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/cl/clYeoKlLfh8ThYSBiqi9_dI5uMgPNN_tpxMju9vg68w.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"bfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/comments.scss;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/dE/dEhpgX1dwkhIVMWYMuBJRcHc5Tp0mPFzMUyHm7Bv-c8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/dE/dEhpgX1dwkhIVMWYMuBJRcHc5Tp0mPFzMUyHm7Bv-c8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/dG/dGEolBTI3pemI_Jr1dDtUvl83eQD1pjoUaZbGkEESuo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/dG/dGEolBTI3pemI_Jr1dDtUvl83eQD1pjoUaZbGkEESuo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/e5/e53XnhcI3oA8EkmkoOKMVOXg37p2tKUB8ekJWuoWxGA.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/e5/e53XnhcI3oA8EkmkoOKMVOXg37p2tKUB8ekJWuoWxGA.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/em/emerpo8-4QIHmc1liJVkzcmULFp0Y96r3u9iZV_GZoo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/em/emerpo8-4QIHmc1liJVkzcmULFp0Y96r3u9iZV_GZoo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gD/gDCG1m8m3LBqegymlHMGF1zwtq-CaK6ToTsFFzvVS1g.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gD/gDCG1m8m3LBqegymlHMGF1zwtq-CaK6ToTsFFzvVS1g.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gY/gY4-cJOFUEYH-6ZCWhnZclNi4PICd-uZco2fC2G-43I.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gY/gY4-cJOFUEYH-6ZCWhnZclNi4PICd-uZco2fC2G-43I.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gk/gkyNqK2RL0HR6JqoSLdEXGsFscAnr0n8h23iYZPZ7sk.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"4processors:type=image/jpeg&file_type=image/jpeg;TTI"[file-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/images/profile.jpg;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gq/gq6kAOe-_GezJXNDTfV6l4hn1g1T_E0mA2-jSM7osl4.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/gq/gq6kAOe-_GezJXNDTfV6l4hn1g1T_E0mA2-jSM7osl4.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/hD/hDpV3g2E-f4Ys_KRfS7hMCgwaferoZoh_cYs_BI8atk.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/hD/hDpV3g2E-f4Ys_KRfS7hMCgwaferoZoh_cYs_BI8atk.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/hS/hS3A7zWIX9bzQglhC98mIQQ8rYgYF2AbcdqCTi7xMIM.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/hS/hS3A7zWIX9bzQglhC98mIQQ8rYgYF2AbcdqCTi7xMIM.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ij/ij037g79RnbyHtqFaRGq6DQD5h6SogbAwxBC5KsFIoM.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ij/ij037g79RnbyHtqFaRGq6DQD5h6SogbAwxBC5KsFIoM.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ij/ijJg1SMUtwhAo9w5b4rlZHKHnZE16TTex1oO1_NJf6s.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ij/ijJg1SMUtwhAo9w5b4rlZHKHnZE16TTex1oO1_NJf6s.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/jN/jN86f-BzMJXkTGcVIz2T9f_3I9W0WJmVGHu7gDgR7jo.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/jN/jN86f-BzMJXkTGcVIz2T9f_3I9W0WJmVGHu7gDgR7jo.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/k7/k7eiKO72_ZYgpQ3EKDjl4auGBz6lOm5-CGueS0XZB0Y.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"dfile-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/_normalize.scss;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/kB/kBdCQlyHWpsfYOAv7lSH-_UgovGXLcefHW_ssGOgDkw.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/kB/kBdCQlyHWpsfYOAv7lSH-_UgovGXLcefHW_ssGOgDkw.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/lG/lGcWFJpXw_3FtOZGGQuUN_gh9a08_W4F6YRqzSXWL7k.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/lG/lGcWFJpXw_3FtOZGGQuUN_gh9a08_W4F6YRqzSXWL7k.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/lY/lYiaBWp_L7Gj0emM2VvsUmYtAgWqk0Vrs7at6orIAOA.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/lY/lYiaBWp_L7Gj0emM2VvsUmYtAgWqk0Vrs7at6orIAOA.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/m3/m3Ffdk2qCWC8LKXzoX08sdTMUrr2k-R-kjtE9vI9HxA.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/m3/m3Ffdk2qCWC8LKXzoX08sdTMUrr2k-R-kjtE9vI9HxA.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/mK/mKyFOz4xXMA5XK8RMw6t0vs9DFkJcs-iRPF1cHrANy0.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/mK/mKyFOz4xXMA5XK8RMw6t0vs9DFkJcs-iRPF1cHrANy0.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/nG/nGC9JLYJ4n9NvefBHBO9Y6mVnvcj61Rod1rGbntRR3E.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"qfile-digest:///home/vagrant/.rvm/gems/ruby-2.3.1/gems/jquery-rails-4.2.2/vendor/assets/javascripts/jquery.js;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/nI/nIwkmY1CPq94l0g-fJAxdZUFFN21whkto-swdSgEAJE.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/nI/nIwkmY1CPq94l0g-fJAxdZUFFN21whkto-swdSgEAJE.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ol/olmLkA7OINaH1DPAgktf908cfJ4yipneXXlXu7BIe6I.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ol/olmLkA7OINaH1DPAgktf908cfJ4yipneXXlXu7BIe6I.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/pe/peJVA4AetIqR1uaETWJKAVv8fyt8vEwPSbinssS8ddQ.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/pe/peJVA4AetIqR1uaETWJKAVv8fyt8vEwPSbinssS8ddQ.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/q8/q8wGFsnE_Tyc6-ABSkEqTpFian3i322eSqMher-WlXY.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/q8/q8wGFsnE_Tyc6-ABSkEqTpFian3i322eSqMher-WlXY.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/qI/qIxLqsln1b6g59oh_lHCixwllXN_5xLb9vlR0LDdylQ.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"wfile-digest:///home/vagrant/.rvm/gems/ruby-2.3.1/gems/turbolinks-source-5.0.0/lib/assets/javascripts/turbolinks.js;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/qO/qOuOR8oJId156PAzgOZBNpzmd8T3RbaPZxryogTPGh8.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/qO/qOuOR8oJId156PAzgOZBNpzmd8T3RbaPZxryogTPGh8.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/rN/rNwiv5MF9Ztcn7w2bN2Ko8D-D4JHjXg-mzZPTgfI6xg.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/rN/rNwiv5MF9Ztcn7w2bN2Ko8D-D4JHjXg-mzZPTgfI6xg.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/r_/r_93aEN_RF7IYC67OZqgY9BK3LeHk_RcSOgQUd0PS5s.cache: -------------------------------------------------------------------------------- 1 | [o:Set: 2 | @hash} 3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"_file-digest:///vagrant/Fix%20my%20code%20%231-fixed/blog/app/assets/stylesheets/posts.scss;TTF -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ss/sszN_mRnRNd86ee4eVvZu__j_6xEh21ldBoMAkZb8Ek.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ss/sszN_mRnRNd86ee4eVvZu__j_6xEh21ldBoMAkZb8Ek.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/tX/tX2Qrtzo6LLOw2Ll0v0eYF-lVtOzPUSCggKGQbtvHzE.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/tX/tX2Qrtzo6LLOw2Ll0v0eYF-lVtOzPUSCggKGQbtvHzE.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/uG/uGvt08r1rHtiGuaNPC-s294UZeg20rNm8dVTEFKwYjE.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/uG/uGvt08r1rHtiGuaNPC-s294UZeg20rNm8dVTEFKwYjE.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wQ/wQJGNFqXztfj44KTvzJZ0QHImqwDbTAfUWJItHZu85Q.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wQ/wQJGNFqXztfj44KTvzJZ0QHImqwDbTAfUWJItHZu85Q.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wX/wX0BfFK05lscuV2JrRFqUA13K-CEXJYSP4EfRLqFKog.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wX/wX0BfFK05lscuV2JrRFqUA13K-CEXJYSP4EfRLqFKog.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wp/wptHSSlSS198N_3GcHpnXy3rJauhf9tqUWDE__rndls.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/wp/wptHSSlSS198N_3GcHpnXy3rJauhf9tqUWDE__rndls.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ww/wwxM-oakA2Hia-kqjPIxORvHFYJWfxCiQ1DO7xsxV4Q.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/ww/wwxM-oakA2Hia-kqjPIxORvHFYJWfxCiQ1DO7xsxV4Q.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/x_/x_wytkUu6skWrUcumKe06JGOBTMEP2Y3m-Ix4qWDUts.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/x_/x_wytkUu6skWrUcumKe06JGOBTMEP2Y3m-Ix4qWDUts.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/xu/xu2Q-1gSMSou8BorJ2TalhkDPkQzZTcGjYJaX_OFq0A.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/cache/assets/sprockets/v3.0/xu/xu2Q-1gSMSou8BorJ2TalhkDPkQzZTcGjYJaX_OFq0A.cache -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/pids/server.pid: -------------------------------------------------------------------------------- 1 | 4397 -------------------------------------------------------------------------------- /0x01-challenge/blog/tmp/restart.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/tmp/restart.txt -------------------------------------------------------------------------------- /0x01-challenge/blog/vendor/assets/javascripts/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/vendor/assets/javascripts/.keep -------------------------------------------------------------------------------- /0x01-challenge/blog/vendor/assets/stylesheets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/blog/vendor/assets/stylesheets/.keep -------------------------------------------------------------------------------- /0x01-challenge/react-blog/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/.DS_Store -------------------------------------------------------------------------------- /0x01-challenge/react-blog/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "public/lib" 3 | } -------------------------------------------------------------------------------- /0x01-challenge/react-blog/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .idea 3 | dump.rdb -------------------------------------------------------------------------------- /0x01-challenge/react-blog/README.md: -------------------------------------------------------------------------------- 1 | # React Blog 2 | 3 | Simple React Blog 4 | 5 | ### How to run 6 | 7 | 1. Install Gulp - `npm install -g gulp` 8 | 2. `npm install` to install dependencies. 9 | 3. Run `gulp build-all` to build the code. 10 | 4. Run `gulp nodemon` to start the server. 11 | 5. Go to http://localhost:5000/ 12 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/bin/www.js: -------------------------------------------------------------------------------- 1 | require("babel/register")({experimental: true}); 2 | require('../app'); -------------------------------------------------------------------------------- /0x01-challenge/react-blog/config.js: -------------------------------------------------------------------------------- 1 | var port = process.env.PORT || 5000; 2 | 3 | if (typeof window !== 'undefined') { 4 | port = window.location.port; 5 | } 6 | 7 | var config = { 8 | port: port, 9 | baseUrl : typeof window !== 'undefined' ? window.location.origin : "http://0.0.0.0:" + port, 10 | pageTitle: 'React Blog', 11 | itemsPerPage: 5, 12 | maxPageButtons: 3, 13 | googleAnalyticsId: '' 14 | }; 15 | 16 | module.exports = config; 17 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/css/includes.min.css: -------------------------------------------------------------------------------- 1 | .custom-panel-body{background-color:#ccc} -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/images/jonathan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/public/images/jonathan.jpg -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/lib/nprogress/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nprogress", 3 | "repo": "rstacruz/nprogress", 4 | "description": "slim progress bar", 5 | "version": "0.2.0", 6 | "keywords": [ 7 | "progress", 8 | "bar", 9 | "spinner" 10 | ], 11 | "license": "MIT", 12 | "main": [ 13 | "nprogress.js", 14 | "nprogress.css" 15 | ], 16 | "scripts": [ 17 | "nprogress.js" 18 | ], 19 | "styles": [ 20 | "nprogress.css" 21 | ], 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "components", 26 | "package.json", 27 | "test", 28 | "vendor" 29 | ], 30 | "homepage": "https://github.com/rstacruz/nprogress", 31 | "_release": "0.2.0", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "v0.2.0", 35 | "commit": "d3699f2104f80b4bbb8e2500f7ab939755b2b66b" 36 | }, 37 | "_source": "git://github.com/rstacruz/nprogress.git", 38 | "_target": "~0.2.0", 39 | "_originalSource": "nprogress", 40 | "_direct": true 41 | } -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/lib/nprogress/Notes.md: -------------------------------------------------------------------------------- 1 | Testing 2 | ------- 3 | 4 | $ npm install 5 | $ npm test 6 | 7 | or try it out in the browser: 8 | 9 | $ open test/index.html 10 | 11 | Testing component build 12 | ----------------------- 13 | 14 | $ component install 15 | $ component build 16 | $ open test/component.html 17 | 18 | Releasing 19 | --------- 20 | 21 | $ npm test 22 | $ bump *.json nprogress.js # bump version numbers 23 | $ git release 0.1.1 # release to bower/github 24 | $ npm publish # release to npm 25 | $ git push origin master:gh-pages # update the site 26 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/lib/nprogress/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nprogress", 3 | "repo": "rstacruz/nprogress", 4 | "description": "slim progress bar", 5 | "version": "0.2.0", 6 | "keywords": [ 7 | "progress", 8 | "bar", 9 | "spinner" 10 | ], 11 | "license": "MIT", 12 | "main": ["nprogress.js", "nprogress.css"], 13 | "scripts": [ 14 | "nprogress.js" 15 | ], 16 | "styles": [ 17 | "nprogress.css" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "components", 23 | "package.json", 24 | "test", 25 | "vendor" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/lib/nprogress/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nprogress", 3 | "repo": "rstacruz/nprogress", 4 | "description": "slim progress bar", 5 | "version": "0.2.0", 6 | "keywords": ["progress","bar","spinner"], 7 | "development": { 8 | "chaijs/chai": "*", 9 | "visionmedia/mocha": "*" 10 | }, 11 | "license": "MIT", 12 | "main": "nprogress.js", 13 | "scripts": [ 14 | "nprogress.js" 15 | ], 16 | "styles": [ 17 | "nprogress.css" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/lib/nprogress/support/extras.css: -------------------------------------------------------------------------------- 1 | /* Make the entire page show a busy cursor */ 2 | .nprogress-busy body { 3 | cursor: wait; 4 | } 5 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/public/static/css/static-html-example.css: -------------------------------------------------------------------------------- 1 | .custom-panel-body { 2 | background-color: #cccccc; 3 | } -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.ackrc: -------------------------------------------------------------------------------- 1 | --ignore-dir=.coverage 2 | --ignore-dir=lib 3 | --ignore-dir=dist 4 | --ignore-dir=amd 5 | --ignore-dir=test-built 6 | --ignore-dir=docs-built 7 | --ignore-dir=tmp-docs-repo 8 | --ignore-dir=tmp-bower-repo 9 | --ignore-file=match:test_bundle.js 10 | --ignore-file=match:components.html 11 | --ignore-file=match:.orig 12 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "stage": 1, 3 | "optional": ["runtime"], 4 | "loose": ["all"] 5 | } 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | end_of_line = lf 9 | insert_final_newline = true 10 | 11 | [*.js] 12 | charset = utf-8 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [{package.json,.travis.yml}] 17 | indent_style = space 18 | indent_size = 2 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.eslintignore: -------------------------------------------------------------------------------- 1 | amd/** 2 | dist/** 3 | docs-built/** 4 | lib/** 5 | node_modules/** 6 | tmp-bower-repo/** 7 | tmp-docs-repo/** 8 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["eslint-config-airbnb"], 3 | "env": { 4 | "browser": true, 5 | "node": true 6 | }, 7 | "ecmaFeatures": { 8 | "jsx": true 9 | }, 10 | "parser": "babel-eslint", 11 | "plugins": [ 12 | "react", 13 | "babel" 14 | ], 15 | "rules": { 16 | "constructor-super": 2, 17 | "comma-dangle": 0, 18 | "eqeqeq": [2, "allow-null"], 19 | "id-length": 0, 20 | "one-var": [2, { "initialized": "never" }], 21 | "prefer-const": 0, 22 | "no-param-reassign": 0, 23 | "no-this-before-super": 2, 24 | "babel/object-shorthand": 2, 25 | "react/jsx-boolean-value": 2, 26 | "react/jsx-no-duplicate-props": 2, 27 | "react/prop-types": [2, { "ignore": [ "children", "className", "style" ] }], 28 | "react/sort-comp": 0 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .DS_Store 3 | npm-debug.log* 4 | node_modules 5 | amd/ 6 | !tools/amd/ 7 | lib/ 8 | !tools/lib/ 9 | dist/ 10 | !tools/dist/ 11 | docs-built/ 12 | tmp-bower-repo/ 13 | tmp-docs-repo/ 14 | .babel-cache/ 15 | .coverage/ 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.projections.json: -------------------------------------------------------------------------------- 1 | { 2 | "src/*.js": { "alternate": "test/{}Spec.js" }, 3 | "test/*Spec.js": { "alternate": "src/{}.js" } 4 | } 5 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - 4 5 | cache: 6 | directories: 7 | - node_modules 8 | notifications: 9 | webhooks: 10 | urls: 11 | - https://webhooks.gitter.im/e/006ca15725d53eab80e5 12 | on_success: always 13 | on_failure: always 14 | on_start: false 15 | before_install: 16 | - export CHROME_BIN=chromium-browser 17 | - export DISPLAY=:99.0 18 | - sh -e /etc/init.d/xvfb start 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: '{build}' 2 | 3 | # Install scripts. (runs after repo cloning) 4 | install: 5 | # Get the latest stable version of io.js 6 | - ps: Install-Product node '' 7 | - npm -g install npm@latest 8 | - set PATH=%APPDATA%\npm;%PATH% 9 | - node --version 10 | - npm --version 11 | - npm install 12 | 13 | # No need for MSBuild on this project 14 | build: off 15 | 16 | test_script: 17 | - npm test 18 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "lodash" 4 | ], 5 | "rules": { 6 | "comma-spacing": 0, 7 | "lodash/import": 2, 8 | "react/no-multi-comp": 0, 9 | "react/prop-types": 0 10 | }, 11 | "globals": { 12 | "CodeMirror": true 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/README.docs.md: -------------------------------------------------------------------------------- 1 | # React-Bootstrap Documentation Website 2 | 3 | This website is single page app built on 4 | [React](http://facebook.github.io/react/), with styles and structure taken from 5 | the [Bootstrap](http://getbootstrap.com/) docs website. The app is statically 6 | generated to HTML via node and then hosted it by pushing HTML to [GitHub 7 | Pages](http://pages.github.com/). 8 | 9 | Source can be found in the 10 | [react-bootstrap](https://github.com/react-bootstrap/react-bootstrap) repo. 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/CodeMirror.css: -------------------------------------------------------------------------------- 1 | .cm-s-solarized.CodeMirror { 2 | -moz-box-shadow: none; 3 | -webkit-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | 7 | .highlight, .code-toggle.open { 8 | background-color: #fdf6e3; 9 | } 10 | 11 | .cm-s-solarized .cm-comment { color: #93a1a1; } 12 | 13 | .CodeMirror, .CodeMirror-scroll { 14 | height: auto; 15 | } 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/carousel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/carousel.png -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/favicon.ico -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/logo.png -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/thumbnail.png -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/thumbnaildiv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor0089/Fix_My_Code_Challenge/ff162fe67eb28b56f6709642b0584c79a69c7f29/0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/assets/thumbnaildiv.png -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/client.js: -------------------------------------------------------------------------------- 1 | import 'bootstrap/less/bootstrap.less'; 2 | import './assets/docs.css'; 3 | import './assets/style.css'; 4 | 5 | import './assets/carousel.png'; 6 | import './assets/logo.png'; 7 | import './assets/favicon.ico'; 8 | import './assets/thumbnail.png'; 9 | import './assets/thumbnaildiv.png'; 10 | import './assets/TheresaKnott_castle.svg'; 11 | 12 | import 'codemirror/mode/htmlmixed/htmlmixed'; 13 | import 'codemirror/mode/javascript/javascript'; 14 | import 'codemirror/theme/solarized.css'; 15 | import 'codemirror/lib/codemirror.css'; 16 | import './assets/CodeMirror.css'; 17 | 18 | import React from 'react'; 19 | import CodeMirror from 'codemirror'; 20 | import 'codemirror/addon/runmode/runmode'; 21 | import Router from 'react-router'; 22 | import routes from './src/Routes'; 23 | 24 | global.CodeMirror = CodeMirror; 25 | 26 | Router.run(routes, Router.RefreshLocation, Handler => { 27 | React.render( 28 | React.createElement(Handler, window.INITIAL_PROPS), document); 29 | }); 30 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/AlertAutoDismissable.js: -------------------------------------------------------------------------------- 1 | const AlertAutoDismissable = React.createClass({ 2 | getInitialState() { 3 | return { 4 | alertVisible: false 5 | }; 6 | }, 7 | 8 | render() { 9 | if (this.state.alertVisible) { 10 | return ( 11 | 12 |

Oh snap! You got an error!

13 |

But this will hide after 2 seconds.

14 |
15 | ); 16 | } 17 | 18 | return ( 19 | 20 | ); 21 | }, 22 | 23 | handleAlertDismiss() { 24 | this.setState({alertVisible: false}); 25 | }, 26 | 27 | handleAlertShow() { 28 | this.setState({alertVisible: true}); 29 | } 30 | }); 31 | 32 | React.render(, mountNode); 33 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/AlertBasic.js: -------------------------------------------------------------------------------- 1 | const alertInstance = ( 2 | 3 | Holy guacamole! Best check yo self, you're not looking too good. 4 | 5 | ); 6 | 7 | React.render(alertInstance, mountNode); 8 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Badge.js: -------------------------------------------------------------------------------- 1 | const badgeInstance = ( 2 |

Badges 42

3 | ); 4 | 5 | React.render(badgeInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Breadcrumb.js: -------------------------------------------------------------------------------- 1 | const breadcrumbInstance = ( 2 | 3 | 4 | Home 5 | 6 | 7 | Library 8 | 9 | 10 | Data 11 | 12 | 13 | ); 14 | 15 | React.render(breadcrumbInstance, mountNode); 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonActive.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 | 3 | 4 | 5 | 6 | ); 7 | 8 | React.render(buttonsInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonBlock.js: -------------------------------------------------------------------------------- 1 | const wellStyles = {maxWidth: 400, margin: '0 auto 10px'}; 2 | 3 | const buttonsInstance = ( 4 |
5 | 6 | 7 |
8 | ); 9 | 10 | React.render(buttonsInstance, mountNode); 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonDisabled.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 | 3 | 4 | 5 | 6 | ); 7 | 8 | React.render(buttonsInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonGroupBasic.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | ); 8 | 9 | React.render(buttonGroupInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonGroupBlock.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | ); 7 | 8 | React.render(buttonGroupInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonGroupJustified.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | Dropdown link 7 | Dropdown link 8 | 9 | 10 | ); 11 | 12 | React.render(buttonGroupInstance, mountNode); 13 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonGroupNested.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | Dropdown link 7 | Dropdown link 8 | 9 | 10 | ); 11 | 12 | React.render(buttonGroupInstance, mountNode); 13 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonGroupVertical.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | Dropdown link 7 | Dropdown link 8 | 9 | 10 | 11 | 12 | Dropdown link 13 | Dropdown link 14 | 15 | 16 | Dropdown link 17 | Dropdown link 18 | 19 | 20 | ); 21 | 22 | React.render(buttonGroupInstance, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonLoading.js: -------------------------------------------------------------------------------- 1 | const LoadingButton = React.createClass({ 2 | getInitialState() { 3 | return { 4 | isLoading: false 5 | }; 6 | }, 7 | 8 | render() { 9 | let isLoading = this.state.isLoading; 10 | return ( 11 | 17 | ); 18 | }, 19 | 20 | handleClick() { 21 | this.setState({isLoading: true}); 22 | 23 | // This probably where you would have an `ajax` call 24 | setTimeout(() => { 25 | // Completed of async action, set loading state back 26 | this.setState({isLoading: false}); 27 | }, 2000); 28 | } 29 | }); 30 | 31 | React.render(, mountNode); 32 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonSizes.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ); 21 | 22 | React.render(buttonsInstance, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonTagTypes.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 | 3 | 4 | 5 | 6 | ); 7 | 8 | React.render(buttonsInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonToolbarBasic.js: -------------------------------------------------------------------------------- 1 | const buttonGroupInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ); 21 | 22 | React.render(buttonGroupInstance, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ButtonTypes.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 | 3 | {/* Standard button */} 4 | 5 | 6 | {/* Provides extra visual weight and identifies the primary action in a set of buttons */} 7 | 8 | 9 | {/* Indicates a successful or positive action */} 10 | 11 | 12 | {/* Contextual button for informational alert messages */} 13 | 14 | 15 | {/* Indicates caution should be taken with this action */} 16 | 17 | 18 | {/* Indicates a dangerous or potentially negative action */} 19 | 20 | 21 | {/* Deemphasize a button by making it look like a link while maintaining button behavior */} 22 | 23 | 24 | ); 25 | 26 | React.render(buttonsInstance, mountNode); 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Collapse.js: -------------------------------------------------------------------------------- 1 | class Example extends React.Component { 2 | constructor(...args) { 3 | super(...args); 4 | 5 | this.state = {}; 6 | } 7 | 8 | render() { 9 | return ( 10 |
11 | 14 | 15 |
16 | 17 | Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 18 | Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. 19 | 20 |
21 |
22 |
23 | ); 24 | } 25 | } 26 | 27 | React.render(, mountNode); 28 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/DropdownButtonBasic.js: -------------------------------------------------------------------------------- 1 | const BUTTONS = ['Default', 'Primary', 'Success', 'Info', 'Warning', 'Danger', 'Link']; 2 | 3 | function renderDropdownButton(title, i) { 4 | return ( 5 | 6 | Action 7 | Another action 8 | Active Item 9 | 10 | Separated link 11 | 12 | ); 13 | } 14 | 15 | const buttonsInstance = ( 16 | {BUTTONS.map(renderDropdownButton)} 17 | ); 18 | 19 | React.render(buttonsInstance, mountNode); 20 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/DropdownButtonNoCaret.js: -------------------------------------------------------------------------------- 1 | const buttonInstance = ( 2 | 3 | 4 | Action 5 | Another action 6 | Something else here 7 | 8 | Separated link 9 | 10 | 11 | ); 12 | 13 | React.render(buttonInstance, mountNode); 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Fade.js: -------------------------------------------------------------------------------- 1 | 2 | class Example extends React.Component { 3 | 4 | constructor(...args) { 5 | super(...args); 6 | this.state = {}; 7 | } 8 | 9 | render() { 10 | return ( 11 |
12 | 15 | 16 |
17 | 18 | Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 19 | Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. 20 | 21 |
22 |
23 |
24 | ); 25 | } 26 | } 27 | 28 | React.render(, mountNode); 29 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Glyphicon.js: -------------------------------------------------------------------------------- 1 | const glyphInstance = ( 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ); 21 | 22 | React.render(glyphInstance, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/GridBasic.js: -------------------------------------------------------------------------------- 1 | const gridInstance = ( 2 | 3 | 4 | <{'Col xs={12} md={8}'} /> 5 | <{'Col xs={6} md={4}'} /> 6 | 7 | 8 | 9 | <{'Col xs={6} md={4}'} /> 10 | <{'Col xs={6} md={4}'} /> 11 | <{'Col xs={6} md={4}'} /> 12 | 13 | 14 | 15 | <{'Col xs={6} xsOffset={6}'} /> 16 | 17 | 18 | 19 | <{'Col md={6} mdPush={6}'} /> 20 | <{'Col md={6} mdPull={6}'} /> 21 | 22 | 23 | ); 24 | 25 | React.render(gridInstance, mountNode); 26 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ImageResponsive.js: -------------------------------------------------------------------------------- 1 | const imageResponsiveInstance = ( 2 | 3 | ); 4 | 5 | React.render(imageResponsiveInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ImageShape.js: -------------------------------------------------------------------------------- 1 | const imageShapeInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | 17 | React.render(imageShapeInstance, mountNode); 18 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/InputAddons.js: -------------------------------------------------------------------------------- 1 | const innerGlyphicon = ; 2 | const innerButton = ; 3 | const innerDropdown = ( 4 | 5 | Item 6 | 7 | ); 8 | const innerRadio = ; 9 | const innerCheckbox = ; 10 | 11 | const inputAddonsInstance = ( 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | ); 23 | 24 | React.render(inputAddonsInstance, mountNode); 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/InputHorizontal.js: -------------------------------------------------------------------------------- 1 | const inputHorizontalInstance = ( 2 |
3 | 4 | 5 | 6 |
7 | ); 8 | 9 | React.render(inputHorizontalInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/InputSizes.js: -------------------------------------------------------------------------------- 1 | const inputSizeInstance = ( 2 |
3 | 4 | 5 | 6 |
7 | ); 8 | 9 | React.render(inputSizeInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/InputValidation.js: -------------------------------------------------------------------------------- 1 | const inputValidationInstance = ( 2 |
3 | 4 | 5 | 6 |
7 | ); 8 | 9 | React.render(inputValidationInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/InputWrapper.js: -------------------------------------------------------------------------------- 1 | const inputWrapperInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ); 13 | 14 | React.render(inputWrapperInstance, mountNode); 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Jumbotron.js: -------------------------------------------------------------------------------- 1 | const jumbotronInstance = ( 2 | 3 |

Hello, world!

4 |

This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.

5 |

6 |
7 | ); 8 | 9 | React.render(jumbotronInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Label.js: -------------------------------------------------------------------------------- 1 | const labelInstance = ( 2 |
3 |

Label

4 |

Label

5 |

Label

6 |

Label

7 |
Label
8 |

Label

9 |
10 | ); 11 | 12 | React.render(labelInstance, mountNode); 13 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/LabelVariations.js: -------------------------------------------------------------------------------- 1 | const labelVariationInstance = ( 2 |
3 |   4 |   5 |   6 |   7 |   8 | 9 |
10 | ); 11 | 12 | React.render(labelVariationInstance, mountNode); 13 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/LeftTabs.js: -------------------------------------------------------------------------------- 1 | const tabsInstance = ( 2 | 3 | Tab 1 content 4 | Tab 2 content 5 | Tab 3 content 6 | 7 | ); 8 | 9 | React.render(tabsInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupActive.js: -------------------------------------------------------------------------------- 1 | const listgroupInstance = ( 2 | 3 | Link 1 4 | Link 2 5 | Link 3 6 | 7 | ); 8 | 9 | React.render(listgroupInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupCustom.js: -------------------------------------------------------------------------------- 1 | const CustomComponent = React.createClass({ 2 | render() { 3 | return ( 4 |
  • {}}> 7 | {this.props.children} 8 |
  • 9 | ); 10 | } 11 | }); 12 | 13 | const listgroupInstance = ( 14 | 15 | Custom Child 1 16 | Custom Child 2 17 | Custom Child 3 18 | 19 | ); 20 | 21 | React.render(listgroupInstance, mountNode); 22 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupDefault.js: -------------------------------------------------------------------------------- 1 | const listgroupInstance = ( 2 | 3 | Item 1 4 | Item 2 5 | ... 6 | 7 | ); 8 | 9 | React.render(listgroupInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupHeader.js: -------------------------------------------------------------------------------- 1 | const listgroupInstance = ( 2 | 3 | Some body text 4 | Linked item 5 | Danger styling 6 | 7 | ); 8 | 9 | React.render(listgroupInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupLinked.js: -------------------------------------------------------------------------------- 1 | function alertClicked() { 2 | alert('You clicked the third ListGroupItem'); 3 | } 4 | 5 | const listgroupInstance = ( 6 | 7 | Link 1 8 | Link 2 9 | 10 | Trigger an alert 11 | 12 | 13 | ); 14 | 15 | React.render(listgroupInstance, mountNode); 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ListGroupStyle.js: -------------------------------------------------------------------------------- 1 | const listgroupInstance = ( 2 | 3 | Success 4 | Info 5 | Warning 6 | Danger 7 | 8 | ); 9 | 10 | React.render(listgroupInstance, mountNode); 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/MenuItem.js: -------------------------------------------------------------------------------- 1 | function onSelectAlert(eventKey, href) { 2 | alert('Alert from menu item.\neventKey: "' + eventKey + '"\nhref: "' + href + '"'); 3 | } 4 | 5 | const MenuItems = ( 6 |
    7 |
      8 | Header 9 | link 10 | 11 | Header 12 | link 13 | disabled 14 | 15 | link with title 16 | 17 | 18 | link that alerts 19 | 20 |
    21 |
    22 | ); 23 | 24 | React.render(MenuItems, mountNode); 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ModalStatic.js: -------------------------------------------------------------------------------- 1 | 2 | const modalInstance = ( 3 |
    4 | 5 | 6 | Modal title 7 | 8 | 9 | 10 | One fine body... 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
    20 | ); 21 | 22 | React.render(modalInstance, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavBasic.js: -------------------------------------------------------------------------------- 1 | function handleSelect(selectedKey) { 2 | alert('selected ' + selectedKey); 3 | } 4 | 5 | const navInstance = ( 6 | 11 | ); 12 | 13 | React.render(navInstance, mountNode); 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavJustified.js: -------------------------------------------------------------------------------- 1 | const NavJustified = React.createClass({ 2 | handleSelect(selectedKey) { 3 | alert('selected ' + selectedKey); 4 | }, 5 | 6 | render() { 7 | return ( 8 |
    9 | 14 |
    15 | 20 |
    21 | ); 22 | } 23 | }); 24 | 25 | React.render(, mountNode); 26 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavStacked.js: -------------------------------------------------------------------------------- 1 | function handleSelect(selectedKey) { 2 | alert('selected ' + selectedKey); 3 | } 4 | 5 | const navInstance = ( 6 | 11 | ); 12 | 13 | React.render(navInstance, mountNode); 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavbarBasic.js: -------------------------------------------------------------------------------- 1 | const navbarInstance = ( 2 | 3 | React-Bootstrap 4 | 15 | 16 | ); 17 | 18 | React.render(navbarInstance, mountNode); 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavbarBrand.js: -------------------------------------------------------------------------------- 1 | const navbarInstance = ( 2 | 3 | React-Bootstrap 4 | 15 | 16 | ); 17 | 18 | React.render(navbarInstance, mountNode); 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/NavbarCollapsible.js: -------------------------------------------------------------------------------- 1 | const navbarInstance = ( 2 | 3 | React-Bootstrap 4 | 15 | 16 | ); 17 | 18 | React.render(navbarInstance, mountNode); 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PageHeader.js: -------------------------------------------------------------------------------- 1 | const pageHeaderInstance = ( 2 | Example page header Subtext for header 3 | ); 4 | 5 | React.render(pageHeaderInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PagerAligned.js: -------------------------------------------------------------------------------- 1 | const pagerInstance = ( 2 | 3 | ← Previous Page 4 | Next Page → 5 | 6 | ); 7 | 8 | React.render(pagerInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PagerDefault.js: -------------------------------------------------------------------------------- 1 | const pagerInstance = ( 2 | 3 | Previous 4 | Next 5 | 6 | ); 7 | 8 | React.render(pagerInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PagerDisabled.js: -------------------------------------------------------------------------------- 1 | const pagerInstance = ( 2 | 3 | ← Previous 4 | Next → 5 | 6 | ); 7 | 8 | React.render(pagerInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PaginationAdvanced.js: -------------------------------------------------------------------------------- 1 | const PaginationAdvanced = React.createClass({ 2 | getInitialState() { 3 | return { 4 | activePage: 1 5 | }; 6 | }, 7 | 8 | handleSelect(event, selectedEvent) { 9 | this.setState({ 10 | activePage: selectedEvent.eventKey 11 | }); 12 | }, 13 | 14 | render() { 15 | return ( 16 | 26 | ); 27 | } 28 | }); 29 | 30 | React.render(, mountNode); 31 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelBasic.js: -------------------------------------------------------------------------------- 1 | function handleClick() { 2 | alert('You have clicked on me'); 3 | } 4 | 5 | const panelInstance = ( 6 | 7 | Basic panel example 8 | 9 | ); 10 | 11 | React.render(panelInstance, mountNode); 12 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelCollapsible.js: -------------------------------------------------------------------------------- 1 | class Example extends React.Component { 2 | constructor(...args) { 3 | super(...args); 4 | this.state = { 5 | open: true 6 | }; 7 | } 8 | 9 | render() { 10 | return ( 11 |
    12 | 15 | 16 | Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 17 | Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. 18 | 19 |
    20 | ); 21 | } 22 | } 23 | 24 | React.render(, mountNode); 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelContextual.js: -------------------------------------------------------------------------------- 1 | const title = ( 2 |

    Panel title

    3 | ); 4 | 5 | const panelsInstance = ( 6 |
    7 | 8 | Panel content 9 | 10 | 11 | 12 | Panel content 13 | 14 | 15 | 16 | Panel content 17 | 18 | 19 | 20 | Panel content 21 | 22 | 23 | 24 | Panel content 25 | 26 | 27 | 28 | Panel content 29 | 30 |
    31 | ); 32 | 33 | React.render(panelsInstance, mountNode); 34 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelGroupControlled.js: -------------------------------------------------------------------------------- 1 | const ControlledPanelGroup = React.createClass({ 2 | getInitialState() { 3 | return { 4 | activeKey: 1 5 | }; 6 | }, 7 | 8 | handleSelect(activeKey) { 9 | this.setState({ activeKey }); 10 | }, 11 | 12 | render() { 13 | return ( 14 | 15 | Panel 1 content 16 | Panel 2 content 17 | 18 | ); 19 | } 20 | }); 21 | 22 | React.render(, mountNode); 23 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelGroupUncontrolled.js: -------------------------------------------------------------------------------- 1 | const panelGroupInstance = ( 2 | 3 | Panel 1 content 4 | Panel 2 content 5 | 6 | ); 7 | 8 | React.render(panelGroupInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelListGroupFill.js: -------------------------------------------------------------------------------- 1 | const panelInstance = ( 2 | 3 | Some default panel content here. 4 | 5 | Item 1 6 | Item 2 7 | 8 | 9 | Some more panel content here. 10 | 11 | ); 12 | 13 | React.render(panelInstance, mountNode); 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelWithFooter.js: -------------------------------------------------------------------------------- 1 | const panelInstance = ( 2 | 3 | Panel content 4 | 5 | ); 6 | 7 | React.render(panelInstance, mountNode); 8 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PanelWithHeading.js: -------------------------------------------------------------------------------- 1 | const title = ( 2 |

    Panel title

    3 | ); 4 | 5 | const panelsInstance = ( 6 |
    7 | 8 | Panel content 9 | 10 | 11 | Panel content 12 | 13 |
    14 | ); 15 | 16 | React.render(panelsInstance, mountNode); 17 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PopoverBasic.js: -------------------------------------------------------------------------------- 1 | const popoverInstance = ( 2 |
    3 | 4 | And here's some amazing content. It's very engaging. right? 5 | 6 |
    7 | ); 8 | 9 | React.render(popoverInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/PopoverContained.js: -------------------------------------------------------------------------------- 1 | class Example extends React.Component { 2 | constructor(...args) { 3 | super(...args); 4 | this.state = { show: false }; 5 | } 6 | render() { 7 | return ( 8 | 9 | 15 | 16 | React.findDOMNode(this.state.target)} 19 | placement="bottom" 20 | container={this} 21 | containerPadding={20} 22 | > 23 | 24 | Holy guacamole! Check this info. 25 | 26 | 27 | 28 | ); 29 | } 30 | } 31 | 32 | React.render(, mountNode); 33 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarAnimated.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 | 3 | ); 4 | 5 | React.render(progressInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarBasic.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 | 3 | ); 4 | 5 | React.render(progressInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarContextual.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 |
    3 | 4 | 5 | 6 | 7 |
    8 | ); 9 | 10 | React.render(progressInstance, mountNode); 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarScreenreaderLabel.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 | 3 | ); 4 | 5 | React.render(progressInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarStacked.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | ); 8 | 9 | React.render(progressInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarStriped.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 |
    3 | 4 | 5 | 6 | 7 |
    8 | ); 9 | 10 | React.render(progressInstance, mountNode); 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ProgressBarWithLabel.js: -------------------------------------------------------------------------------- 1 | const progressInstance = ( 2 | 3 | ); 4 | 5 | React.render(progressInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ResponsiveEmbed.js: -------------------------------------------------------------------------------- 1 | const responsiveEmbedInstance = ( 2 |
    3 | 4 | 5 | 6 |
    7 | ); 8 | 9 | React.render(responsiveEmbedInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/SplitButtonBasic.js: -------------------------------------------------------------------------------- 1 | const BUTTONS = ['Default', 'Primary', 'Success', 'Info', 'Warning', 'Danger']; 2 | 3 | function renderDropdownButton(title, i) { 4 | return ( 5 | 6 | Action 7 | Another action 8 | Something else here 9 | 10 | Separated link 11 | 12 | ); 13 | } 14 | 15 | const buttonsInstance = ( 16 | {BUTTONS.map(renderDropdownButton)} 17 | ); 18 | 19 | React.render(buttonsInstance, mountNode); 20 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/SplitButtonRight.js: -------------------------------------------------------------------------------- 1 | const buttonsInstance = ( 2 | 3 | Action 4 | Another action 5 | Something else here 6 | 7 | Separated link 8 | 9 | ); 10 | 11 | React.render(buttonsInstance, mountNode); 12 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/StaticText.js: -------------------------------------------------------------------------------- 1 | const staticTextExample = ( 2 |
    3 | 4 | 5 | Bob 6 | 7 | ); 8 | 9 | React.render(staticTextExample, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TableBasic.js: -------------------------------------------------------------------------------- 1 | const tableInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
    #First NameLast NameUsername
    1MarkOtto@mdo
    2JacobThornton@fat
    3Larry the Bird@twitter
    31 | ); 32 | 33 | React.render(tableInstance, mountNode); 34 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TabsControlled.js: -------------------------------------------------------------------------------- 1 | const ControlledTabs = React.createClass({ 2 | getInitialState() { 3 | return { 4 | key: 1 5 | }; 6 | }, 7 | 8 | handleSelect(key) { 9 | alert('selected ' + key); 10 | this.setState({key}); 11 | }, 12 | 13 | render() { 14 | return ( 15 | 16 | Tab 1 content 17 | Tab 2 content 18 | Tab 3 content 19 | 20 | ); 21 | } 22 | }); 23 | 24 | React.render(, mountNode); 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TabsNoAnimation.js: -------------------------------------------------------------------------------- 1 | const tabsInstance = ( 2 | 3 | Tab 1 content 4 | Tab 2 content 5 | Tab 3 content 6 | 7 | ); 8 | 9 | React.render(tabsInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TabsUncontrolled.js: -------------------------------------------------------------------------------- 1 | const tabsInstance = ( 2 | 3 | Tab 1 content 4 | Tab 2 content 5 | Tab 3 content 6 | 7 | ); 8 | 9 | React.render(tabsInstance, mountNode); 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/ThumbnailAnchor.js: -------------------------------------------------------------------------------- 1 | const thumbnailInstance = ( 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | 17 | React.render(thumbnailInstance, mountNode); 18 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TooltipBasic.js: -------------------------------------------------------------------------------- 1 | const tooltipInstance = ( 2 |
    3 | 4 | Tooltip right 5 | 6 | 7 | 8 | Tooltip top 9 | 10 | 11 | 12 | Tooltip left 13 | 14 | 15 | 16 | Tooltip bottom 17 | 18 |
    19 | ); 20 | 21 | React.render(tooltipInstance, mountNode); 22 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/TooltipPositioned.js: -------------------------------------------------------------------------------- 1 | 2 | const tooltip = ( 3 | Holy guacamole! Check this info. 4 | ); 5 | 6 | const positionerInstance = ( 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ); 25 | 26 | React.render(positionerInstance, mountNode); 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/Well.js: -------------------------------------------------------------------------------- 1 | const wellInstance = ( 2 | Look I'm in a well! 3 | ); 4 | 5 | React.render(wellInstance, mountNode); 6 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/examples/WellSizes.js: -------------------------------------------------------------------------------- 1 | const wellInstance = ( 2 |
    3 | Look I'm in a large well! 4 | Look I'm in a small well! 5 |
    6 | ); 7 | 8 | React.render(wellInstance, mountNode); 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/src/Anchor.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Anchor = React.createClass({ 4 | propTypes: { 5 | id: React.PropTypes.oneOfType([ 6 | React.PropTypes.string, 7 | React.PropTypes.number 8 | ]) 9 | }, 10 | render() { 11 | return ( 12 | 13 | # 14 | {this.props.children} 15 | 16 | ); 17 | } 18 | }); 19 | 20 | export default Anchor; 21 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/src/CodeExample.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default class CodeExample extends React.Component { 4 | render() { 5 | return ( 6 |
     7 |         
     8 |           {this.props.codeText}
     9 |         
    10 |       
    11 | ); 12 | } 13 | 14 | componentDidMount() { 15 | if (CodeMirror === undefined) { 16 | return; 17 | } 18 | 19 | CodeMirror.runMode( 20 | this.props.codeText, 21 | this.props.mode, 22 | React.findDOMNode(this).children[0] 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/src/NotFoundPage.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import NavMain from './NavMain'; 4 | import PageHeader from './PageHeader'; 5 | import PageFooter from './PageFooter'; 6 | 7 | const NotFoundPage = React.createClass({ 8 | render() { 9 | return ( 10 |
    11 | 12 | 13 | 16 | 17 | 18 |
    19 | ); 20 | } 21 | }); 22 | 23 | export default NotFoundPage; 24 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/src/PageHeader.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const PageHeader = React.createClass({ 4 | render() { 5 | return ( 6 |
    7 |
    8 |

    {this.props.title}

    9 |

    {this.props.subTitle}

    10 |
    11 |
    12 | ); 13 | } 14 | }); 15 | 16 | export default PageHeader; 17 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/docs/src/Routes.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import Root from './Root'; 4 | import HomePage from './HomePage'; 5 | import IntroductionPage from './IntroductionPage'; 6 | import GettingStartedPage from './GettingStartedPage'; 7 | import ComponentsPage from './ComponentsPage'; 8 | import SupportPage from './SupportPage'; 9 | import NotFoundPage from './NotFoundPage'; 10 | 11 | import {Route, DefaultRoute, NotFoundRoute} from 'react-router'; 12 | 13 | export default ( 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ); 24 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "restartable": "rs", 3 | "ignore": [ 4 | "tmp-bower-repo", 5 | "tmp-docs-repo", 6 | "docs-built", 7 | "amd", 8 | "lib", 9 | "dist", 10 | ".coverage", 11 | "tools" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "lodash" 4 | ], 5 | "rules": { 6 | "lodash/import": 2 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Accordion.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PanelGroup from './PanelGroup'; 3 | 4 | const Accordion = React.createClass({ 5 | render() { 6 | return ( 7 | 8 | {this.props.children} 9 | 10 | ); 11 | } 12 | }); 13 | 14 | export default Accordion; 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Affix.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import AffixMixin from './AffixMixin'; 4 | 5 | const Affix = React.createClass({ 6 | 7 | mixins: [AffixMixin], 8 | 9 | render() { 10 | let holderStyle = { 11 | top: this.state.affixPositionTop, 12 | // we don't want to expose the `style` property 13 | ...this.props.style // eslint-disable-line react/prop-types 14 | }; 15 | 16 | return ( 17 |
    20 | {this.props.children} 21 |
    22 | ); 23 | } 24 | }); 25 | 26 | export default Affix; 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/ButtonToolbar.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import BootstrapMixin from './BootstrapMixin'; 4 | 5 | const ButtonToolbar = React.createClass({ 6 | mixins: [BootstrapMixin], 7 | 8 | getDefaultProps() { 9 | return { 10 | bsClass: 'button-toolbar' 11 | }; 12 | }, 13 | 14 | render() { 15 | let classes = this.getBsClassSet(); 16 | 17 | return ( 18 |
    22 | {this.props.children} 23 |
    24 | ); 25 | } 26 | }); 27 | 28 | export default ButtonToolbar; 29 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/FormControls/Static.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import InputBase from '../InputBase'; 4 | import childrenValueValidation from '../utils/childrenValueInputValidation'; 5 | 6 | class Static extends InputBase { 7 | getValue() { 8 | const {children, value} = this.props; 9 | return children ? children : value; 10 | } 11 | 12 | renderInput() { 13 | return ( 14 |

    15 | {this.getValue()} 16 |

    17 | ); 18 | } 19 | } 20 | 21 | Static.propTypes = { 22 | value: childrenValueValidation, 23 | children: childrenValueValidation 24 | }; 25 | 26 | export default Static; 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/FormControls/index.js: -------------------------------------------------------------------------------- 1 | export Static from './Static'; 2 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Input.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import InputBase from './InputBase'; 3 | import * as FormControls from './FormControls'; 4 | import deprecationWarning from './utils/deprecationWarning'; 5 | 6 | class Input extends InputBase { 7 | render() { 8 | if (this.props.type === 'static') { 9 | deprecationWarning('Input type=static', 'FormControls.Static'); 10 | return ; 11 | } 12 | 13 | return super.render(); 14 | } 15 | } 16 | 17 | Input.propTypes = { 18 | type: React.PropTypes.string 19 | }; 20 | 21 | export default Input; 22 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Jumbotron.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import elementType from 'react-prop-types/lib/elementType'; 4 | 5 | const Jumbotron = React.createClass({ 6 | propTypes: { 7 | /** 8 | * You can use a custom element for this component 9 | */ 10 | componentClass: elementType 11 | }, 12 | 13 | getDefaultProps() { 14 | return { componentClass: 'div' }; 15 | }, 16 | 17 | render() { 18 | const ComponentClass = this.props.componentClass; 19 | 20 | return ( 21 | 22 | {this.props.children} 23 | 24 | ); 25 | } 26 | }); 27 | 28 | export default Jumbotron; 29 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Label.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import BootstrapMixin from './BootstrapMixin'; 4 | 5 | const Label = React.createClass({ 6 | mixins: [BootstrapMixin], 7 | 8 | getDefaultProps() { 9 | return { 10 | bsClass: 'label', 11 | bsStyle: 'default' 12 | }; 13 | }, 14 | 15 | render() { 16 | let classes = this.getBsClassSet(); 17 | 18 | return ( 19 | 20 | {this.props.children} 21 | 22 | ); 23 | } 24 | }); 25 | 26 | export default Label; 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/ModalBody.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | class ModalBody extends React.Component { 5 | render() { 6 | return ( 7 |
    10 | {this.props.children} 11 |
    12 | ); 13 | } 14 | } 15 | 16 | ModalBody.propTypes = { 17 | /** 18 | * A css class applied to the Component 19 | */ 20 | modalClassName: React.PropTypes.string 21 | }; 22 | 23 | ModalBody.defaultProps = { 24 | modalClassName: 'modal-body' 25 | }; 26 | 27 | 28 | export default ModalBody; 29 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/ModalFooter.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | class ModalFooter extends React.Component { 5 | render() { 6 | return ( 7 |
    10 | {this.props.children} 11 |
    12 | ); 13 | } 14 | } 15 | 16 | ModalFooter.propTypes = { 17 | /** 18 | * A css class applied to the Component 19 | */ 20 | modalClassName: React.PropTypes.string 21 | }; 22 | 23 | ModalFooter.defaultProps = { 24 | modalClassName: 'modal-footer' 25 | }; 26 | 27 | export default ModalFooter; 28 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/ModalTitle.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | class ModalTitle extends React.Component { 5 | render() { 6 | return ( 7 |

    10 | { this.props.children } 11 |

    12 | ); 13 | } 14 | } 15 | 16 | ModalTitle.propTypes = { 17 | /** 18 | * A css class applied to the Component 19 | */ 20 | modalClassName: React.PropTypes.string 21 | }; 22 | 23 | ModalTitle.defaultProps = { 24 | modalClassName: 'modal-title' 25 | }; 26 | 27 | export default ModalTitle; 28 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/NavBrand.js: -------------------------------------------------------------------------------- 1 | import classNames from 'classnames'; 2 | import React from 'react'; 3 | 4 | class NavBrand extends React.Component { 5 | render() { 6 | const {className, children, ...props} = this.props; 7 | 8 | if (React.isValidElement(children)) { 9 | return React.cloneElement(children, { 10 | className: classNames( 11 | children.props.className, className, 'navbar-brand' 12 | ) 13 | }); 14 | } 15 | 16 | return ( 17 | 18 | {children} 19 | 20 | ); 21 | } 22 | } 23 | 24 | NavBrand.propTypes = { 25 | bsRole: React.PropTypes.string 26 | }; 27 | 28 | NavBrand.defaultProps = { 29 | bsRole: 'brand' 30 | }; 31 | 32 | export default NavBrand; 33 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/NavDropdown.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Dropdown from './Dropdown'; 3 | 4 | class NavDropdown extends React.Component { 5 | 6 | render() { 7 | let { children, title, noCaret, ...props } = this.props; 8 | 9 | return ( 10 | 11 | 16 | {title} 17 | 18 | 19 | {children} 20 | 21 | 22 | ); 23 | } 24 | } 25 | 26 | NavDropdown.propTypes = { 27 | noCaret: React.PropTypes.bool, 28 | title: React.PropTypes.node.isRequired, 29 | ...Dropdown.propTypes 30 | }; 31 | 32 | export default NavDropdown; 33 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/PageHeader.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | const PageHeader = React.createClass({ 5 | render() { 6 | return ( 7 |
    8 |

    {this.props.children}

    9 |
    10 | ); 11 | } 12 | }); 13 | 14 | export default PageHeader; 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Pager.js: -------------------------------------------------------------------------------- 1 | import React, { cloneElement } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import ValidComponentChildren from './utils/ValidComponentChildren'; 5 | import createChainedFunction from './utils/createChainedFunction'; 6 | 7 | const Pager = React.createClass({ 8 | 9 | propTypes: { 10 | onSelect: React.PropTypes.func 11 | }, 12 | 13 | render() { 14 | return ( 15 |
      18 | {ValidComponentChildren.map(this.props.children, this.renderPageItem)} 19 |
    20 | ); 21 | }, 22 | 23 | renderPageItem(child, index) { 24 | return cloneElement( 25 | child, 26 | { 27 | onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), 28 | key: child.key ? child.key : index 29 | } 30 | ); 31 | } 32 | }); 33 | 34 | export default Pager; 35 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Row.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import elementType from 'react-prop-types/lib/elementType'; 4 | 5 | const Row = React.createClass({ 6 | propTypes: { 7 | /** 8 | * You can use a custom element for this component 9 | */ 10 | componentClass: elementType 11 | }, 12 | 13 | getDefaultProps() { 14 | return { 15 | componentClass: 'div' 16 | }; 17 | }, 18 | 19 | render() { 20 | let ComponentClass = this.props.componentClass; 21 | 22 | return ( 23 | 24 | {this.props.children} 25 | 26 | ); 27 | } 28 | }); 29 | 30 | export default Row; 31 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/SplitToggle.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import DropdownToggle from './DropdownToggle'; 3 | 4 | export default class SplitToggle extends React.Component { 5 | render() { 6 | return ( 7 | 12 | ); 13 | } 14 | } 15 | 16 | SplitToggle.defaultProps = DropdownToggle.defaultProps; 17 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/Well.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import BootstrapMixin from './BootstrapMixin'; 4 | 5 | const Well = React.createClass({ 6 | mixins: [BootstrapMixin], 7 | 8 | getDefaultProps() { 9 | return { 10 | bsClass: 'well' 11 | }; 12 | }, 13 | 14 | render() { 15 | let classes = this.getBsClassSet(); 16 | 17 | return ( 18 |
    19 | {this.props.children} 20 |
    21 | ); 22 | } 23 | }); 24 | 25 | export default Well; 26 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/childrenToArray.js: -------------------------------------------------------------------------------- 1 | import validChildren from './ValidComponentChildren'; 2 | 3 | export default function childrenAsArray(children) { 4 | let result = []; 5 | 6 | if (children === undefined) { 7 | return result; 8 | } 9 | 10 | validChildren.forEach(children, child => { 11 | result.push(child); 12 | }); 13 | 14 | return result; 15 | } 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/childrenValueInputValidation.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import singlePropFrom from 'react-prop-types/lib/singlePropFrom'; 3 | 4 | export default function valueValidation(props, propName, componentName) { 5 | let error = singlePropFrom('children', 'value')(props, propName, componentName); 6 | 7 | if (!error) { 8 | error = React.PropTypes.node(props, propName, componentName); 9 | } 10 | 11 | return error; 12 | } 13 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/createChainedFunction.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Safe chained function 3 | * 4 | * Will only create a new function if needed, 5 | * otherwise will pass back existing functions or null. 6 | * 7 | * @param {function} functions to chain 8 | * @returns {function|null} 9 | */ 10 | function createChainedFunction(...funcs) { 11 | return funcs 12 | .filter(f => f != null) 13 | .reduce((acc, f) => { 14 | if (typeof f !== 'function') { 15 | throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); 16 | } 17 | 18 | if (acc === null) { 19 | return f; 20 | } 21 | 22 | return function chainedFunction(...args) { 23 | acc.apply(this, args); 24 | f.apply(this, args); 25 | }; 26 | }, null); 27 | } 28 | 29 | export default createChainedFunction; 30 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/createSelectedEvent.js: -------------------------------------------------------------------------------- 1 | export default function createSelectedEvent(eventKey) { 2 | let selectionPrevented = false; 3 | 4 | return { 5 | eventKey, 6 | 7 | preventSelection() { 8 | selectionPrevented = true; 9 | }, 10 | 11 | isSelectionPrevented() { 12 | return selectionPrevented; 13 | } 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/deprecationWarning.js: -------------------------------------------------------------------------------- 1 | import warning from 'react/lib/warning'; 2 | 3 | const warned = {}; 4 | 5 | function deprecationWarning(oldname, newname, link) { 6 | let message; 7 | 8 | if (typeof oldname === 'object') { 9 | message = oldname.message; 10 | } else { 11 | message = `${oldname} is deprecated. Use ${newname} instead.`; 12 | 13 | if (link) { 14 | message += `\nYou can read more about it at ${link}`; 15 | } 16 | } 17 | 18 | if (warned[message]) { 19 | return; 20 | } 21 | 22 | warning(false, message); 23 | warned[message] = true; 24 | } 25 | 26 | 27 | deprecationWarning.wrapper = (Component, ...args) => { 28 | return class DeprecatedComponent extends Component { 29 | componentWillMount(...methodArgs) { 30 | deprecationWarning(...args); 31 | 32 | if (super.componentWillMount) { 33 | super.componentWillMount(...methodArgs); 34 | } 35 | } 36 | }; 37 | }; 38 | 39 | export default deprecationWarning; 40 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/index.js: -------------------------------------------------------------------------------- 1 | 2 | export childrenValueInputValidation from './childrenValueInputValidation'; 3 | export createChainedFunction from './createChainedFunction'; 4 | export ValidComponentChildren from './ValidComponentChildren'; 5 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/src/utils/overlayPositionUtils.js: -------------------------------------------------------------------------------- 1 | 2 | export * from 'react-overlays/lib/utils/overlayPositionUtils'; 3 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | }, 5 | "globals": { 6 | "assert": true, 7 | "expect": true, 8 | "sinon": true 9 | }, 10 | "plugins": [ 11 | "mocha" 12 | ], 13 | "rules": { 14 | "jsx-quotes": 0, 15 | "no-console": 0, 16 | "no-script-url": 0, 17 | "no-unused-expressions": 0, 18 | "padded-blocks": 0, 19 | "react/jsx-boolean-value": 0, 20 | "react/no-multi-comp": 0, 21 | "react/prop-types": 0, 22 | "mocha/no-exclusive-tests": 2 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/ButtonToolbarSpec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactTestUtils from 'react/lib/ReactTestUtils'; 3 | import ButtonToolbar from '../src/ButtonToolbar'; 4 | import ButtonGroup from '../src/ButtonGroup'; 5 | import Button from '../src/Button'; 6 | 7 | describe('ButtonToolbar', () => { 8 | it('Should output a button toolbar', () => { 9 | let instance = ReactTestUtils.renderIntoDocument( 10 | 11 | 12 | 15 | 16 | 17 | ); 18 | let node = React.findDOMNode(instance); 19 | assert.equal(node.nodeName, 'DIV'); 20 | assert.ok(node.className.match(/\bbtn-toolbar\b/)); 21 | assert.equal(node.getAttribute('role'), 'toolbar'); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/PageHeaderSpec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactTestUtils from 'react/lib/ReactTestUtils'; 3 | import PageHeader from '../src/PageHeader'; 4 | 5 | describe('PageHeader', () => { 6 | it('Should output a div with content', () => { 7 | let instance = ReactTestUtils.renderIntoDocument( 8 | 9 | Content 10 | 11 | ); 12 | assert.ok(ReactTestUtils.findRenderedDOMComponentWithTag(instance, 'strong')); 13 | }); 14 | 15 | it('Should have a page-header class', () => { 16 | let instance = ReactTestUtils.renderIntoDocument( 17 | 18 | Content 19 | 20 | ); 21 | assert.ok(React.findDOMNode(instance).className.match(/\bpage-header\b/)); 22 | }); 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/PopoverSpec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactTestUtils from 'react/lib/ReactTestUtils'; 3 | import Popover from '../src/Popover'; 4 | 5 | describe('Popover', () => { 6 | it('Should output a popover title and content', () => { 7 | let instance = ReactTestUtils.renderIntoDocument( 8 | 9 | Popover Content 10 | 11 | ); 12 | assert.ok(ReactTestUtils.findRenderedDOMComponentWithClass(instance, 'popover-title')); 13 | assert.ok(ReactTestUtils.findRenderedDOMComponentWithClass(instance, 'popover-content')); 14 | 15 | assert.ok(ReactTestUtils.findRenderedDOMComponentWithTag(instance, 'strong')); 16 | }); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/WellSpec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactTestUtils from 'react/lib/ReactTestUtils'; 3 | import Well from '../src/Well'; 4 | 5 | describe('Well', () => { 6 | it('Should output a well with content', () => { 7 | let instance = ReactTestUtils.renderIntoDocument( 8 | 9 | Content 10 | 11 | ); 12 | assert.ok(ReactTestUtils.findRenderedDOMComponentWithTag(instance, 'strong')); 13 | }); 14 | 15 | it('Should have a well class', () => { 16 | let instance = ReactTestUtils.renderIntoDocument( 17 | 18 | Content 19 | 20 | ); 21 | assert.ok(React.findDOMNode(instance).className.match(/\bwell\b/)); 22 | }); 23 | 24 | it('Should accept bsSize arguments', () => { 25 | let instance = ReactTestUtils.renderIntoDocument( 26 | 27 | Content 28 | 29 | ); 30 | assert.ok(React.findDOMNode(instance).className.match(/\bwell-sm\b/)); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/index.js: -------------------------------------------------------------------------------- 1 | import 'es5-shim'; 2 | 3 | beforeEach(() => { 4 | sinon.stub(console, 'warn'); 5 | }); 6 | 7 | afterEach(() => { 8 | if (typeof console.warn.restore === 'function') { 9 | assert(!console.warn.called, () => { 10 | return `${console.warn.getCall(0).args[0]} \nIn '${this.currentTest.fullTitle()}'`; 11 | }); 12 | console.warn.restore(); 13 | } 14 | }); 15 | 16 | describe('Process environment for tests', () => { 17 | it('Should be development for React console warnings', () => { 18 | assert.equal(process.env.NODE_ENV, 'development'); 19 | }); 20 | }); 21 | 22 | // Ensure all files in src folder are loaded for proper code coverage analysis 23 | const srcContext = require.context('../src', true, /.*\.js$/); 24 | srcContext.keys().forEach(srcContext); 25 | 26 | const testsContext = require.context('.', true, /Spec$/); 27 | testsContext.keys().forEach(testsContext); 28 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/server/ModalSpec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {assert} from 'chai'; 3 | import Modal from '../../src/Modal.js'; 4 | 5 | describe('Modal', () => { 6 | it('Should be rendered on the server side', () => { 7 | let noOp = () => {}; 8 | 9 | assert.doesNotThrow(function renderOnServerSide() { 10 | return React.renderToString( 11 | 12 | Message 13 | 14 | ); 15 | }); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/test/utils/deprecationWarningSpec.js: -------------------------------------------------------------------------------- 1 | import deprecationWarning from '../../src/utils/deprecationWarning'; 2 | 3 | describe('deprecationWarning', () => { 4 | it('warns exactly once', () => { 5 | // console.warn has already been stubbed out by test setup. 6 | 7 | deprecationWarning('foo', 'bar'); 8 | expect(console.warn).to.have.been.calledOnce; 9 | 10 | deprecationWarning('foo', 'bar'); 11 | expect(console.warn).to.have.been.calledOnce; 12 | 13 | // Reset the stub to avoid unhandled warnings. 14 | console.warn.reset(); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true 4 | }, 5 | "parser": "babel-eslint", 6 | "rules": { 7 | "no-console": 0 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/amd/README.md: -------------------------------------------------------------------------------- 1 | # react-bootstrap-bower 2 | 3 | [Bootstrap 3](http://getbootstrap.com) components built with [React](http://facebook.github.io/react/) 4 | 5 | This repo contains built AMD modules and standalone browser globals. 6 | 7 | There is a separate [source repo](https://github.com/react-bootstrap/react-bootstrap). 8 | 9 | A [docs site](http://react-bootstrap.github.io) with live editable examples. 10 | 11 | [![Build Status](https://travis-ci.org/react-bootstrap/react-bootstrap.svg)](https://travis-ci.org/react-bootstrap/react-bootstrap) [![Bower version](https://badge.fury.io/bo/react-bootstrap.svg)](http://badge.fury.io/bo/react-bootstrap) 12 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/amd/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "<%= pkg.name %>", 3 | "version": "<%= pkg.version %>", 4 | "homepage": "<%= pkg.homepage %>", 5 | "author": "<%= pkg.author %>", 6 | "license": "<%= pkg.license %>", 7 | "main": [ 8 | "react-bootstrap.js" 9 | ], 10 | "keywords": [ 11 | <%= _.map(pkg.keywords, function(keyword) { return '"' + keyword + '"' }).join(',\n ')%> 12 | ], 13 | "ignore": [ 14 | "**/.*" 15 | ], 16 | "dependencies": { 17 | "react": "<%= pkg.peerDependencies.react %>" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/build.js: -------------------------------------------------------------------------------- 1 | import 'colors'; 2 | import bower from './amd/build'; 3 | import lib from './lib/build'; 4 | import dist from './dist/build'; 5 | import { copy } from './fs-utils'; 6 | import { distRoot, bowerRoot } from './constants'; 7 | import { exec } from './exec'; 8 | 9 | function forkAndBuildDocs({verbose}) { 10 | console.log('Building: '.cyan + 'docs'.green); 11 | 12 | const verboseOption = verbose ? '--verbose' : ''; 13 | 14 | return exec(`npm run docs-build -- ${verboseOption}`) 15 | .then(() => console.log('Built: '.cyan + 'docs'.green)); 16 | } 17 | 18 | export default function Build(options) { 19 | return Promise.all([ 20 | lib(), 21 | bower(), 22 | dist(), 23 | forkAndBuildDocs(options) 24 | ]) 25 | .then(() => copy(distRoot, bowerRoot)); 26 | } 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/constants.js: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | 3 | const repoRoot = path.resolve(__dirname, '../'); 4 | 5 | const srcRoot = path.join(repoRoot, 'src/'); 6 | const distRoot = path.join(repoRoot, 'dist/'); 7 | const libRoot = path.join(repoRoot, 'lib/'); 8 | const bowerRoot = path.join(repoRoot, 'amd/'); 9 | const docsRoot = path.join(repoRoot, 'docs-built/'); 10 | 11 | export { 12 | repoRoot, 13 | srcRoot, 14 | distRoot, 15 | libRoot, 16 | bowerRoot, 17 | docsRoot 18 | }; 19 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/dist/build.js: -------------------------------------------------------------------------------- 1 | import { exec } from '../exec'; 2 | import { distRoot } from '../constants'; 3 | 4 | export default function BuildDistributable() { 5 | console.log('Building: '.cyan + 'distributable'.green); 6 | 7 | return exec(`rimraf ${distRoot}`) 8 | .then(() => Promise.all([ 9 | exec(`webpack --bail`), 10 | exec(`webpack --bail -p`) 11 | ])) 12 | .then(() => console.log('Built: '.cyan + 'distributable'.green)); 13 | } 14 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/fs-utils.js: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import fsp from 'fs-promise'; 3 | import fse from 'fs-extra'; 4 | 5 | function copy(src, dest, options) { 6 | options = options || {}; 7 | 8 | return Promise.all([ 9 | fsp.stat(src), 10 | fsp.exists(dest) 11 | .then(exists => { 12 | if (!exists) { 13 | return false; 14 | } 15 | 16 | return fsp.stat(dest); 17 | }) 18 | ]) 19 | .then(([srcStat, destStat]) => { 20 | if (srcStat.isFile() && destStat && destStat.isDirectory()) { 21 | let filename = path.basename(src); 22 | dest = path.join(dest, filename); 23 | } 24 | 25 | return new Promise((resolve, reject) => { 26 | fse.copy(src, dest, options, err => { 27 | if (err) { 28 | reject(err); 29 | } 30 | 31 | resolve(); 32 | }); 33 | }); 34 | }); 35 | } 36 | 37 | export default { 38 | copy 39 | }; 40 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/lib/build.js: -------------------------------------------------------------------------------- 1 | import 'colors'; 2 | import { exec } from '../exec'; 3 | import fsp from 'fs-promise'; 4 | import { srcRoot, libRoot } from '../constants'; 5 | import { buildFolder } from '../buildBabel'; 6 | 7 | export default function BuildCommonJs() { 8 | console.log('Building: '.cyan + 'npm module'.green); 9 | 10 | return exec(`rimraf ${libRoot}`) 11 | .then(() => fsp.mkdirs(libRoot)) 12 | .then(() => buildFolder(srcRoot, libRoot)) 13 | .then(() => console.log('Built: '.cyan + 'npm module'.green)); 14 | } 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/tools/promisify.js: -------------------------------------------------------------------------------- 1 | export default function promisify(fn) { 2 | return (...args) => { 3 | return new Promise((resolve, reject) => { 4 | function finish(err, result) { 5 | if (err) { 6 | return reject(err); 7 | } 8 | resolve(result); 9 | } 10 | 11 | fn.apply(null, args.concat(finish)); 12 | }); 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* eslint no-var: 0, vars-on-top: 0 */ 2 | require('babel/register'); 3 | var config = require('./webpack/webpack.config'); 4 | module.exports = config; 5 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack.docs.js: -------------------------------------------------------------------------------- 1 | /* eslint no-var: 0, vars-on-top: 0 */ 2 | require('babel/register'); 3 | var config = require('./webpack/docs.config'); 4 | module.exports = config; 5 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack/base.config.js: -------------------------------------------------------------------------------- 1 | import webpack from 'webpack'; 2 | import yargs from 'yargs'; 3 | 4 | export const options = yargs 5 | .alias('p', 'optimize-minimize') 6 | .alias('d', 'debug') 7 | .option('port', { 8 | default: '8080', 9 | type: 'string' 10 | }) 11 | .argv; 12 | 13 | export const jsLoader = 'babel?cacheDirectory'; 14 | 15 | const baseConfig = { 16 | entry: undefined, 17 | 18 | output: undefined, 19 | 20 | externals: undefined, 21 | 22 | module: { 23 | loaders: [ 24 | { test: /\.js/, loader: jsLoader, exclude: /node_modules/ } 25 | ] 26 | }, 27 | 28 | plugins: [ 29 | new webpack.DefinePlugin({ 30 | 'process.env': { 31 | 'NODE_ENV': JSON.stringify(options.optimizeMinimize ? 'production' : 'development') 32 | } 33 | }) 34 | ] 35 | }; 36 | 37 | if (options.optimizeMinimize) { 38 | baseConfig.devtool = 'source-map'; 39 | } 40 | 41 | export default baseConfig; 42 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack/test-coverage.config.js: -------------------------------------------------------------------------------- 1 | import _ from 'lodash'; 2 | import path from 'path'; 3 | import { jsLoader } from './base.config'; 4 | import testConfig from './test.config'; 5 | 6 | const paths = { 7 | SRC: path.resolve('src'), 8 | TEST: path.resolve('test') 9 | }; 10 | 11 | export default _.extend({}, testConfig, { 12 | module: { 13 | loaders: [ 14 | { 15 | test: /\.js/, 16 | include: [paths.SRC, paths.TEST], 17 | loader: jsLoader, 18 | exclude: /node_modules/ 19 | } 20 | ], 21 | preLoaders: [ 22 | { 23 | test: /\.js/, 24 | loader: 'isparta', 25 | include: paths.SRC, 26 | exclude: /node_modules/ 27 | } 28 | ] 29 | } 30 | }); 31 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack/test.config.js: -------------------------------------------------------------------------------- 1 | import _ from 'lodash'; 2 | import baseConfig from './base.config'; 3 | 4 | export default _.extend({}, baseConfig, { 5 | output: { 6 | pathinfo: true 7 | }, 8 | 9 | devtool: 'eval' 10 | }); 11 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/react-bootstrap-0.26.4/webpack/webpack.config.js: -------------------------------------------------------------------------------- 1 | import _ from 'lodash'; 2 | import baseConfig, { options } from './base.config'; 3 | 4 | export default _.extend({}, baseConfig, { 5 | entry: { 6 | 'react-bootstrap': './src/index.js' 7 | }, 8 | 9 | output: { 10 | path: './dist', 11 | filename: options.optimizeMinimize ? '[name].min.js' : '[name].js', 12 | library: 'ReactBootstrap', 13 | libraryTarget: 'umd' 14 | }, 15 | 16 | externals: [ 17 | { 18 | 'react': { 19 | root: 'React', 20 | commonjs2: 'react', 21 | commonjs: 'react', 22 | amd: 'react' 23 | } 24 | } 25 | ] 26 | }); 27 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/routes/post.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'), 2 | router = express.Router(), 3 | PostController = require('../controllers/post.controller'); 4 | 5 | router.route('/').get(PostController.showAllPosts); 6 | router.route('/page/:pageNum').get(PostController.showAllPosts); 7 | router.route('/ajax/posts').get(PostController.loadPostsViaAjax); 8 | router.route('/ajax/postListContent').get(PostController.loadPostListContent); 9 | router.route('/ajax/postsByPage/:start/:end').get(PostController.loadPostsByPage); 10 | router.route('/ajax/getNumberOfPosts').get(PostController.getNumberOfPosts); 11 | router.route('/post/:id/:slug').get(PostController.showSinglePost); 12 | router.route('/ajax/post/:id').get(PostController.loadSinglePostViaAjax); 13 | 14 | module.exports = router; -------------------------------------------------------------------------------- /0x01-challenge/react-blog/sass/font.scss: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,300); 2 | 3 | @font-face { 4 | font-family: 'Glyphicons Halflings'; 5 | src: url('/fonts/glyphicons-halflings-regular.woff2') format('woff2'), 6 | url('/fonts/glyphicons-halflings-regular.woff') format('woff'); 7 | } 8 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/sass/footer.scss: -------------------------------------------------------------------------------- 1 | .footer { 2 | width: 100%; 3 | text-align: center; 4 | margin: 15px 0; 5 | position: relative; 6 | 7 | .footer-powered-by { 8 | position: absolute; 9 | left: 0; 10 | font-style: italic; 11 | font-size: 0.8em; 12 | } 13 | } -------------------------------------------------------------------------------- /0x01-challenge/react-blog/sass/full-post.scss: -------------------------------------------------------------------------------- 1 | .full-post{ 2 | padding: 30px 20px; 3 | 4 | img { 5 | width: auto; 6 | max-width: 100%; 7 | } 8 | 9 | ul, 10 | ol{ 11 | margin-left: 20px; 12 | } 13 | 14 | .post-title{ 15 | font-size: 43px; 16 | font-weight: 300; 17 | color: #263238; 18 | } 19 | 20 | .author-details{ 21 | margin-top: 20px; 22 | overflow: auto; 23 | 24 | .author-photo{ 25 | width: 60px; 26 | height: 60px; 27 | } 28 | 29 | .author-name{ 30 | font-size: 20px; 31 | margin-top: 20px; 32 | margin-left: 20px; 33 | } 34 | 35 | .author-photo-placeholder { 36 | display: none; 37 | } 38 | } 39 | 40 | .post-content{ 41 | margin-top: 30px; 42 | font-size: 20px; 43 | font-weight: 300; 44 | color: #263238; 45 | } 46 | 47 | } 48 | 49 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/sass/pagination.scss: -------------------------------------------------------------------------------- 1 | .pagination-container { 2 | margin: 15px auto; 3 | 4 | .disabled { 5 | pointer-events: none; 6 | } 7 | } 8 | 9 | .pagination-wrapper { 10 | text-align: center; 11 | } -------------------------------------------------------------------------------- /0x01-challenge/react-blog/sass/post-list.scss: -------------------------------------------------------------------------------- 1 | .single-post{ 2 | display: block; 3 | padding: 15px 20px; 4 | text-decoration: none; 5 | 6 | &:hover{ 7 | background: #ECEFF1; 8 | text-decoration: none; 9 | } 10 | 11 | .post-title{ 12 | font-size: 20px; 13 | color: #607D8B; 14 | font-weight: 300; 15 | } 16 | 17 | .author-details{ 18 | overflow: auto; 19 | margin-top: 15px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/src/IncludeHandler.js: -------------------------------------------------------------------------------- 1 | var request = require('superagent'), 2 | config = require('../config'); 3 | 4 | var IncludeHandler = (function() { 5 | 6 | 7 | var _handleInclude = function(type, path, cb) { 8 | 9 | var executeCallback = function(data) { 10 | if(typeof cb != 'undefined') { 11 | cb(type, data, path); 12 | } 13 | }; 14 | 15 | switch(type) { 16 | case 'html': 17 | case 'md': 18 | 19 | request 20 | .get(config.baseUrl+path) 21 | .end(function(err, res){ 22 | executeCallback(res.text); 23 | }); 24 | break; 25 | 26 | default: 27 | executeCallback(null); 28 | break; 29 | } 30 | }; 31 | 32 | return { 33 | handleInclude: _handleInclude 34 | }; 35 | 36 | })(); 37 | 38 | module.exports = IncludeHandler; -------------------------------------------------------------------------------- /0x01-challenge/react-blog/src/alt.js: -------------------------------------------------------------------------------- 1 | var Alt = require('alt'); 2 | var alt = new Alt(); 3 | module.exports = alt; -------------------------------------------------------------------------------- /0x01-challenge/react-blog/src/analytics.js: -------------------------------------------------------------------------------- 1 | var ReactGA = require('react-ga'); 2 | var config = require('../config'); 3 | 4 | var gaId = config.googleAnalyticsId; 5 | if (typeof window !== 'undefined' && gaId && gaId.length > 0) { 6 | ReactGA.initialize(gaId); 7 | } else { 8 | gaId = null; 9 | } 10 | 11 | var analytics = { 12 | pageView: function(page) { 13 | if (!gaId) { 14 | return; 15 | } 16 | if (!page) { 17 | page = window.location.pathname; 18 | } 19 | 20 | ReactGA.set({page: page}); 21 | ReactGA.pageview(page); 22 | } 23 | }; 24 | 25 | module.exports = analytics; -------------------------------------------------------------------------------- /0x01-challenge/react-blog/src/client.js: -------------------------------------------------------------------------------- 1 | 2 | var Iso = require('iso'); 3 | var Router = require('react-router'); 4 | var React = require('react/addons'); 5 | var routes = require('./routes.jsx'); 6 | var alt = require('./alt'); 7 | var Analytics = require('./analytics'); 8 | 9 | Iso.bootstrap(function (state, meta, container) { 10 | alt.bootstrap(state); 11 | Router.run(routes, Router.HistoryLocation, function (Handler, state) { 12 | Analytics.pageView(state.path); 13 | 14 | var node = React.createElement(Handler); 15 | React.render(node, container); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /0x01-challenge/react-blog/src/components/App.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react/addons'); 2 | var RouteHandler = require('react-router').RouteHandler; 3 | var Header = require('./Header.jsx'); 4 | var Footer = require('./Footer.jsx'); 5 | var Grid = require('react-bootstrap').Grid; 6 | var Row = require('react-bootstrap').Row; 7 | var Col = require('react-bootstrap').Col; 8 | 9 | var App = React.createClass({ 10 | 11 | render : function() { 12 | return ( 13 | 14 | 15 | 16 |
    17 | 18 | 19 | 20 | 21 | 22 |