how to build pdfkit with new afm from the github repository - ruby

pdfkit-www is a great library. It enable you to output a pdf directly from the browser.
To see the demo : http://ef4.github.com/pdfkit-www/demo.html
From the demo, I took the pdfkit.min.js file ; and it works good. Except for the font ; the only embed font is Arial and font embeding from a directory is not yet supported. If you want to have more font, you have to build the pdfkit.min.js and add the font metrics you want to use in the directory ; as explained here : https://github.com/ef4/pdfkit-www#building
The point is that I have no idea about how to do this. This is ruby and coffee script powered. But here, I feel like a baby monkey in front of a big equation.
Where do I type stuff ? (I'm on windows 7) I tried to type that stuff in the basic windows command line, in the ruby.exe command line and in the command line that open when you click on "open a shell here" when you cloned the repository on the github client.
/* ----- Edit ----- */
Ok, it looks like I should do it with the "Git Shell" (did not see the icon on my desktop first). The first two line seems to work, but the "bundle install" throw an error. (no recognized).
And the "rake" line abort because it "cannot load such file -- bundler".
/* ----- Edit 2 after Duck Boyle answer ----- */ (ok, this is better with an edit)
Ok, thanks a lots, this solved the first problem.
Now the "bundle install" command threw :
Your Gemfile has no remote source. If you need gems that are not already on your machine, add a line like this to your Gemfile : source 'https://rubygems.org'
Could not find rake-0.9.2 in any of the sources
And the "rake" command threw :
cannot load such file -- uglifier
So I tried "gem install uglifier" wich seemed to solve the error for the "rake" command by installing uglifier of course ; then i went in a few gem install for different version of json and execjs and other stuff, according to what the errors told me to do ; untill the "bundle install" command threw :
Using lib..
...
Your bundle is complete !
YOOHOO !
But now, the "rake" command throw :
rake aborted!
Type Error : This objet cannot manage this property or method
I did run the command with --trace ; but I have absolutely no idea about what I have to watch here :
/* ----- Edit 3 ----- */
Yes, I did put the source 'https://rubygems.org' in my gem file, this is what gave me the clues to install all the gems I should install.
(please don't moke me too much I'm only a designer that don't understand everything when it is question about more than the basic html / css stuff)

You should install bundler, used for dependency management in many Ruby projects. Try this:
gem install bundler
I wouldn’t be surprised if you run into more problems after that, let me know.

Related

Struggling to run my ruby cli app

I built a small Cli app in ruby (first ever ruby app), but I'm not able to actually run it.
I started the project off with bundle gem. I have been testing it inside my apps folder by running bundle exec bin/konstruct and everything works fine.
I want to install it locally and test it before I submit it, and so I ran bundle exec rake install after updating all of the info in my gemspec file. It gave successfull output:
konstruct 0.1.1 built to pkg/konstruct-0.1.1.gem.
konstruct (0.1.1) installed.
But when I run the app by entering $ konstruct it gives me an Could not locate Gemfile or .bundle/ directory error, unless I run it from within the root folder of the app.
I have tried to Google but I can't pin the results down to the same issue as I'm having. I've been having this problem even in development (How can I test my Ruby CLI app while still in development?)
I do have a Gemfile and it contains:
source 'https://rubygems.org'
# Specify your gem's dependencies in konstruct.gemspec
gemspec
I don't have a .bundle/ folder though. I'm not sure where/how that folder should be generated. I have run bundle and bundle install many times now.
I have a konstruct.gemspec file which contains: https://github.com/konstruct/konstruct.cli/blob/master/konstruct.gemspec
Most of that file is as it was generated. I just filled it in where I could.
I'm sorry if this is a stupid question, but I am super stuck.
You have the following line in your gemspec:
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
I believe that means if you move your executable file into an exe directory instead of a bin directory, it will work as you expect.
http://guides.rubygems.org/specification-reference/#executables
It turns out I am a first class idiot. Some time ago I added Konstruct in my .path file, which obviously was now overriding the proper konstruct command. Back then what I did din't work, so I just forgot about it.
So the answer to this question: It's not broken. OP is an idiot. :-/

How do I resolve a Cucumber 'can't load such file' warning?

I'm trying to work through 'The Cucumber Book', but Cucumber is not behaving as expected.
I'm on Windows 7 (32-bit), and I'm reasonably confident I have Ruby and the necessary gems installed properly.
However, when I run cucumber I get the following message:
WARNING: cannot load such file -- 2.0/gherkin_lexer_en
Couldn't load 2.0/gherkin_lexer_en
The $LOAD_PATH was:
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.2.1/bin/../lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/gherkin-2.11.6-x86-mingw32/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/builder-3.2.0/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/diff-lcs-1.2.1/lib
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-1.2.1/lib
This continues for a bit, listing more paths that were checked, and then a 'Reverting to Ruby lexer', and a message 'No lexer was found for en (cannot load such file --gherkin/lexer/en)...'
Based on the path it is checking it seems like it wants a '2.0' folder in the 'gherkin-2.11.6-x86-mingw32/lib' folder, which obviously doesn't exist. There are, however, '1.8' and '1.9' folders which appear to have the 'gherkin_lexer_en' file (actually 'gherkin_lexer_en.so').
As a wild guess, I duplicated the 1.9 folder and named it 2.0. I didn't really expect that would work, but figured it was worth a shot.
How do I get cucumber to look in one of the folders I have, or alternatively get a 2.0 folder in place that it will accept?
$ gem install gherkin --platform ruby
go to below folder inside your ruby installation directory
{rubyDir}\lib\ruby\gems\2.0.0\gems\gherkin-2.12.2\lib\gherkin
may be different path for you guys
Modify *lib/gherkin/c_lexer.rb:7
change the value of prefix as below:
prefix = ''
Found answer at below link
https://github.com/cucumber/gherkin/issues/273
with reply
mscharley commented on Jan 18, 2014
worked for me like charm..
On Windows, you will have to use Ruby 1.9 for the time being. There isn't a Ruby 2.0 build of gherkin published yet.
If you are using gherkin ver 2.12.1, you should be able to use cucumber with ruby 2.0 on Windows now.
 
First, install gherkin-2.12.1 with --ignore-dependencies option.
The reson --ignore-dependencies option is required is that without specifying it, it will install json 1.4.X which is very old version and fail to install on ruby 2.0.
 
At this point, you should be able to ruby cucumber on ruby 2.0, but you'll see the error message like above as warning message. This means you can still use cucumber although you are seeing the message.
 
If you want to remove the error, follow the step below.
 
create [2.0] folder on [ruby installed dir]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib (This folder includes gherkin_lexer_XX.so).
copy all the contents in [ruby installed dir]\lib\ruby\gems\2.0.0\gems\gherkin-2.12.1\lib to the created [2.0] folder (you don't need to copy [2.0] folder you created).

RubyTest in Sublime Text 2

I am trying to get RubyTest to work in Sublime Text 2. I followed the Instruction on the Github Readme and get the following error. Does anyone know how I could fix this?
/bin/sh: rspec: command not found
To get this to work you only need to change one setting in the RubyTest package in sb2.
If you are using rvm, your rspec gem is installed through rvm and is not found in /bin/sh
So you need to set the RubyTest package for Sublime Text 2 to automatically check for your rvm environment variables.
What to change:
1) In Sublime Text 2, go to Preferences|Browse Packages. This will open up your packages directory.
2) Open the 'RubyTest' directory and look for the file 'RubyTest.sublime-settings'.
3) find the line that says:
"check_for_rvm": false,
and change it to:
"check_for_rvm": true,
save the change.
4) That's it. It should now work.
Good Luck
This worked for me:
If you're using RVM, open a project with command line from the project's folder:
subl .
Then, it'll hook the ruby version and gems.
This is most likely due to using RVM. What is the output of
which rspec
on your command line?
Also of note, just because you've included rspec-rails in a Gemfile, does not mean that 'rspec' is an executable program that your system knows about.
You can edit the RubyTest.sublime.settings to refer to your particular path to the rspec executable and it should work.
Unfortunately, this has the nasty side effect of being tied to one particular version of Ruby. If you're using RVM to switch between versions, you'll have to update your sublime.settings.
One work around, is to run Sublime from the command line.
Running Sublime Text 2(2165) with RubyTest plugin. Ruby and Gems managed with rbenv (0.3.0).
First attempt to use RubyTest gave the following error:
/bin/sh: rspec: command not found
From the command line I ran
which rspec
and it returned no results.
After some digging, I read that bundle install does not put the executables in your $PATH.
Alternative executable paths not picked up by shims sometimes
In order to use the executible outside the app, I had to delete the gem installed by bundler and then install it manually.
gem uninstall rspec
gem install rspec
followed by
rbenv rehash (Note you will need to run bundle inside your app so it updates the location of the gem)
This had to be performed for each version of ruby I have under rbenv control.
Now when I run
which rspec
it is found in the path and RubyTest is able to grab it without any problems.
fwiw, I had to repeat the steps for cucumber as well. To use all of RubyTests' features, ruby, cucumber and rspec executables need to be in your $PATH (for rbenv it is ~/.rbenv/shims/).
Try change the path to usr/local/bin/
I wrote a post on Sublime Text Build Scripts which should show you how to do this.
http://wesbos.com/sublime-text-build-scripts/
Same issue for me. With rspec 1.3.2 what I just did to fix it is to edit the RubyTest.sublime.settings file in the plugin folder, changing the "ruby_rspec_exec" key from:
"ruby_rspec_exec": "rspec"
to
"ruby_rspec_exec": "spec"
It really depends on the location where you have your rspec executable file...
I had the same problem after installing RubyTest by cloning from the repo. I simply uninstalled and reinstalled the package inside Sublime using Package Control, then everything worked fine.
You can see a summary of this issue here: https://github.com/maltize/sublime-text-2-ruby-tests/issues/36
Essentially, what Jim said was correct, you're running RVM or some other ruby vm manager that similarly monkeys with your PATH. Following the directions from this issue I did the following:
Install the binaries in my project
bundle install --binstubs
Add the path to my .bashrc and source it
echo 'export PATH="./bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Open the sublime project from the command line (so that PATH is available in Sublime Text 2)
subl .
The following steps worked for me (I encountered the same error as OP):
Install the RubyTest plugin through the package control manager.
Note* If you don't have the package manager installed - I highly recommend it for managing sublime plugins - more info here.
Be sure to add the code here to your RubyTest.sublime-settings file.
This file can be found at (from the menu): Preferences -> Package settings -> RubyTest -> Settings User
Save file, close Sublime and restart Sublime from the terminal in your project's folder using (so PATH is available in Sublime): subl .
No, you don't need to change paths, run sublime from command line etc.
If you are using RVM, you only have to do this:
Go to Sublime Text 2, go to
preferances-> package settings -> RubyTests
and pick settings-user or settings-default (depending what you are using) and change line:
"run_rspec_command": "rspec {relative_path}"
to
"run_rspec_command": "bundle exec rspec {relative_path}"
And so forth - add bundle exec to all commands
I spent many hours struggling with this same problem! I could not get rspec to run within Sublime Text 2, using the Michael Hartl "Ruby on Rails Tutorial." It kept saying:
/bin/sh: rspec: command not found
I finally realized that the RubyTest package (https://github.com/maltize/sublime-text-2-ruby-tests) was looking in the WRONG PLACE for my RVM!
On my Mac, the path for RubyTest is /Library/Application Support/Sublime Text 2/Packages/Ruby Test
First, to make RubyTest seek the RVM, I changed the parameter in RubyTest.sublime-settings from
"check_for_rvm": false, to "check_for_rvm": true,
Then I dug into the Python code of run_ruby_test.py: https://github.com/maltize/sublime-text-2-ruby-tests/blob/master/run_ruby_test.py
At line 151, inside class BaseRubyTask, it had the wrong path for my RVM:
rvm_cmd = os.path.expanduser('~/.rvm/bin/rvm-auto-ruby')
I changed it to the full correct path: rvm_cmd = os.path.expanduser('/usr/local/rvm/bin/rvm-auto-ruby')
If this is not your path, find the correct path by typing
$ which rvm-auto-ruby and substitute that instead.
After saving run_ruby_test.py, I went to Terminal, cd to my Rails application directory, and ran spork
Finally, I opened static_pages_spec.rb in Sublime Text 2. Now all the tests work from it!
I'm using rbenv and found that adding the following to my .bashrc did the trick
/Users/user/.rbenv/shims/rspec

Textmate cucumber bundle issues - 'Run Feature' producing errors

From a cucumber feature file when I go to 'Run features' Im getting the error below in the popup box that appears.
How do I fix this?
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- /Users/evolve/Projects/i9/Tornelo/.bundle/environment (LoadError) from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:inrequire' from /Users/evolve/Library/Application Support/TextMate/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate/../mate.rb:10 from /Users/evolve/Library/Application Support/TextMate/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate/feature_helper.rb:1:in require' from /Users/evolve/Library/Application Support/TextMate/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate/feature_helper.rb:1 from /tmp/cucumber-906.rb:2:inrequire' from /tmp/cucumber-906.rb:2
I had the same error. To fix it you need to edited this file:
/Users/richie/Library/Application Support/TextMate/Pristine Copy/Bundles/Cucumber.tmbundle/Support/lib/cucumber
Replace line 10 with the following 2 lines:
environment_file = File.join(ENV['TM_PROJECT_DIRECTORY'], bundle_path, "environment")
require "#{enviroment_file}" if File.exists?("#{environment_file}.rb")
That way it only loads the file if it exists.
I'm using RSpec 2.0 so I also had to modify the rspec require at line 23 (now line 24) to read:
require 'rspec'
This has happened to me since I loaded rvm and gone through the steps listed under packages for textmate.
Now, when I 'run feature' for a cucumber feature from within textmate I get an error '.bundle/environment no such file to load'.
I don't have a .bundle/environment.rb so I created an empty one and the feature gets run but the environment.rb file gets deleted every time! (Making me very keen to see this fixed!)
If you have any feedback to add to your post I'd be very interested to hear it.
Since I posted this, I've reloaded the Textmate cucumber bundle and the problem has gone away.
Beware though - the installation instructions are incorrect - they should read
mkdir -p ~/Library/Application\ Support/TextMate/Bundles/
cd ~/Library/Application\ Support/TextMate/Bundles
rm -rf Cucumber.tmbundle
git clone http://github.com/drnic/cucumber-tmbundle Cucumber.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'
You don't need the 'rm -rf Cucumber.tmbundle' line if this is a first install.
No editing of files needed!
You will be able to update from within textmate once you have done this.
I had a lot of problems getting my CMD-R feature to work, but getting it from the latest master from the Cucumber author, went a long way:
https://github.com/aslakhellesoy/cucumber-tmbundle/tree/
For line 10 in this file:
/Users/richie/Library/Application Support/TextMate/Pristine Copy/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate.rb
Just comment it out! I didn't have a bundle.environment file anyways. But as written above, definitely change the 'require spec' line if you don't have the Gem. Shame the error messages aren't legible in this thing.
And still! There is no longer any "TM_CUCUMBER_BIN" variable, and it turns out that my environment doesn't like "cucumber #{file_name}", but rather "bundle exec cucumber #{file_name}". (Because I also have functioning Rails 2.3.11 environments installed, is why)
In
~Cucumber.tmbundle/Support/lib/cucumber/mate/runner.rb:
Change line 52 from:
#output << %Q{Running: #{full_command = "#{RUBY_BIN} #{command} #{#file.rake_task} #{argv.join(' ')}"} \n}
to
#output << %Q{Running: #{full_command = "bundle exec cucumber #{#file.rake_task} #{argv.join(' ')}"} \n}
One more thing! I have my feature files nested in various subdirectories, so it had no idea where to pull my step definitions from, despite the fact that a Dir.chdir() is called. So I had to add
TM_CUCUMBER_OPTS=-r my_features_dir --format=html
to the Preferences=>Advanced=>ShellVariables settings in TextMate.
Codeape has forked and updated the bundle.
I applied a hack myself with a little help from some guru's.
Try this:
github.com/codeape/cucumber-tmbundle
Let me know how it goes user241560.
I had the same problem and solved it by following these steps :
> mate ~/Library/Application\ Support/TextMate/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate.rb
Comment or Remove line 20 (or whatever line the error message says) :
> #require 'spec'
It seems like the Textmate Cucumber bundle is currently lagging on development in the main branch.
People seem to be addressing issues as they come up ie Bundler/ Rspec2 /Rails3 / RVM.
Anyone else with problems, I suggest checking the github network map and finding recent branches which talk of issues similar to what you are having.
https://github.com/aslakhellesoy/cucumber-tmbundle/network

Page displays true after running command: 'webby'

I'm running though the webby tutorial and I get to the part where you run the webby command for the first time to generate the website in the /output directory.
I do that, and next I'm told to open output/index.html. I do so, and the only thing that displays is:
true
I view the source...and all that is displayed is
true
This isn't a Budweiser commercial from years past! This is webby!
I wrote down the commands I used to install webby here, but it still doesn't seem to work.
According to the webby -v command... I was doing it correctly. What did I do wrong?
Just to confirm - did you open output/index.html in a browser? And the "true" that you describe is what you see in your browser...?
Before you ran the webby command, did you edit any of the files, especially content/index.txt? Can you paste the contents of content/index.txt here...?
Did you install RedCloth as well as Webby or did it install automatically as a dependency? If you run the following command, you can see whether RedCloth is installed.
gem list RedCloth

Resources