aa 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/README.md +24 -0
  2. data/lib/aa.rb +31 -0
  3. data/spec/aa_spec.rb +38 -0
  4. metadata +65 -0
@@ -0,0 +1,24 @@
1
+ # Aa
2
+
3
+ class Beer; end
4
+
5
+ a.beer
6
+ # equivalent to Beer.new
7
+
8
+ x = a.beer
9
+ the.beer
10
+ # equivalent to x
11
+
12
+ class Animal; end
13
+
14
+ an.animal
15
+ # equivalent to Animal.new
16
+
17
+ ## Install
18
+
19
+ $ gem install aa
20
+
21
+ ## Author
22
+
23
+ Tatsuhiro Ujihisa
24
+ <http:/ujihisa.blogspot.com>
@@ -0,0 +1,31 @@
1
+ class Aa
2
+ @@latests = {}
3
+
4
+ def method_missing(name, *args, &block)
5
+ super if !args.empty? || block
6
+ @@latests[name] = self.class.const_get(name.to_s.capitalize).new
7
+ end
8
+
9
+ def self.the(x)
10
+ @@latests[x]
11
+ end
12
+
13
+ class The
14
+ def method_missing(name, *args, &block)
15
+ super if !args.empty? || block
16
+ A.the(name)
17
+ end
18
+ end
19
+ end
20
+
21
+ def a
22
+ Aa.new
23
+ end
24
+
25
+ def an
26
+ Aa.new
27
+ end
28
+
29
+ def the
30
+ Aa::The.new
31
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../lib/aa'
2
+
3
+ context 'Global methods generated by Aa library' do
4
+ before do
5
+ class Beer; end
6
+ end
7
+
8
+ describe 'a.beer' do
9
+ it 'creates an instance of Beer' do
10
+ a.beer.should be_an_instance_of Beer
11
+ end
12
+
13
+ it 'is different to the one created in the past trial' do
14
+ x = a.beer
15
+ y = a.beer
16
+ x.should_not equal y
17
+ end
18
+ end
19
+
20
+ describe 'an.beer' do
21
+ it 'is equivalent to use a.beer' do
22
+ an.beer.should be_an_instance_of Beer
23
+
24
+ x = an.beer
25
+ y = an.beer
26
+ x.should_not equal y
27
+ end
28
+ end
29
+
30
+ describe 'the.beer' do
31
+ it 'is the beer of the latest on you created by a.beer' do
32
+ x = a.beer
33
+ y = a.beer
34
+ the.beer.should_not equal x
35
+ the.beer.should equal y
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aa
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ version: "1.0"
9
+ platform: ruby
10
+ authors:
11
+ - ujihisa
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2010-08-05 00:00:00 -07:00
17
+ default_executable:
18
+ dependencies: []
19
+
20
+ description: Aa
21
+ email: ujihisa at gmail.com
22
+ executables: []
23
+
24
+ extensions: []
25
+
26
+ extra_rdoc_files:
27
+ - README.md
28
+ files:
29
+ - lib/aa.rb
30
+ - README.md
31
+ - spec/aa_spec.rb
32
+ has_rdoc: true
33
+ homepage: https://github.com/ujihisa/aa
34
+ licenses: []
35
+
36
+ post_install_message:
37
+ rdoc_options: []
38
+
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ requirements: []
58
+
59
+ rubyforge_project:
60
+ rubygems_version: 1.3.7
61
+ signing_key:
62
+ specification_version: 3
63
+ summary: Aa
64
+ test_files: []
65
+