Setting up EmberJS project directory structure? - ember.js

I have been working with EmberJS online guides, and it has been somewhat of a hit or miss process. With Sproutcore2 I could generate the project directory structure via commandline command and be done with it. Well with Ember, it is rather manual. I would like to be able to set up a project's director structure where I am able to separate the model(s),view(s), and control(s) into their own folders. I have been trying to do so but require statements aren't importing correctly from MVC folders. I have downloaded the "todos" app, but it is no help, because the directory structure is not demonstrated as I had expected.
I would like to start with a simple "HelloWorld" application where "app" will be my facade, and I can then import my models,views, and controls from their folders which will be placed under mvc folder within the "HelloWorldApp" folder. Appreciate all your help.
HelloWorldApp (project directory)
->js (directory)
->lib (directory)
->ember-0.9.5
->ember-0.9.5.min
->jquery-1.6.1.min
->template (directory)
->main-view-template
->mvc (directory)
->model (directory)
->view (directory)
->control (directory)
->css (directory)
app (app.js)
index.htm

Take a look at the early alpha of the Ember build tools' template structure (based on Ember-Skeleton): https://github.com/emberjs/ember-gem/tree/master/lib/ember/templates/app. I'd imagine that something very close to this structure will be the default moving forward.

After trying out different approaches, I ended up declaring all my model(s), views(s), and controller(s) in the index file right after where the ember-0.9.5 is being called via javascript. Once I did that I was able to instantiate my model "Person" in "app".
Thx.

Related

in smarty version3 I see in folder structure we have 2 plugin directory which should use for create custom plugin function?

see file structure in screenshot atachment
Hello Friends,
I see in smarty template version3 two plugin directory.
one into project folder and other into libs.
In libs folder we have plugins and sysplugins directory.
My question is I need to create a custom function so I need to put new
file into which
directory is best way?
Both way working I checked but which is the best way to put custom plugin file in which directory?
You can put plugins in any directory that has been added to the Smarty plugins_dir, but looking at your screenshot, it appears that the "other" plugins directory you are looking at is part of the demo application included in the Smarty distribution. You should just remove the demo directory entirely and put your plugins in the smarty/libs/plugins directory.

Foundation 5 custom sass project setup

