Upgrade to Pro — share decks privately, control downloads, hide ads and more …

my-first-mrbgem

 my-first-mrbgem

Masafumi Okura

March 24, 2021
Tweet

More Decks by Masafumi Okura

Other Decks in Programming

Transcript

  1. mrbgemΛ࡞ͬͯΈͨ
    Fukuoka.rb 200ճ LTେձ
    OKURA Masafumi, 2021-03-24

    View Slide

  2. @okuramasafumi.inspect
    • ໊લɿେ૔խ࢙
    • ॴଐɿϑϦʔϥϯε
    • ίϛϡχςΟࢀՃɿແ਺ʢfukuoka.rb͸໿20ճࢀՃʣ
    • ՝֎׆ಈɿKaigi on Rails, Grow.rb, Entaku.rb
    • ࣗ࡞ͷgemɿAlba, neco, rubocop-sensibleͳͲ
    • ࣗ࡞ͷmrbgemɿmruby-malba, mruby-factory

    View Slide

  3. mrubyʹ͍ͭͯ

    View Slide

  4. View Slide


  5. View Slide

  6. ཁ͸૊ΈࠐΈ޲͚ͷRuby

    View Slide

  7. mrbgemʹ͍ͭͯ

    View Slide

  8. mrbgemͱ͸
    • mruby༻ͷgem
    • RubyͱCͰॻ͚Δ
    • Gemͱ͍ͬͯ΋CRubyͷgemͱ͸৭ʑҧ͏ʢͲ͏ҧ͏ͷ͔આ໌Ͱ͖
    Δ΄ͲཧղͰ͖͍ͯͳ͍…ʣ

    View Slide

  9. mrbgemΛ࡞ͬͯΈͨײ૝

    View Slide

  10. ͍͚Δɺ͍͚Δͧʂ
    ʢιʔείʔυΛίϐϖ͠ͳ͕Βʣ

    View Slide

  11. ͍ͱ΋ͨ΍͘͢ൃੜ͢Δ
    NoMethodError

    View Slide

  12. ͳ͔ͥʁ

    View Slide

  13. mruby͸σϑΥϧτͰ͸CRubyͷ͢΂
    ͯͷػೳΛ࢖͏͜ͱ͸Ͱ͖ͳ͍

    View Slide

  14. mrbgemΛadd_dependency͢Δ

    View Slide

  15. mruby-malbaͷ৔߹

    View Slide

  16. # mrbgem.rake
    MRuby::Gem::Specification.new('mruby-malba') do |spec|
    spec.license = 'MIT'
    spec.authors = 'OKURA Masafumi'
    spec.add_dependency 'mruby-hash-ext'
    spec.add_dependency 'mruby-json'
    spec.add_dependency 'mruby-object-ext'
    spec.add_dependency 'mruby-class-ext'
    # Test
    spec.add_dependency 'mruby-proc-ext'
    spec.add_dependency 'mruby-print'
    end

    View Slide

  17. Ұߦղઆ
    • mruby-hash-extɿHash#transform_valuesͳͲΛ௥Ճ͢Δ
    • mruby-object-extɿBasicObject#instance_execͳͲΛ௥Ճ͢Δ
    • mruby-class-extɿClass#<=ͳͲΛ௥Ճ͢Δ
    • mruby-proc-extɿKernel#procͳͲΛ௥Ճ͢Δ
    • mruby-printɿKernel#putsͳͲΛ௥Ճ͢Δ

    View Slide

  18. Ͳ͏΍ͬͯඞཁͳmrbgemΛ୳͢ͷʁ

    View Slide

  19. ৬ਓͷצ

    View Slide

  20. mrubyΛϏϧυ͢Δͱɺ”build
    summary”ͷ߲໨ʹ૊ΈࠐΈͷ
    mrbgemҰཡ͕ग़ΔͷͰɺ͔ͦ͜Βͦ
    ΕͬΆ͍΋ͷΛ୳͢

    View Slide

  21. ਖ਼௚ɺख୳Γͷ໘͸͋Δͱࢥ͏

    View Slide

  22. RubyͷϑϩϯςΟΞ͕͜͜ʹ͋Δʂ

    View Slide