digitpaint / roger Goto Github PK
View Code? Open in Web Editor NEWRoger is your friendly front-end development toolbox!
License: MIT License
Roger is your friendly front-end development toolbox!
License: MIT License
Automatically build a list of release zips and upload them.
When building on travis the links to assets are made absolute while locally this doesn't happen?
Can it have something to do with the relativizer?
There are two issues with partial rendering:
partial "XYZ", locals: { key: "value" }
. That extra locals
key is unnecessary.locals[]
Hash or by using the generated local variables based on the keys in the hash. One method should suffice.HPricot is really old and should be replaced with something like Nokogiri
Roger Middleware should determine the correct mimetype.
Yet another without test coverage? 💃
https://github.com/DigitPaint/roger/blob/master/lib/roger/release/processors/url_relativizer.rb#L37
Likewise the generator for generators, we should make a plugin generator, make it as seemless as possible to extract additional functionality into a gem.
Roger (0.13.0) listens on ipv4 only to 127.0.0.1, but I want to use 0.0.0.0 as well.
In the Roger::Release::Injector class release.getfiles(@options[:into])
is called, see https://github.com/DigitPaint/roger/blob/master/lib/roger/release/injector.rb#L49. I've a mockup and In the mockupfile the injector is called to inject a banner into the pattern **/*.js,**/*.css
.
The thing is in a certain mockup I've a JS library file placed at '/vendor/raf.js/raf.min.js', yes that's correct a folder named 'raf.js'. The injector tries to retrieve all the files with this pattern, by calling release.getfiles. This getfiles function uses the glob to get all files and it also founds the folder 'raf.js', because it's not checking/validating wether it's a file. (https://github.com/DigitPaint/roger/blob/master/lib/roger/release.rb#L206). So its missing a check to validate it collects only files at the function 'getfiles'. :)
Another solution could be to exclude the 'vendor' folder for the injector, but the injector doesn't support a exclude/skip array.
If a layout is missing you don't get any feedback. It just renders without the layout. This should not happen.
Invoking roger test -v
to get verbose mode, doesn't currently work.
$ bundle exec roger test -v
ERROR: "roger all" was called with arguments ["-v"]
Usage: "roger all"
Rename the class and the preferred filename. Keep support for old Mockupfile but give a warning.
Right now it's not possible to check which version of roger is used.
So we can execute the command bundle exec roger -v
(or --version), and it will display the current version of roger that's used.
Front-Matter data merging is a bit naïve; we just update the data hash everytime we encounter a new front-matter. As all templates are now created equal it means that you can now theoretically put front-matter in partials as well. But as long as you don't everything should work as before.
The flow 'Get started' is not currently working:
$ gem install roger
...
$ roger generate new example
/Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:198:in `rescue in root': Could not locate Gemfile or .bundle/ directory (Bundler::GemfileNotFound)
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:194:in `root'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:106:in `bundle_path'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:425:in `configure_gem_home_and_path'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:92:in `configure'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:153:in `definition'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:123:in `setup'
from /Users/joran/.rvm/gems/ruby-2.2.2@global/gems/bundler-1.10.6/lib/bundler.rb:134:in `require'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/gems/roger-1.4.6/lib/roger/cli.rb:4:in `<top (required)>'
from /Users/joran/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/joran/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/gems/roger-1.4.6/bin/roger:3:in `<top (required)>'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/bin/roger:23:in `load'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/bin/roger:23:in `<main>'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/bin/ruby_executable_hooks:15:in `eval'
from /Users/joran/.rvm/gems/ruby-2.2.2@example/bin/ruby_executable_hooks:15:in `<main>'
A workaround is the following:
$ echo "gem 'roger'" > Gemfile
$ roger generate new example
Apparently, there is a misplaced Gemfile check when creating a new project. This check can probably be removed.
On line: https://github.com/DigitPaint/roger/blob/master/lib/roger/release/finalizers/rsync.rb#L68
CodeClimate coverage
https://codeclimate.com/github/DigitPaint/roger/coverage/5587d85dd86bab7e2601da4d
How is the $CHILD_STATUS set?
This causes source mapping using external files to fail, because these files cannot be rendered separately nor should they be (the original source should be returned).
Binary files are passed through the renderer as well (unsure if this is a problem), e.g.:
00:59:10 roger.1 | Rendering template #<Pathname:something.jpg> ("/something.jpg")
I think we can either:
On https://github.com/DigitPaint/roger/blob/master/lib/roger/rack/roger.rb#L46 the env is undefined.
Right now, you can attach view helpers by defining them into the global scope which is copied to roger.
I would like to be able to add them with a sane scope.
branch
variable isn't passed to commit_and_push_release
While this is already possible in the Mockupfile (see below), it should be able to append paths to this array in plugins.
mockup.project.partial_path = [mockup.project.path + "partials", mockup.project.path + "libs/website-shared/partials"]
The generation of documentation, TOC and changelog that are delivered are still depended on copy-paste from earlier projects. To ease the process, we should reconsider how we work with this. As an artefact of earlier mockup versions we still rely on injecting the changelog, we could leverage Tilt here for example. Currently we lack syntax highlighting for example. This is just an example however, I am interested in the problems people experience while using roger in their workflow.
For the moment I will focus my effort on creating a generate command for these _doc files, however feedback is very appreciated!
Make it a module and/or make it available through Project class as well.
https://github.com/DigitPaint/roger/blob/master/lib/roger/release.rb#L195
Check:
Wanted behaviour:
If git hash hasn't changed, files that were in the release and are no longer there after a second release, will still be in the release folder.
It has been deprecated in favour of Template for a while now. Old project code should be updated.
These components have no tests yet:
These components need better/more tests:
Release can contain empty folders. It might be nice to have them automatically removed.
Breaks because source_path in release.rb is hardcoded to project.path + "html".
Sometimes the output of Roger needs to be parsed by other tooling. A commandline flag to get JSON logs instead of just standard logging would be nice.
Do you wish to upload to somewhere.com? [y/N]:
there should be a command line flag to answer this, for use in a CI environment, where there is nobody to type "y" or "n".
Renderer#find_partial / Renderer#find_layout has a bit of overlap that could be refactored
Allow some sort of check for dependencies during start like bundler does.
Allow generator registration to pass a name for the generator just like all other register functions.
Check if all register functions have consistent signatures.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.