2011-06-21 10 views
25

कुछ पुस्तकों ने #days, #megabytes, #minutes आदि के साथ संख्याओं को सजाने के लिए कुछ मणि का उल्लेख किया है। क्या यह केवल सक्रिय समर्थन में है, या क्या कोई छोटा मणि है जो इस कार्यक्षमता को छोटे (छोटे) गैर-रेल रत्नों में उपयोग के लिए प्रदान करता है? मैं एक छोटे से छोटे मणि में एक डीएसएल के हिस्से के रूप में इस कार्यक्षमता का उपयोग करना चाहता हूँ।3.days.ago, 2.hours.from_now आदि रेल के बिना?

+0

मैं भी इस व्यवहार की तरह है, और अक्सर में मेरी गैर रेल परियोजनाओं गहरे लाल रंग के लिए इसका इस्तेमाल करना चाहता था है। अच्छा सवाल ... – jaydel

उत्तर

34

मुझे यकीन है कि वहाँ ActiveSupport के पास एक अन्य मणि उपलब्ध है अगर नहीं कर रहा हूँ, लेकिन यह एक छोटा संस्करण अपने आप को बनाने के लिए वास्तव में सीधी-सपाट होगा:

class Fixnum 
    SECONDS_IN_DAY = 24 * 60 * 60 

    def days 
    self * SECONDS_IN_DAY 
    end 

    def ago 
    Time.now - self 
    end 
end 

3.days.ago #=> 2011-06-18 08:45:29 0200 

from_nowago की तरह लेकिन + self और weeks साथ लागू किया जा सकता , hours आदि जैसे days विभिन्न स्थिरांक का उपयोग कर।

+1

ऐसा लगता है जैसे मैं जा रहा हूं, धन्यवाद। मैंने सोचा कि संख्यात्मक चीज किसी और की परियोजना में शुरू हुई थी और ActiveSupport ने इसे अपने स्रोत में विलय कर दिया था। मैं शायद यह कल्पना कर रहा हूँ हालांकि। – d11wtq

+1

बहुत अच्छी नौकरी !! –

9

ActiveSupport इस कार्यक्षमता में है। यह मूल रूप से रेल का हिस्सा था लेकिन अब अलग से इस्तेमाल किया जा सकता है।

+18

यह सही है लेकिन यह भी ध्यान दें कि अब आप 'सक्रिय' समर्थन ''' की आवश्यकता नहीं है। ओपी को एक्टिव्सपोर्ट से ''' की आवश्यकता' के बारे में थोड़ा और स्पष्ट होना चाहिए। यदि आप बस समय चाहते हैं तो आप सक्रिय_support/core_ext/numeric/time "' '' –

+0

की आवश्यकता हो सकती है, मैं वास्तव में इसके लिए सभी सक्रिय समर्थन पर निर्भर नहीं होना चाहता :) यह वही था जो मैं टालने की कोशिश कर रहा था । माई जेम कोड की लगभग 30 लाइनों के साथ सिर्फ एक ही कक्षा है: पी लेकिन पुष्टि के लिए धन्यवाद :) – d11wtq

+0

@ d11wtq तो माइकल कोहल का जवाब जाने का रास्ता होगा। बस '' 'दिनों''' और' '''''' विधि की तरह कुछ के साथ फिक्सनम क्लास को विस्तारित करना। –

संबंधित मुद्दे