Skip to content

Instantly share code, notes, and snippets.

View between40and2's full-sized avatar

Juguang XIAO between40and2

  • London & Beijing
View GitHub Profile

Paths come with marketing and perception identity purpose, while controller-action is purely technical. Routes decouples these two parts to make it flexible and controller-action reusable.

Tips

Different paths may lead to same controller-action. That is where you need to apply :defaults options to differentiate the paths. controller-action can check params on the defaults. For example, both account creation form and account registration form can share the same accounts#new. :default can be set with usecase: creation or usecase: registration respectively.

:as option is encouraged to apply, so that in your controller or view you can use named path/url to refer to the link. This sets flexibility when you change paths frequently. This is especially handy for routes in engine/plugin, since you cannot predicate how a hosting app set path for engine itself when in use.

No such thing like redirect in route. You can just refer the path to controller-action you want it to be. Example: `root 'cc\t

let bear = Array("bear")
let bird = Array("bird")
let diff = bird.difference(from: bear)
let newBird = bear.applying(diff)
print(diff)
print(newBird)
@between40and2
between40and2 / 21-new-in-foundation.swift
Created November 16, 2022 11:54
WWDC 2021 What's New in Foundation
func parsingDates() {
let date = Date.now
let format = Date.FormatStyle().year().day().month()
let formatted = date.formatted(format) // "Jun 7, 2021"
if let date = try? Date(formatted, strategy: format) {
// https://developer.apple.com/videos/play/wwdc2022/110357
import RegexBuilder
func ~=<T>(pattern :Regex<T> , value: String) -> Bool {
do {
return try pattern.firstMatch(in: value) != nil
} catch {
return false
}
@between40and2
between40and2 / date time format: ISO_8601
Created December 27, 2013 08:23
ISO 8601. iOS, Rails
I am developing for iOS and RoR. For date time issue, I feel lucky, since both works with ISO 8601.
By default, Rails 4 returns ISO 8601 format as json output.
On iOS, you should have date format as @"yyyy-MM-dd'T'HH:mm:ssZZZ"
See http://developer.github.com/v3/ (search "ISO")
@between40and2
between40and2 / rails-how-to-customize-json
Created December 27, 2013 07:48
If you are not satisfied with default to_json implementation of ActiveRecord. Here is the way out.
Customizing a model object's JSON representation, first of all, is a business of ActiveRecord::Serialization. You will look at ActiveModel::Serializers::JSON class
https://github.com/rails/rails/blob/master/activemodel/lib/active_model/serializers/json.rb
and then will come back to ActiveModel::Serialization class
https://github.com/rails/rails/blob/master/activemodel/lib/active_model/serialization.rb
@between40and2
between40and2 / rails-routes-in-depth
Created December 12, 2013 12:14
rails-routes-in-depth
Do you know, you can access your own rails website on /rails/info/routes , under development environment?
The working house is shown below.
https://github.com/rails/rails/blob/master/railties/lib/rails/info_controller.rb
In turn, ActionDispatch::Routing::RoutesInspector is the real hero. Linked below.
https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/inspector.rb
@between40and2
between40and2 / JXUIStory_id_creation__UINC
Last active December 29, 2015 08:09
JXUIStory_id_creation__UINC
UIStory needs a Procedure to guide it, and story listens to Procedure's events of proceed and complete .
It is UIStory to expose proceedNext method for client to call. While UI will have "next" button to proceed the procedure, too.
UIStory has a JXUIVCFactory_ProcedureStep .
VCFactory will createVC, setObject:intoVC, and getObject:fromVC, according to step.
Since the kinds of steps are currently limited, the VC types to be used are limited too, therefore manually manageable.
JXModel_ProcedureStep_ObjectPart_Attribute --- JXUITVDSD_NSArray_Selection (or JXUITVDSD_NSArray_Selection__allowsAddSimpleTextOptions)
@between40and2
between40and2 / FOG
Created November 24, 2013 12:55
FOG means Filtering, Ordering and Grouping on an array/list
## Filtering
NSPredicate
## Ordering/Sorting
NSSortDescriptor
Controller 和 Filter 互联方案
以ControllerContext为中介,合理利用ViewData。
http://msdn.microsoft.com/en-us/library/system.web.mvc.controllercontext(v=vs.108).aspx
自定义Model类:
UserIntention