How to document AngularJS + Ruby on Rails app? [closed] - ruby-on-rails

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I'm using yard to generate my documentation for Rails apps from an rdoc file. There are AngularJS documentation generators, but how could they be connected to generate one coherent document for an AngularJS + Rails app?

In this case it is probably fine to have them separated, and indeed may make more sense to have them separated. Angular is going to be solely for your client-side stuff, and I'm assuming you're then using Rails as an API or perhaps a different piece of the app's functionality. Either way, they are fundamentally doing different things, so it would make sense to have them in different doc sections.
You could create a "landing page" for your documentation if you'd like: one button links to Angular docs and one to Rails docs, and that would solve the need to have them both "in one place". Actually figuring out a way to make them overlap in the same system is likely not worth the effort though, and may actually be a worse user experience.

As the previous answer stated, it would be good to use two different tools and link them together.
I would start with something like Apipie or just rdoc to document the ruby stuff. Additionally I would search for a good js documentation generator. This article compares a four different generators, while 'Docco' seems to have a ruby port with that is called 'Rocco', that may be even able to generate documentations for both, ruby and js. JSDoc on the other hand enables you to integrate custom pages into your docs (here you could place a link to the apipie generator).
In general I would probably just go for the rails API doc and have some conventions for commenting your angular code, as the angular stuff probably has no API that is accessible by another part of your system and therefore only needs some internal documentation.

Related

