FAQ |
Kalender |
Ämnesverktyg | Visningsalternativ |
![]() |
#31 | ||
|
|||
Klarade millennium-buggen
|
Jag kanske glömde nämna att jag även gått till Rybu-katalogen c:\Program Files (x86)\Ruby200 och kört:
Ruby dk.rb init och därefter: Ruby dk.rb install sen körde jag: Ruby dk.rb Review Allt rapporteras vara OK, men när jag försöker köra: Kod:
require "mysql2" client = Mysql2::Client.new(:host => "localhost", :database => 'RubyTestDB', :username => "RubyTestUser", :password => 'RubyTestPassword') results = client.query("SELECT * FROM players") results.each do |row| puts row end Kod:
....require cannot load such file -- mysql2/2.0/mysql (Load Error) Intressant blev det dock när jag la till de två första raderna i följande kod: Kod:
#!usr/bin/Ruby20 #encoding: utf-8 require "mysql2" client = Mysql2::Client.new(:host => "localhost", :database => 'RubyTestDB', :username => "RubyTestUser", :password => 'RubyTestPassword') results = client.query("SELECT * FROM players") results.each do |row| puts row end Kod:
C:\Program Files (x86)\Ruby200\bin\Ruby.exe: no Ruby script found in input (Load Error) >Terminated with exit code 1 |
||
![]() |
![]() |
![]() |
#32 | ||
|
|||
Klarade millennium-buggen
|
Jag körde återigen:
gem install mysql2 Config.yml som ligger i Ruby-katalogen ser ut så här: Kod:
# This configuration file contains the absolute path locations of all # installed Rubies to be enhanced to work with the DevKit. This config # file is generated by the 'ruby dk.rb init' step and may be modified # before running the 'ruby dk.rb install' step. To include any installed # Rubies that were not automagically discovered, simply add a line below # the triple hyphens with the absolute path to the Ruby root directory. # # Example: # # --- # - C:/ruby19trunk # - C:/ruby192dev # --- - C:/Program Files (x86)/Ruby200 |
||
![]() |
![]() |
![]() |
#33 | ||
|
|||
Mycket flitig postare
|
Citat:
Men som sagt... Kör för guds skull in Linux om du ska utveckla i Ruby. Det kommer spara dig åtskilliga timmar. |
||
![]() |
![]() |
![]() |
#34 | ||
|
|||
Administratör
|
Kan inte annat än hålla med. Skulle rekommendera en vagrant-installation, men för det behövs också Ruby
![]()
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#35 | ||
|
|||
Klarade millennium-buggen
|
Linux är inte intressant och jag har Oracle Virtual Box installerad (med Ubuntu 12.04 LTS), men själva syftet är att installera och köra Ruby på just Windowsplattformen så att köra i Linux är helt ointressant.
Jag har kört C, C++, Cobol, Pascal, Visual Basic, C#, PHP i både Windows och Linuxplattformarna. Nu håller jag på med att få Ruby att fungera i Windows 7. Jag har fått alla tidigare testprogram att fungera i Ruby, men nu verkar det som att när man installerar gem-paket så ser allt bra ut förutom att inget av de externa men installerade gem-paketen fungerar att anropa via require("<gem-paket>"). Jag la upp det simplaste exemplet (med en require och en puts-rad) och testade: Kod:
#!usr/bin/ruby20 #encoding: utf-8 #require("geokit") #require("csvkit") #require("devil") #require("devlin") #require("cucumber") #require("capybara") #require("rspec") #require("faker") #equire("rspec-rails") #require("sinatra") #require("rails") #require("bubble-wrap") #require("railties") #require("railspm") #require("mssql") require("mysql") puts "Hello, Require()!" - Alla visas när man kör; gem list - Ingen av dem funkar med require("<gem-packet>") - Kommenterar jag bort alla rader med require, så funkar appen Funderingar: Jag har kollat på massor av webbsidor med instruktioner för hur man installerar Ruby, men det verkar vara en implicit kunskap om hur man bygger gem-paket efter installation som inte förmedlas på dessa webbsidor. Om jag förstått det hela rätt så kan man "bygga" om vissa komponenter man laddar ner för att göra dem till "paket" som kan inkluderas med require. Jag har inte hittat något fungerande exempel på hur det går till. När man laddar ner Ruby för Windows så medföljer MinGW som är en typ av Minimalistisk C kompilator för att native-kompilera C-program. Ruby i sig självt är skrivet i C. Precis som PHP och Python. Senast redigerad av Conny Westh den 2013-07-04 klockan 19:16 |
||
![]() |
![]() |
![]() |
#36 | ||
|
|||
Administratör
|
Normalfallet är att köra gem install och sen require med samma namn. Detta kan dock variera lite, t ex om du har flera möjliga requires i ett gem eller skaparen var dum nog att välja ett random namn. Men troligen är något galet i din installation och paths. Då jag inte vidrör windows för annan programmering än .NET kan jag dock inte hjälpa till.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#37 | ||
|
|||
Klarade millennium-buggen
|
Ja nåt fel är det någonstans för jag ser att det finns andra som fått det att fungera:
Exempel: http://beans.seartipy.com/2008/06/09...ndows-vistaxp/ Jag testade att uppdatera gem-systemet i sig med kommandot: Kod:
gem update --system Sen körde jag uppdatering av de paket jag installerat: Kod:
gem update Jag såg bland annat att Bigdecimal uppdaterades och att jag fick följande information: Kod:
Updating installed gems Updating activeresource Fetching: rails-observers-0.1.1.gem (100%) Successfully installed rails-observers-0.1.1 Fetching: activeresource-4.0.0.gem (100%) Successfully installed activeresource-4.0.0 Parsing documentation for rails-observers-0.1.1 Installing ri documentation for rails-observers-0.1.1 Installing darkfish documentation for rails-observers-0.1.1 Parsing documentation for activeresource-4.0.0 Installing ri documentation for activeresource-4.0.0 Installing darkfish documentation for activeresource-4.0.0 Updating bigdecimal Fetching: bigdecimal-1.2.1.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Successfully installed bigdecimal-1.2.1 Parsing documentation for bigdecimal-1.2.1 unable to convert "\xE9" from ASCII-8BIT to UTF-8 for bigdecimal.o, skipping unable to convert "\x90" from ASCII-8BIT to UTF-8 for bigdecimal.so, skipping Installing ri documentation for bigdecimal-1.2.1 Installing darkfish documentation for bigdecimal-1.2.1 Updating builder Fetching: builder-3.2.2.gem (100%) Successfully installed builder-3.2.2 Parsing documentation for builder-3.2.2 Installing ri documentation for builder-3.2.2 Installing darkfish documentation for builder-3.2.2 Updating hashie Fetching: hashie-2.0.5.gem (100%) Successfully installed hashie-2.0.5 Parsing documentation for hashie-2.0.5 Installing ri documentation for hashie-2.0.5 Installing darkfish documentation for hashie-2.0.5 Updating json Building native extensions. This could take a while... Successfully installed json-1.8.0 Parsing documentation for json-1.8.0 unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.so, skipping unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.so, skipping Installing ri documentation for json-1.8.0 Installing darkfish documentation for json-1.8.0 Updating minitest Fetching: minitest-5.0.6.gem (100%) Successfully installed minitest-5.0.6 Parsing documentation for minitest-5.0.6 Installing ri documentation for minitest-5.0.6 Installing darkfish documentation for minitest-5.0.6 Updating rake Fetching: rake-10.1.0.gem (100%) rake's executable "rake" conflicts with c:/Projects/Ruby200/bin/rake Overwrite the executable? [yN] y Successfully installed rake-10.1.0 Parsing documentation for rake-10.1.0 Installing ri documentation for rake-10.1.0 Installing darkfish documentation for rake-10.1.0 Updating rdoc Fetching: rdoc-4.0.1.gem (100%) rdoc's executable "rdoc" conflicts with c:/Projects/Ruby200/bin/rdoc Overwrite the executable? [yN] y rdoc's executable "ri" conflicts with c:/Projects/Ruby200/bin/ri Overwrite the executable? [yN] y Depending on your version of ruby, you may need to install ruby rdoc/ri data: <= 1.8.6 : unsupported = 1.8.7 : gem install rdoc-data; rdoc-data --install = 1.9.1 : gem install rdoc-data; rdoc-data --install >= 1.9.2 : nothing to do! Yay! Successfully installed rdoc-4.0.1 Parsing documentation for rdoc-4.0.1 Installing ri documentation for rdoc-4.0.1 Installing darkfish documentation for rdoc-4.0.1 Updating test-unit Fetching: test-unit-2.5.5.gem (100%) Successfully installed test-unit-2.5.5 Parsing documentation for test-unit-2.5.5 Installing ri documentation for test-unit-2.5.5 Installing darkfish documentation for test-unit-2.5.5 Updating tzinfo Fetching: tzinfo-1.0.1.gem (100%) TZInfo Timezone Data has Moved ============================== The timezone data previously included with TZInfo as Ruby modules has now been moved to a separate tzinfo-data gem. TZInfo also now supports using the system zoneinfo files on Linux, Mac OS X and other Unix-like operating systems. If you want to continue using the Ruby timezone modules, or you are using an operating system that does not include zoneinfo files (such as Microsoft Windows), you will need to install tzinfo-data by running: gem install tzinfo-data If tzinfo-data is installed then TZInfo will use the Ruby timezone modules. Otherwise, it will attempt to find the system zoneinfo files. Please refer to the TZInfo documentation (available from https://rubygems.org/gems/tzinfo) for further information. Successfully installed tzinfo-1.0.1 Parsing documentation for tzinfo-1.0.1 Installing ri documentation for tzinfo-1.0.1 Installing darkfish documentation for tzinfo-1.0.1 Gems updated: rails-observers activeresource bigdecimal builder hashie json minitest rake rdoc test-unit tzinfo Jag har förstått att det är <namespace> eller <module> man ska ha som parameter vid require(<parameter>) och att <gem-packetname> är något annat egentligen. men att det är vanligt att man döper dem till samma. Jag får forska vidare.... Senast redigerad av Conny Westh den 2013-07-04 klockan 22:04 |
||
![]() |
![]() |
![]() |
#38 | ||
|
|||
Klarade millennium-buggen
|
Nu tror jag att jag hittat en viktig orsak till problemet med require.
Jag misstänkte att det kunde ha med sökvägar till filerna att göra så jag grottade ner mig i filstrukturen. Jag har nu installerat Ruby i katalogen "C:\Projects\Ruby200" Det visar sig att modulerna som följer med Ruby från start ligger i katalogen: Kod:
C:\\Projects\\Ruby200\\lib\\ruby\\2.0.0\\ Kod:
C:\Projects\Ruby200\lib\ruby\gems\2.0.0\gems\csvkit-0.1.3\lib\csvkit.rb" Kod:
require("open3") # funkar för open3 ingår från början i Ruby Kod:
require("C:\\Projects\\Ruby200\\lib\\ruby\\gems\\2.0.0\\gems\\csvkit-0.1.3\\lib\\csvkit") Nu får jag inget körfel när jag specar sökvägen hela vägen ner till csvkit.rb som modulens laddfil heter. Nu har jag i alla fall förstått vad felet beror på i grunden. Nu är nästa steg att ta reda på hur man kan lösa problemet. Jag läste även att Ryby-projektet sedan version 1.9.2 har gjort en break på bakåtkompatibiliteten för sökvägarna. Så exempelvis current directory (".\") inte längre ingår i sökpathen. Det borde finnas en inställning jag kan ändra för att detta ska fungera globalt, för mig, men har inte hittat den ännu. Men om jag förstår det rätt så ligger alla extra installerade gems flera nivåer djupare i filstrukturen och man måste veta exakt version och så för att det ska gå att inkludera i källkoden. Jag har inte hittat någon dokumentation på detta ännu, men det borde rimligen finnas någonstans. |
||
![]() |
![]() |
![]() |
#39 | |||
|
||||
Har WN som tidsfördriv
|
Skulle inte den här tråden handla om Phalanger...?
Nu är det över 3 sidor som det ens nämndes i råden. Senaste sidorna har istället handlar om Ruby som har extremt lite att göra med både PHP och .Net, och därmed även Phalanger. Vi borde försöka ha lite bättre forumdisciplin här tycker jag ![]() |
|||
![]() |
![]() |
![]() |
#40 | ||
|
|||
Mycket flitig postare
|
Citat:
Kod:
File.join('din', 'path', 'här') ![]() Citat:
Conny: Du kanske ska skapa en egen tråd för Ruby istället? |
||
![]() |
![]() |
Svara |
|
|