I have a project that I would like to use foundation 5 with. I have been through the steps of creating a new foundation project using the CLI but I don't like it. There is too many files and the structure does not match what I want. So...
I am intending to add only the required files to my project and use compass to compile all the css.
I have noticed in the project created on the CLI a few things that confuse me and would like some help in clearing them up.
In the project created on the CLI there are two _settings.scss files one under the foundation directory in bower_components and one in MY_PROJECT\scss. I'm assuming that because of this add_import_path "bower_components/foundation/scss" line in the config.rb, which of those files has preference?
Why does MY_PROJECT/stylesheets not have normalize.css (or foundation.css) in it? And how are they not there? (in my custom setup they are being generated, albeit in subdirectories of stylesheets, also the foundation.css that is being generated for me has no settings changes applied so I guess it shouldn't be being generated)
If you take a look inside \bower_components\foundation\scss you'll see the file foundation.scss. That file imports all the stylesheets for all the additional components that come in the Foundation 5 "package." In your root scss directory, the app.scss is what compiles the SASS into \stylesheets\app.css. So rather than this:
#import "foundation";
Uncomment the individual components you'll be using. Something like this:
#import
//"foundation/components/accordion",
//"foundation/components/alert-boxes",
"foundation/components/block-grid",
//"foundation/components/breadcrumbs",
//"foundation/components/button-groups",
//"foundation/components/buttons",
"foundation/components/clearing",
"foundation/components/dropdown",
//"foundation/components/dropdown-buttons",
//"foundation/components/flex-video",
"foundation/components/forms",
"foundation/components/grid",
//"foundation/components/inline-lists",
//"foundation/components/joyride",
//"foundation/components/keystrokes",
//"foundation/components/labels",
//"foundation/components/magellan",
//"foundation/components/orbit",
//"foundation/components/pagination",
//"foundation/components/panels",
//"foundation/components/pricing-tables",
//"foundation/components/progress-bars",
"foundation/components/reveal",
"foundation/components/side-nav",
//"foundation/components/split-buttons",
"foundation/components/sub-nav",
//"foundation/components/switches",
"foundation/components/tables",
//"foundation/components/tabs",
//"foundation/components/thumbs",
//"foundation/components/tooltips",
"foundation/components/top-bar",
"foundation/components/type",
"foundation/components/offcanvas",
"foundation/components/visibility";
If you'd like to streamline your file structure, I would suggest you remove any scss files from the \bower_components\foundation\scss\foundation\components directory that you will not use. Same with the js directory. You don't actually need to modify anything in the bower_components directory to get everything to work. Not entirely sure why it's all contained within bower_components, but I imagine it's got something to do with being able to update the core components later with future releases.
Someone else could probably give a more educated answer.
p.s. - make sure to compass watch in your CLI to see any of those changes made to your SASS files.

In Django (v1.6.5), what's the best practice for location of Templates, Static files?

I am severely confused about where to put my templates files and static files.
I understand absolute and relative paths just fine, but I can't seem to find any instructions that mirror the installation I have. I know this resembles other questions, but those answers aren't working. The video I watched to successfully build a simple app didn't put templates in the Project folder, which is where logic tells me they should be.
I have Python at:
C:\Python27
Django (v1.6.5) at:
C:\Python27\Lib\site-packages\django
I created a project "mysite" and an app called "films."
Project "mysite":
C:\Python27\Scripts\venv\mysite
and an App "films":
C:\Python27\Scripts\venv\mysite\films
The video I watched had me put my templates at:
C:\Python27\Lib\site-packages\django\contrib\admin\templates
But this seems completely stupid because the templates are outside of both the Project and the App.
Shouldn't I put a templates folder in the Project folder:
C:\Python27\Scripts\venv\mysite\templates
And then create subdirectories using the App name?
What files do I need to edit (and how) to tell Django where to find them?
Follow a similar process for static files (css, images)?
Like all frameworks, django offers great benefits if you follow some guidelines (and give up some control). The trick is to know what these guidelines are.
For templates:
If the template is not tied to a particular application, put it in a templates directory at the root of your project. Add the full path to this directory to TEMPLATE_DIRS.
All other templates should go in a directory called templates inside your application directory. So if you application is called myapp, templates for myapp will go in myapp/templates/
For static files:
For files related to specific applications, inside your application directory create a directory called static, then inside it a directory with the name of your application. So, if your application is called myapp, you would have myapp/static/myapp. Place all your static content for this application here; for example myapp/static/myapp/js/funky.js.
For static files that are generic, create a directory called assets (or static) in the root directory of your project. Add the full path to this directory to STATICFILES_DIRS.
By default, django will search all applications listed in INSTALLED_APPS, and add any templates and static directories to its search path for files. This is how, by default, the admin works without you having to configure anything.
If you chose to place your templates and static files in some other location, only then do you need to modify the TEMPLATE_DIRS and STATICFILES_DIRS settings. If all your templates and static assets are tied to applications, just creating the directories as mentioned above makes everything work.
If you are wondering why you need to create another directory under myapp/static/ to store your static files, this is more for portability. The collectstatic command is a simply "copy and replace" utility. It will overwrite all files in the STATIC_DIR location. This means that if two applications have some static file with the same name, they will be overwritten without warning. Adding a subdirectory keeps your application's static assets from being overwritten, because the exact path will be created.
Suppose you have two applications, app1 and app2, and both have a file named style.css in their respected directories:
app1/static/css/style.css
app2/static/css/style.css
When you run collectstatic, you'll end up with the following (assuming static is the name of your STATIC_DIR setting):
static/css/style.css
This may be the style.css from app1 or app2, the other cannot be determined (its actually based on the INSTALLED_APPS order). To prevent this, if you have:
app1/static/app1/css/style.css
app2/static/app2/css/style.css
Now, you'll end up with:
static/app1/css/style.css
static/app2/css/style.css
Both files will be preserved.
You also shouldn't put your code in your virtual environment directory. The virtual environment is not part of your source code, and placing your project in the same directory may cause problems later.
Create a single directory for your environments - I call mine envs (creative, I know). Create all your environments in this directory. Once you activate the environment, you can work in any directory in your system and your shell will be configured for that environment's Python.
Finally for the best, accurate, most up-to-date information - always refer to the django manual and the tutorial. Almost all other resources (even the often suggested djangobook.com) are outdated.

git pull shows merge conlict in .cproject file

What is exactly the .cproject file?
I didn't add any new files to my project.
I didn't change any project properties.
Is it auto-generated?
Is it safe to take the remote version if I didn't touch this file explicitly?
add this file to your git ignore so it will not be added to the repository.
You can use this online tool for that:
http://gitignore.io/
or simply edit (or create) '.gitignore' it in your root folder with the following content:
.cproject
This file is auto-generated, which contains your project setting information. you can use a notepad to open it. Without this, you need to re-configure your project.

Cherrypy: Where should I keep my templates

I'm trying to use jinja2 as the template lib for cherrypy.
I'm unable to figure out where should I keep my template files.
The way I'm using it is as documented here:
http://docs.cherrypy.org/stable/progguide/choosingtemplate.html#id2
Can we indicate the path in config file? If yes, what should be the key under which config should be put? Or is it relative to the directory from where app (the file with quickstart call) is invoke?
CherryPy does not tell you where to put your templates, but you can add the location to a config file (under whatever heading you like) and supply it to FileSystemLoader manually.
If you follow the guide you linked to, your templates should be located in a 'templates' folder in the directory you are running the server from.
(N.B. I use pystache, not Jinja, but the principle is the same)