Elixir 1.7

Mix.Shell.Process




elixir

Mix.Shell.Process

मिक्स शेल जो संचार के लिए वर्तमान प्रक्रिया मेलबॉक्स का उपयोग करता है।

यह मॉड्यूल मिक्स शेल कार्यान्वयन प्रदान करता है जो IO के बजाय संचार के लिए वर्तमान प्रक्रिया मेलबॉक्स का उपयोग करता है।

एक उदाहरण के रूप में, जब Mix.shell.info("hello") कहा जाता है, तो निम्न संदेश कॉलिंग प्रक्रिया में भेजा जाएगा:

{:mix_shell, :info, ["hello"]}

यह परीक्षणों में मुख्य रूप से उपयोगी है, अगर हमें कुछ पकड़े गए IO पर चेक प्रदर्शन करने के बजाय संदेश दिए गए हैं या नहीं, यह सुनिश्चित करने की अनुमति है। चूंकि हमें परीक्षणों के बीच एक साफ स्लेट की गारंटी देने की आवश्यकता है, इसलिए flush/1 करने के लिए जिम्मेदार एक flush/1 फ़ंक्शन भी है :mix_shell प्रक्रिया इनबॉक्स से संबंधित संदेशों को :mix_shell

उदाहरण

Mix.shell.info "hello"
receive do {:mix_shell, :info, [msg]} -> msg end
#=> "hello"

send self(), {:mix_shell_input, :prompt, "Pretty cool"}
Mix.shell.prompt?("How cool was that?!")
#=> "Pretty cool"

सारांश

कार्य

cmd (कमांड, opts \\ [])

दिए गए आदेश को निष्पादित करता है और इसके संदेशों को वर्तमान प्रक्रिया के लिए अग्रेषित करता है

error(message)

वर्तमान प्रक्रिया के लिए आगे त्रुटि

flush/1

फ्लश सभी :mix_shell और :mix_shell_input संदेश वर्तमान प्रक्रिया से

info(message)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें

print_app()

वर्तमान एप्लिकेशन प्रिंट करता है अगर यह अभी तक मुद्रित नहीं किया गया था

prompt(message)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें

yes?(message)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें

कार्य

cmd (कमांड, opts \\ [])

दिए गए आदेश को निष्पादित करता है और इसके संदेशों को वर्तमान प्रक्रिया के लिए अग्रेषित करता है।

त्रुटि संदेश)

वर्तमान प्रक्रिया के लिए आगे त्रुटि।

फ्लश (कॉलबैक \\ fn x -> x एंड)

फ्लश सभी :mix_shell और :mix_shell_input संदेश वर्तमान प्रक्रिया से।

यदि कॉलबैक दिया जाता है, तो यह प्रत्येक प्राप्त संदेश के लिए लागू किया जाता है।

उदाहरण

flush &IO.inspect(&1)

जानकारी (संदेश)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें।

वर्तमान एप्लिकेशन प्रिंट करता है अगर यह अभी तक मुद्रित नहीं किया गया था।

शीघ्र (संदेश)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें।

यह इनपुट संदेश मिलान के लिए इनबॉक्स की भी जाँच करता है:

{:mix_shell_input, :prompt, value}

यदि कोई मौजूद नहीं है, तो यह निरस्त हो जाएगा क्योंकि कोई शेल प्रक्रिया इनपुट नहीं दी गई थी। value एक स्ट्रिंग होना चाहिए।

उदाहरण

निम्नलिखित "Meg" के साथ शीघ्र "What's your name?" :

# The response is sent before calling prompt/1 so that prompt/1 can read it
send self(), {:mix_shell_input, :prompt, "Meg"}
Mix.shell.prompt("What's your name?")

हाँ? (संदेश)

वर्तमान प्रक्रिया के लिए संदेश को अग्रेषित करें।

यह इनपुट संदेश मिलान के लिए इनबॉक्स की भी जाँच करता है:

{:mix_shell_input, :yes?, value}

यदि कोई मौजूद नहीं है, तो यह निरस्त हो जाएगा क्योंकि कोई शेल प्रक्रिया इनपुट नहीं दी गई थी। value true या false होना चाहिए।

उदाहरण

# Send the response to self() first so that yes?/1 will be able to read it
send self(), {:mix_shell_input, :yes?, true}
Mix.shell.yes?("Are you sure you want to continue?")