2014-10-02 26 views
8

Chciałbym wiedzieć, jak korzystać z middleman console. Czy to jest proste irb? Co mogę z tym zrobić, co różni się od prostej irb?konsola pośrednia: jak z niej korzystać?

middleman console [options]   # Start an interactive console in the cont... 

Mam kilka artykułów i staram się robić Article.all ale miałem ten następujący błąd:

NameError: uninitialized constant Middleman::Application::MiddlemanApplication1::Article 
    from (irb#1):1 

i mam również local-data/data/friends.json ale Friend.all błąd wyjściowy też.

{ 
    "friends": [ 
    "Tom", 
    "Dick", 
    "Harry" 
    ] 
} 

Widziałem, że Symbol.all_symbols wyjście A pośrednictwo wiele zmiennych i funkcji, ale ja naprawdę nie wiem, jak korzystać z konsoli pośrednika.

+0

Chciałbym [użyć Pry do odkrycia odpowiedzi] (https://andrew.kvalhe.im/use-pry-as-the-middleman-console/) na tego typu rzeczy. –

Odpowiedz

8

Ojej, spędzam kilka godzin próbując rozwiązać coś, co poszło by o wiele szybciej, gdybym wiedział, że istnieje konsola pośrednika!

Próbowałem zbudować następną/tylną logikę do przeglądania artykułów na moim blogu. Jest rzecz chronologiczna, ale chciałem również móc powracać na tagi. Istnieje kilka, które są oznaczone zarówno "ruby" i (powiedzmy) "szyny", a "następny" dla obu tagów był taki sam, jak chciałem go wymienić razem pod tymi tagami.

Głównym problemem było to, że nie wiedziałem, jakie rzeczy były dla mnie dostępne w pliku szablonów. Po uruchomieniu middleman console ładuje się konfigurację witryny, dzięki czemu możesz zacząć szturchać.

$ bundle exec irb 
2.0.0-p481 :001 > blog 
NameError: undefined local variable or method `blog' for main:Object 
from (irb):1 
2.0.0-p481 :002 > exit 
$ middleman console 
== LiveReload is waiting for a browser to connect 
2.0.0-p481 :001 > blog 
=> #<Middleman::Blog::BlogData: [#<Middleman::Blog::BlogArticle: {"title"=>"Emb 

itp

Co pośrednik konsola nie jest załadować środowiska pośredników, a następnie pozwala wywoływać metody na bieżącej Middleman::Application obiektu. Jeśli korzystasz z rozszerzenia pośrednika i mają zdefiniowanych pomocników, możesz dostać się do nich tutaj i zacząć szturchać.

Handy rzeczy:

config jest przedmiotem pośrednik config.

data jest obiekt danych pośrednik, z katalogu danych

blog jest config blog, jeśli używasz pośrednik-blog

drafts są projektowane wyroby, jeśli używasz pośrednik-blog- projekty

+0

Wreszcie ... odpowiedź! Dziękuję Ci bardzo. Chciałbym wiedzieć, co jest link, który można znaleźć wszystkie informacje o ["config", "dane", "blog", "szkice"] Patrzyłem na [docs] (http://www.rubydoc.info/github/middleman/middleman/Middleman/Cli/Console) i nie mogłem znaleźć informacji o tych obiektach. Myślałem jak w szynach i próbowałem zrobić "Article.all" w rzeczywistości, gdy przypominasz, że powinienem wypróbować 'blog.articles' –

+0

Mój proces był podobny do tego L: (Chyba nie mogę użyć nowych linii tutaj!) Uruchom "konsolę pośrednią" i wpisz losową metodę. Otrzymujesz błąd: 'nieokreślona zmienna lokalna lub metoda' this_is_not_a_method 'for # 'która oznacza, że ​​właśnie tam jesteś. 'jaźń.class' zwraca 'Middleman :: Application :: MiddlemanApplication1', więc jesteś w tym kontekście. Zasadniczo oznacza to, że wszystkie metody pomocnicze są dostępne w konsoli. 'sitemap' zwróci na przykład mapę witryny pośrednika. –

+0

Kiedy próbuję użyć funkcji pośrednika (zdefiniowanej w sekcji "pomocnicy"), mówi mi to: 'NoMethodError: undefined method' tags_to_mi 'for # '. Masz pomysł, dlaczego nie mogę uzyskać dostępu do funkcji? [Ten wątek jest tym, czego chcę, ale odpowiedź nie działa dla mnie] (http://stackoverflow.com/questions/42144577/how-can-helpers-be-accessed- from-middleman-console) –