kattr 0.0.1 → 0.0.2

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.
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