kattr 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,21 +1,17 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
17
9
  coverage
18
- rdoc
10
+ doc/
11
+ lib/bundler/man
19
12
  pkg
20
-
21
- ## PROJECT::SPECIFIC
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -1,13 +1,19 @@
1
1
  kattr
2
2
  =====
3
-
4
3
  Works much like the version for rails (except it doesn't accept blocks and doesn't use eval).
5
- It is prefered to use `kattr_*` instead of `cattr_*` so there are no confusion. If you are using
6
- this gem outside of rails, it should be alright
7
4
 
5
+ I prefer to use `kattr_*` instead of `cattr_*` so there are no confusion with `cattr_*` in Rails.
6
+ Note, both `cattr_*` and `kattr_*` will work just fine.
7
+
8
+ If you are using this gem outside of Rails you should be all right
9
+
10
+ ## Example
8
11
  ```ruby
12
+ require 'kattr'
13
+
9
14
  class Moo
10
- cattr_accessor :cow
15
+ extend KAttr
16
+ kattr_accessor :cow
11
17
  end
12
18
 
13
19
  Moo.cow = 'animal'
@@ -15,15 +21,17 @@ Moo.class_variables
15
21
  #=> [:@@cow]
16
22
  ```
17
23
 
24
+ You can either add `kattr` to your `$LOAD_PATH` or use it as in the example
18
25
 
19
26
  ## Note on Patches/Pull Requests
20
-
21
27
  1. Fork it
22
28
  2. Create your feature branch (`git checkout -b my-new-feature`)
23
29
  3. Commit your changes (`git commit -am 'Added some feature'`)
24
30
  4. Push to the branch (`git push origin my-new-feature`)
25
31
  5. Create new Pull Request
26
32
 
27
- ## Copyright
33
+ ## Thanks
34
+ [danielb2](/danielb2) for the original implementation
28
35
 
29
- Copyright (c) 2010 Daniel Bretoi. See LICENSE for details.
36
+ ## Copyright
37
+ Copyright (c) 2012 Teo Ljungberg. See LICENSE for details.
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |gem|
4
4
  gem.authors = ["Teo Ljungberg"]
5
5
  gem.email = ["teo.ljungberg@gmail.com"]
6
- gem.description = %q{cattr like attr_* but for class methods}
6
+ gem.description = %q{kattr like attr_* but for class methods}
7
7
  gem.summary = %q{attr_* for class methods}
8
8
  gem.homepage = "http://github.com/metamorfos/kattr"
9
9
 
@@ -12,5 +12,6 @@ Gem::Specification.new do |gem|
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
13
  gem.name = "kattr"
14
14
  gem.require_paths = ["lib"]
15
- gem.version = "0.0.1"
15
+ gem.add_development_dependency('rspec')
16
+ gem.version = "0.0.2"
16
17
  end
@@ -1,7 +1,7 @@
1
1
  require_relative './writer'
2
2
  require_relative './reader'
3
3
 
4
- class Class
4
+ module KAttr
5
5
  def kattr_accessor(*syms)
6
6
  kattr_writer(*syms)
7
7
  kattr_reader(*syms)
@@ -1,6 +1,6 @@
1
- class Class
1
+ module KAttr
2
2
  def kattr_reader(*syms)
3
- syms.each do |sym|
3
+ syms.flatten.each do |sym|
4
4
  self.class.send(:define_method, sym) do
5
5
  return nil unless class_variable_defined? "@@#{sym}"
6
6
  return class_variable_get "@@#{sym}"
@@ -1,6 +1,6 @@
1
- class Class
1
+ module KAttr
2
2
  def kattr_writer(*syms)
3
- syms.each do |sym|
3
+ syms.flatten.each do |sym|
4
4
  self.class.send(:define_method, :"#{sym}=") do |opt|
5
5
  class_variable_set("@@#{sym}", opt)
6
6
  end
@@ -1,33 +1,36 @@
1
1
  require_relative '../lib/kattr'
2
2
 
3
- describe Class do
4
- before do
5
- class Dog
6
- cattr_reader :teeth
7
- cattr_writer :eye_color
8
- cattr_accessor :hair_color
3
+ class Dog
4
+ extend KAttr
5
+
6
+ kattr_reader :teeth
7
+ kattr_writer :eye_color
8
+ kattr_accessor :size
9
9
 
10
- def self.teeth
11
- "sharp"
12
- end
13
-
14
- def self.eye_color
15
- @@eye_color
16
- end
17
- end
10
+ def self.teeth
11
+ "sharp"
18
12
  end
19
13
 
20
- it 'cattr_reader' do
21
- Dog.teeth.should eq("sharp")
14
+ def self.eye_color
15
+ @@eye_color
22
16
  end
17
+ end
23
18
 
24
- it 'cattr_writer' do
25
- Dog.eye_color = "green"
26
- Dog.eye_color.should eq("green")
27
- end
19
+ describe Dog do
20
+ context 'with KAttr' do
28
21
 
29
- it 'cattr_accessor' do
30
- Dog.hair_color = 'grey'
31
- Dog.hair_color.should eq("grey")
22
+ it 'has sharp teeth' do
23
+ Dog.teeth.should eq 'sharp'
24
+ end
25
+
26
+ it 'has lovely green eyes' do
27
+ Dog.eye_color = 'green'
28
+ Dog.eye_color.should eq 'green'
29
+ end
30
+
31
+ it 'is bloody humongous!' do
32
+ Dog.size = 'huge'
33
+ Dog.size.should eq 'huge'
34
+ end
32
35
  end
33
36
  end
metadata CHANGED
@@ -2,16 +2,32 @@
2
2
  name: kattr
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Teo Ljungberg
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-26 00:00:00.000000000 Z
13
- dependencies: []
14
- description: cattr like attr_* but for class methods
12
+ date: 2012-12-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ none: false
21
+ name: rspec
22
+ type: :development
23
+ prerelease: false
24
+ requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ none: false
30
+ description: kattr like attr_* but for class methods
15
31
  email:
16
32
  - teo.ljungberg@gmail.com
17
33
  executables: []
@@ -21,15 +37,14 @@ files:
21
37
  - .gitignore
22
38
  - .rbenv-version
23
39
  - .rspec
40
+ - Gemfile
24
41
  - LICENSE
25
42
  - README.markdown
26
43
  - Rakefile
27
- - VERSION
28
44
  - kattr.gemspec
29
45
  - lib/kattr.rb
30
46
  - lib/kattr/accessor.rb
31
47
  - lib/kattr/reader.rb
32
- - lib/kattr/version.rb
33
48
  - lib/kattr/writer.rb
34
49
  - spec/kattr_spec.rb
35
50
  - spec/spec_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.2
File without changes