# Fwd: Iniettare metodi statici

**URL:** <https://www.ruby-forum.com/t/fwd-iniettare-metodi-statici/93627>\
**Category:** IT\
**Created:** [April 5, 2006, 10:06am UTC](https://www.ruby-forum.com/t/fwd-iniettare-metodi-statici/93627 "2006-04-05T10:06:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Massimiliano\_MSr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9f8e36/32.png) [@Massimiliano\_MSr](https://www.ruby-forum.com/u/Massimiliano_MSr)\
**Post date:** [April 5, 2006, 10:06am UTC](https://www.ruby-forum.com/t/fwd-iniettare-metodi-statici/93627/1 "2006-04-05T10:06:20Z")

</div>

> Ma io vorrei che fosse possibile chiamare ‘metodo\_per\_a\_e\_c’ senza fare il  
> new degli oggetti, tipo:
> 
> AAA.a.metodo\_per\_a\_e\_c e BBB.metodo\_per\_a\_e\_c
> 
> Avete idea di come fare? Ho spulciato il pickaxe ma non sono riuscito a  
> trovare la risposta al mio dubbio…

tmp\> cat static.rb  
module CCC  
def metodo\_per\_a\_e\_c  
p ‘chiamato metodo\_per\_a\_e\_c!’  
end  
end

class AAA  
extend CCC  
end

class BBB  
class \<\< self  
include CCC  
end  
end

AAA.metodo\_per\_a\_e\_c  
BBB.metodo\_per\_a\_e\_c

tmp\> ruby static.rb  
“chiamato metodo\_per\_a\_e\_c!”  
“chiamato metodo\_per\_a\_e\_c!”

Buona giornata. 🙂  
Massimiliano

–  
blog: [http://blog.hyperstruct.net](http://blog.hyperstruct.net)  
sw: [http://dev.hyperstruct.net](http://dev.hyperstruct.net), [http://repo.hyperstruct.net](http://repo.hyperstruct.net)

---

<div class="post-metadata">

**Author:** ![Massimiliano\_MSr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9f8e36/32.png) [@Massimiliano\_MSr](https://www.ruby-forum.com/u/Massimiliano_MSr)\
**Post date:** [April 5, 2006, 10:12am UTC](https://www.ruby-forum.com/t/fwd-iniettare-metodi-statici/93627/2 "2006-04-05T10:12:29Z")

</div>

Visto che siete preparati, vi rompo ancora… 🙂  
Ci sono differenze tra i due approcci?

class AAA  
extend CCC  
end

class AAA  
class \<\< self  
include CCC  
end  
end

---

<div class="post-metadata">

**Author:** ![Massimiliano\_MSr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9f8e36/32.png) [@Massimiliano\_MSr](https://www.ruby-forum.com/u/Massimiliano_MSr)\
**Post date:** [April 5, 2006, 10:55am UTC](https://www.ruby-forum.com/t/fwd-iniettare-metodi-statici/93627/3 "2006-04-05T10:55:30Z")

</div>

— Paolo Donà [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> end  
> end

In breve: sono identici.

In lungo: non lo sapevo neanche io, ma siccome mi era  
venuto il dubbio ho fatto una piccola indagine: se  
guardi dentro eval.c dovresti trovare la definizione  
di #extend , che in pratica richiama  
Object#extend\_object e Module#extended per ognuno  
degli argomenti passati.

#extend\_object a sua volta non fa altro che  
rb\_include\_module(rb\_singleton\_class(obj), module)

Sempre se non ho capito male, cosa che è  
plausibilissima 🙂

–  
icq: #69488917  
blog: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)

* * *

Yahoo! Messenger with Voice: chiama da PC a telefono a tariffe esclusive

> **[Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos](https://www.yahoo.com/)**
>
> Latest news coverage, email, free stock quotes, live scores and video are just the beginning. Discover more every day at Yahoo!
