applix 0.2.0 → 0.2.1

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
@@ -3,3 +3,4 @@
3
3
  coverage
4
4
  rdoc
5
5
  pkg
6
+ applix.gemspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -0,0 +1,17 @@
1
+ module OAttr
2
+ def self.included(base)
3
+ base.extend ClassMethods
4
+ end
5
+
6
+ module ClassMethods
7
+ def oattr *names
8
+ container = "@options"
9
+ if names.last.kind_of? Hash
10
+ container = "@#{(names.pop)[:container]}"
11
+ end
12
+ names.each do |name|
13
+ class_eval "def #{name}; #{container}['#{name}'.to_sym]; end"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "OAttr" do
4
+ it "should define a module" do
5
+ OAttr.should_not == nil
6
+ end
7
+
8
+ #it "should define a oattr class method" do
9
+ # OAttr.oattr.should_not == nil
10
+ #end
11
+
12
+ describe "with an included OAttr module" do
13
+ before :each do
14
+ class Foo; include OAttr; end
15
+ end
16
+ it "should include the oattr class method" do
17
+ Foo.oattr.should_not == nil
18
+ end
19
+ it "should define a bar method" do
20
+ class Foo;
21
+ oattr :bar
22
+ def initialize; @options = { :bar => 123}; end;
23
+ end
24
+ (Foo.new.respond_to? :bar).should == true
25
+ Foo.new.bar.should == 123
26
+ end
27
+
28
+ it "should handle container options" do
29
+ class Foo;
30
+ oattr :xxx, :foo, :container => :params
31
+ def initialize; @params = { :xxx => 321}; end;
32
+ end
33
+ (Foo.new.respond_to? :xxx).should == true
34
+ Foo.new.xxx.should == 321
35
+ end
36
+ end
37
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'applix'
4
+ require 'applix/oattr'
4
5
  require 'spec'
5
6
  require 'spec/autorun'
6
7
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: applix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - dirk luesebrink
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-14 00:00:00 +01:00
12
+ date: 2009-11-25 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -38,9 +38,10 @@ files:
38
38
  - README.markdown
39
39
  - Rakefile
40
40
  - VERSION
41
- - applix.gemspec
42
41
  - lib/applix.rb
42
+ - lib/applix/oattr.rb
43
43
  - spec/applix_spec.rb
44
+ - spec/oattr_spec.rb
44
45
  - spec/spec_helper.rb
45
46
  has_rdoc: true
46
47
  homepage: http://github.com/crux/applix
@@ -66,10 +67,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
67
  requirements: []
67
68
 
68
69
  rubyforge_project:
69
- rubygems_version: 1.3.4
70
+ rubygems_version: 1.3.5
70
71
  signing_key:
71
72
  specification_version: 3
72
73
  summary: build typed option hashed from command line arguments
73
74
  test_files:
74
75
  - spec/applix_spec.rb
76
+ - spec/oattr_spec.rb
75
77
  - spec/spec_helper.rb
data/applix.gemspec DELETED
@@ -1,75 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{applix}
8
- s.version = "0.2.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["dirk luesebrink"]
12
- s.date = %q{2009-11-14}
13
- s.description = %q{ ApplixHash#from_argv builds hashes from ARGV like argument vectors
14
- according to following examples:
15
-
16
- '-f' --> { :f => true }
17
- '--flag' --> { :flag => true }
18
- '--flag:false' --> { :flag => false }
19
- '--flag=false' --> { :flag => 'false' }
20
- '--option=value' --> { :option => "value" }
21
- '--int=1' --> { :int => "1" }
22
- '--float=2.3' --> { :float => "2.3" }
23
- '--float:2.3' --> { :float => 2.3 }
24
- '--txt="foo bar"' --> { :txt => "foo bar" }
25
- '--txt:'"foo bar"'' --> { :txt => "foo bar" }
26
- '--txt:%w{foo bar}' --> { :txt => ["foo", "bar"] }
27
- '--now:Time.now' --> { :now => #<Date: 3588595/2,0,2299161> }
28
-
29
- remaining arguments(non flag/options) are inserted as [:arguments,
30
- args], eg:
31
- Hash.from_argv %w(--foo --bar=loo 123 now)
32
- becomes
33
- { :foo => true, :bar => 'loo', :arguments => ["123", "now"] }
34
-
35
- }
36
- s.email = %q{dirk@sebrink.de}
37
- s.extra_rdoc_files = [
38
- "LICENSE",
39
- "README.markdown"
40
- ]
41
- s.files = [
42
- ".document",
43
- ".gitignore",
44
- "LICENSE",
45
- "README.markdown",
46
- "Rakefile",
47
- "VERSION",
48
- "applix.gemspec",
49
- "lib/applix.rb",
50
- "spec/applix_spec.rb",
51
- "spec/spec_helper.rb"
52
- ]
53
- s.homepage = %q{http://github.com/crux/applix}
54
- s.rdoc_options = ["--charset=UTF-8"]
55
- s.require_paths = ["lib"]
56
- s.rubygems_version = %q{1.3.4}
57
- s.summary = %q{build typed option hashed from command line arguments}
58
- s.test_files = [
59
- "spec/applix_spec.rb",
60
- "spec/spec_helper.rb"
61
- ]
62
-
63
- if s.respond_to? :specification_version then
64
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
65
- s.specification_version = 3
66
-
67
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
68
- s.add_development_dependency(%q<rspec>, [">= 0"])
69
- else
70
- s.add_dependency(%q<rspec>, [">= 0"])
71
- end
72
- else
73
- s.add_dependency(%q<rspec>, [">= 0"])
74
- end
75
- end