Is there a gem that provides read/write/delete actions for wide range of URI schemes, such as file://, env://, etc? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I am the author of a ruby gem sym which performs symmetric encryption.
As part of the command line interface, I would very much like to be able to consume the data to [de]encrypt, and write the result out via a pluggable set of URIs. It seems to me that we are already using URIs in this way, for example file:// exists and is supported by OpenURI module.
However, what I would like is a gem that not only understands much wider set of URIs but can also read/write and possibly delete resources defined via URIs.
This functionality could be so tremendously useful because any ruby program that reads and writes data can suddenly replace File.read with, something completely generic:
var_value = SuperURI.parse('env://BASH_VARIABLE_NAME')`.read
or
redis_op = SuperURI.write('redis://localhost:6379/1/OP,Arg1,Arg2')
or
contents = SuperURI.parse('scp://user#host/path/file').read
As I continued on this path, I've thought of the following candidate URIs. Not all of them can support writing or deleting the resource, but all of them can read the data.
Existing URIs supported by OpenURI:
http[s]://user#host/path/file
file://filename
ftp[s]://user#host/path/file
ldap://ldap.example.com/dc=example?
Suggested possible ways of accessing local and remote data:
string://value
env://variable
std[in|out]://
shell://command
keychain://item_name
redis://127.0.0.1:6397/1/OP,arg1,arg2,...
memcached://127.0.0.1:11211/OP,arg1,arg2
scp://user#host/path/file
postgresql://user#host/db/?sql=select%20now
And so on.
What are people's thoughts on usefulness of this gem (let's just call it SuperURI for now) which would provide implementations for the unconventional URI protocols?
Is it useful? Is it a horrible idea? Is it inherently insecure?
Thoughtful opinions from the Ruby community are very much appreciated.
Thanks!
The simple answer is no, so start writing.
You seem to have a good idea of what the gem should do and how it should behave. As you have already created a gem, I presume you have the requisite skills necessary to create another.
I'd suggest that there are already gems (and standard libraries) that handle particular actions (File for file handling for example). So the new gem should just parse the input string and pass the result on to the relevant existing library/gem.
I'd also suggest that rather than having parse('string').read you just use read('string'). It maybe good to try and support the CRUD actions; so:
SuperURI.create('file://filename', data)
SuperURI.read('file://filename')
SuperURI.update('file://filename', data)
SuperURI.delete('file://filename')
I've just thrown together some code showing how I'd do it. Feel free to abuse it at will.

Why controllers? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have spent alot of time developing on sinatra, and that has worked fine for me because I have only worked on small projects and scale has not been a problem. Now I have the need to use rails, and the structure is a little confusing to me. I understand that when I type localhost:3000/images rails looks for the route in routes.rb (e.g. get 'images#index'), then goes the the controller images then in images looks for a index function, and finally finds the index view and renders it.
Why are all of these changes necessary? Couldn't it be simpler like sinatra (which seems to just include the controller step in the main file)? In an answer I am looking for why it is better to do it the way rails does it including specific reasons, advantages and disadvantage with examples.
Thanks in advance!
Konstantin Haase is the current maintainer of Sinatra and feels that they both cater for different types of application:
They are both solving a different set of issues, even though they
indeed overlap. While Rails is a framework focused on writing model
driven web applications, Sinatra is a library for dealing with HTTP
from the server side. If you think in terms of HTTP
requests/responses, Sinatra is the ideal tool. If you need full
integration and as much boilerplate as possible, Rails is the way to
go.
David Heinemeier Hansson also believes that there was room for both of them, but feels that is size of your app that should influence which one to use:
Sinatra is great for the micro-style, Rails is not. As long as you
stay micro, Sinatra will beat Rails. If you go beyond micro, Rails
will beat Sinatra.
So, basically, Sinatra and Rails are different and they have different use cases. Rails is an open source full-stack web application framework. It follows the popular MVC framework (Model, View, Controller) model and is known for its "convention over configuration" approach to application development. So, as you can see controller is a part of Rails by design.
You can find many articles describing the differences between Rails and Sinatra and their use cases. Here are couple of interesting blogs:
Rails vs. Sinatra
Rails vs. Sinatra by Example
K M Rakibul Islam's answer is great. You might also check out Rack. Both Rails and Sinatra are built on it. Rack is a web server interface that expects an "app" to be a Ruby object that takes a request hash via a method called call and then to respond with an array that includes the http response code, the http headers and the response body. It's pretty barebones. Looking at Rack might give you a better sense of how the two diverge past that-- if you're interested in "how" rather than "why".

Ember.js and Ruby on Rails: Strategy [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I need to develop an interactive web app with an admin backend. I have thought about using Ember.js for the frontend and Ruby on Rails (with ActiveAdmin) for the backend.
But i have some questions:
1) Should i put the Ember.js app inside the rails project, or having both separate? Is there any performance difference or something i should know about choosing one of the two strategies? I like to have things as clear as i can.
2) Should i use Ember.js and Rails-API instead? I mean... i think i won't use almost anything about the Ruby on Rails project... But i am confused, as i need the Admin Backend...
I have some experience (a little) on Ruby on Rails, but as i am new to Ember.js, i would really appreciate any help you can give me.
I also worked on a similar kind of project, and believe me having two different projects will benefit you a lot.
I used followings:
Sinatra for backend
Backbone.js for frontend
It makes a lot easier to add the functionality in your code, when you use two separate apps.
I recently had a similar project with an Angular app and a Rails backend. I agree with Arslan. Having a Sinatra, Rack or other API is better than Rails.
Using Ember for some parts, and Rails for other parts (like the Admin section) is a bad idea because:
You are doing the same things 2 different ways: getting data, rendering pages, etc.
You would have 2 separate functionalities in within the Rails app: one Rails app and one API.
It is much simpler to run 2 separate apps than to put a Javascript MVC into a Rails app. You end up with complexity in getting the Asset Pipeline to do what you need.
Here's my take:
If you're fluent in Rails, stick with Rails.
Yes, Sinatra or other frameworks may be lighter, but you'd have to handle lots of things by yourself.
As for Rails-API, it's a good project, but it's a bit of hassle at the beginning to figure out what modules were removed, etc. You can make an API with Rails without Rails-API. You can always use Rails-API at a later point if it turns out you need the performance increase.
Use Ember CLI for your client application.
It's the golden path for developing ember applications and using third party libraries. The gem Ember-rails still works and is still maintained, but you should not start a new project with it.
Keep them separate
It simply makes more sense to have them separate. This way, development and deployments of both apps are not tied to each other.
It uses more repositories though, and if you're using github, it may mean you'd have to switch plans. But there are other options such as bitbucket where the pricing is not tied to the number of private repositories
I hope this helps you.

Advantages of Ruby on Rails application that consumes REST API [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I see some old questions here and here
It is now 2014, and I also have a more specific question.
Another company has built a REST API. Now I want to build a web application that only needs controller and view. I was originally planning to build this with just PHP without the bloat of an MVC framework. Then I was thinking maybe doing it with ASP.NET with just simple code behind and .aspx approach (the non-MVC way). I was even considering using only JQuery and HTML. The reason I haven't really considered a full MVC framework is because I'm simply just sending data, getting data and printing data. I don't have to really implement business logic.
Right now I'm considering doing this in just the ruby language because it seems like such a clean and minimalist language. But is there any advantage to including the entire rails framework? If so, what features are worth considering in the rails framework for my purposes?
EDIT
It seems I got a close vote for opinion based. But I'm not looking for opinions. I'm looking for the advantages of rails framework for my purposes. In other words, what problems can the rails framework solve significantly faster than just using ruby+curl+print_line().
As example on how to answer the question objectively, you can state things like:
Scenario 1:
Rails makes CURL calls and displays in views like so.
Pure ruby make calls and outputs views like so.
Result: As can be seen, rails requires X fewer lines of code than pure ruby as it pertains to the OP's original question
Scenario 2:
Rails handles page caching like so.
Pure ruby page caching will need to be handled like so.
Result: As can be seen, rails require X fewer lines of code than pure ruby as it pertains to the OP's original question
By listing the problems the original rails authors hoped to achieve and solutions they hoped for us to utilize in the situation defined in the OP's original question, we can see quantitatively the advantages Rails has over pure ruby.
Rails is pretty big, and in my opinion you don't need the bloat of Rails for something this simple. Even though it's not an MVC framework, I would recommend something like Sinatra, especially since it doesn't force you to use a database at all. Sinatra is a very simple framework, and it's most useful when you just want a way to easily set up HTTP routing with basic view support. However, note that it is possible to create a model that doesn't use ActiveRecord with Rails.

Is Ruby on Rails good choice for my next web-app? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
When I am writing this, I must admit that I am already inclined towards RoR.
I have gone through official "Getting Started" tutorial and created a sample RoR app.
I have also had glance through guides.
While creating sample app, I loved the ways Rails auto-generate a whole lot of code for me, and creates a nicely organized directory structure.
Creating simple sample app is fine but now I have following questions before choosing RoR for enterprise web app.
Following are question in my mind.
How would I debug my app? While working on Java + Spring, we could step through in Eclipse, read about ruby-debug which is like command prompt debugging. Aren't there any IDE debuggers?
How would I combine all javascripts etc? in Java=Spring framework I had earlier used Google closure template for minification and joining all javascript files. would it allow sourcemap support?
Image Spiriting ? Any quick link to just look through if its possible or not?
Authentication and security : I am sure it must be possible in Rails to get logged in user's profile and then check what are db objects we can view and update, it will specific to one's web-app. Can anyone give some links, to just look through if its possible or not? can we protect the URL based on roles as we can do in spring? How do we integrate FB/Google login
Templating : While creating sample app, realized that Rails supports templating in html through embedded ruby tags, thats cool but having seen it work two more questions.
5.1 : :construct like :confirm etc would depend on jquery_ujs.js, thats perhaps
shipped with rails, but I may not want to 'jquery_ujs.js' I may have my own
different styling for modal dialogs. How do i replace jquery_ujs.js and plugin
something else ?
5.2 : app->view->layouts->application.erb.html , allows you to setup up title of all
pages and what goes in header of all pages.
But I may not want the same title and header for all pages of my web-app,
It would be different for each page. How do we do that in rails?
DB : most probably I am going to use DynamoDB as and use memcache for caching,
Any simple and sample code for pluging in the memcache in rails for dynamo
Maintaining three environment: How to we maintain three different environment in Rails, Production, staging and dev
Would i be able to use less instead of css?
As everything, there are more than one way to approach to every single question.
I usually use pry-remote to debug my rails application, because I use pow server and I use Sublime Text, but RubyMine is a nice IDE for developing Rails apps and it has a build in debugger.
Sprockets takes care of this and it's integrated in Rails. I use SASS and CoffeeScript, and you can generate source maps easily for them using those gems - sass, coffee
You can use Compass to generate image sprites pretty easily. (Check out this episode on Railscasts - Compass & CSS Sprites
Devise gem is really popular solution for authentication and for the Facebook/Google+ you can use OmniAuth which integrates nicely with Devise. And for authorisation, a really popular solution is Pundit gem.
You are free to use whatever JS UI library you like and for the dynamic layout content you can use content_for helper. You just have to add yield :page_title in your layout and then, call the content_for :page_title { 'Specific title' } in your views.
For this question, I don't have an answer but I am pretty sure that there is a gem that can help you with this like Dynamoid for example
Rails supports different environments out of the box (testing, development, production) and you can easily add your own ones.
Rails has a support for SASS out of the box, but you can easily switch to LESS. Check out less-rails gem.
Rails is pretty mature framework and the community around it is pretty good, so you can easily find a gem that can help you solve specific problem. And there are quite a lot resources around the internet.
Good luck :)
i will give a short glance
ANSWER-1
There is no such debugger like eclipse for ROR, you can use sublime_text editor for editing, Rspec is nice tool for RoR.
Answer-2
In RoR there is no need to combine all js files,you can write any of the .js file it will be render to application.js default
Answer-3
Link to question
Answer-4
There are gems in RoR which wil easily help you to do stuffs like authentication, omniauth etc..
RUBYGEMS
Answer-5
There are many ways you can easily find out asking on stackoverflow for your problem.
Suggession:
Instead of asking many question you should try to learn ruby deeply you will easily get your answers.

Resources