dsl_accessor 0.4.0 → 0.4.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/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README CHANGED
@@ -1,172 +1,206 @@
1
1
  DslAccessor
2
2
  ===========
3
3
 
4
- This plugin gives hybrid accessor class methods to classes by DSL like definition,
5
- here hybrid means getter and setter. The accessor method acts as getter method
6
- if no argments given, otherwise it acts as setter one with the arguments.
4
+ This plugin gives hybrid accessor class methods to classes by DSL like definition,
5
+ here hybrid means getter and setter. The accessor method acts as getter method
6
+ if no argments given, otherwise it acts as setter one with the arguments.
7
+
8
+
9
+ Install
10
+ =======
11
+
12
+ gem install dsl_accessor
7
13
 
8
14
 
9
15
  Usage
10
16
  =====
11
17
 
12
- class Foo
13
- dsl_accessor "<METHOD NAME>"
14
- end
18
+ class Foo
19
+ dsl_accessor "<METHOD NAME>" (, default_value)
20
+ end
15
21
 
16
22
 
17
23
  Example
18
24
  =======
19
25
 
20
- class Foo
21
- dsl_accessor :greeting
22
- end
23
-
24
- This code gives 'greeting' class method to Foo class.
25
-
26
- Foo.greeting # means getter, and the default value is nil.
27
- => nil
28
-
29
- Foo.greeting "I'm Foo." # means setter with given arguments
30
- => "I'm Foo."
31
-
32
- Foo.greeting
33
- => "I'm Foo."
26
+ class Foo
27
+ dsl_accessor :greeting
28
+ end
29
+
30
+ This code gives 'greeting' class method to Foo class.
31
+
32
+ Foo.greeting # means getter, and the default value is nil.
33
+ => nil
34
+
35
+ Foo.greeting "I'm Foo." # means setter with given arguments
36
+ => "I'm Foo."
37
+
38
+ Foo.greeting
39
+ => "I'm Foo."
34
40
 
35
41
 
36
42
  Difference
37
43
  ==========
38
44
 
39
- I'm convinced that you want to propose me to use 'cattr_accessor'.
40
- Although the difference is just whether we needs '=' operation or not,
41
- it makes a large different on class definition especially subclass.
42
-
43
- class Foo
44
- cattr_accessor :greeting
45
- end
46
-
47
- class Bar < Foo
48
- self.greeting = "I'm bar."
49
- end
50
-
51
- We must write redundant code represented by "self." to distinguish
52
- a local variable and a class method when we use 'cattr_accessor'.
53
- This is ugly and boring work.
54
-
55
- class Foo
56
- dsl_accessor :greeting
57
- end
58
-
59
- class Bar < Foo
60
- greeting "I'm bar."
61
- end
62
-
63
- There are no longer redundant prefix code like "self." and "set_".
64
- Don't you like this dsl-like coding with simple declaration?
45
+ I am convinced that you want to propose me to use 'cattr_accessor'.
46
+ Although the difference is just whether we needs '=' operation or not,
47
+ it makes a large different on class definition especially subclass.
48
+
49
+ class Foo
50
+ cattr_accessor :greeting
51
+ end
52
+
53
+ class Bar < Foo
54
+ self.greeting = "I am bar."
55
+ end
56
+
57
+ We must write redundant code represented by "self." to distinguish
58
+ a local variable and a class method when we use 'cattr_accessor'.
59
+ This is ugly and boring work.
60
+
61
+ class Foo
62
+ dsl_accessor :greeting
63
+ end
64
+
65
+ class Bar < Foo
66
+ greeting "I am bar."
67
+ end
68
+
69
+ There are no longer redundant prefix code like "self." and "set_".
70
+ How about this dsl-like coding with simple declaration?
65
71
 
66
72
 
67
73
  Special Options
68
74
  ===============
69
75
 
70
- 'dsl_accessor' method can take two options, those are :writer and :default.
71
- "writer" option means callback method used when setter is executed.
72
- "default" option means default static value or proc that creates some value.
73
-
74
- class PseudoAR
75
- dsl_accessor :primary_key, :default=>"id", :writer=>proc{|value| value.to_s}
76
- dsl_accessor :table_name, :default=>proc{|klass| klass.name.demodulize.underscore.pluralize}
77
- end
78
-
79
- class Item < PseudoAR
80
- end
81
-
82
- class User < PseudoAR
83
- primary_key :user_code
84
- table_name :user_table
85
- end
86
-
87
- Item.primary_key # => "id"
88
- Item.table_name # => "items"
89
- User.primary_key # => "user_code"
90
- User.table_name # => :user_table
91
-
92
- Note that "User.primary_key" return a String by setter proc.
76
+ 'dsl_accessor' method can take two options, those are :writer and :default.
77
+ "writer" option means callback method used when setter is executed.
78
+ "default" option means default static value or proc that creates some value.
79
+
80
+ class PseudoAR
81
+ dsl_accessor :primary_key, :default=>"id", :writer=>proc{|value| value.to_s}
82
+ dsl_accessor :table_name, :default=>proc{|klass| klass.name.demodulize.underscore.pluralize}
83
+ end
84
+
85
+ class Item < PseudoAR
86
+ end
87
+
88
+ class User < PseudoAR
89
+ primary_key :user_code
90
+ table_name :user_table
91
+ end
92
+
93
+ Item.primary_key # => "id"
94
+ Item.table_name # => "items"
95
+ User.primary_key # => "user_code"
96
+ User.table_name # => :user_table
97
+
98
+ Note that "User.primary_key" return a String by setter proc.
93
99
 
94
100
 
95
101
  Instance Method
96
102
  ===============
97
103
 
98
- "instance" option automatically defines its instance method
99
-
100
- class Search
101
- dsl_accessor :url, :instance=>true, :default=>"http://localhost/"
102
- end
103
-
104
- Search.url # => "http://localhost/"
105
- Search.new.url # => "http://localhost/"
106
-
107
- and it uses @options instance variable with special value :options
108
-
109
- class Window
110
- dsl_accessor :width, :default=>640, :instance=>:options
111
- def initialize(options = {})
112
- @options = options
104
+ "instance" option automatically defines its instance method
105
+
106
+ class Search
107
+ dsl_accessor :url, :instance=>true, :default=>"http://localhost/"
113
108
  end
114
- end
115
-
116
- Window.width # => 640
117
- Window.new.width # => 640
118
-
119
- window = Window.new(:width=>320)
120
- window.width # =>320
121
-
122
-
123
- Install
124
- =======
125
-
126
- git://github.com/maiha/dsl_accessor.git
109
+
110
+ Search.url # => "http://localhost/"
111
+ Search.new.url # => "http://localhost/"
112
+
113
+ and it uses @options instance variable with special value :options
114
+
115
+ class Window
116
+ dsl_accessor :width, :default=>640, :instance=>:options
117
+ def initialize(options = {})
118
+ @options = options
119
+ end
120
+ end
121
+
122
+ Window.width # => 640
123
+ Window.new.width # => 640
124
+
125
+ window = Window.new(:width=>320)
126
+ window.width # =>320
127
127
 
128
128
 
129
129
  Auto declared mode
130
130
  ==================
131
131
 
132
- Calling dsl_accessor without args enters auto declared mode.
133
- In this mode, a method missing means instance method creation.
134
- This affects only methods with a block and no other args.
135
-
136
- class Foo
137
- dsl_accessor # auto declared mode
138
- foo{1} # define :foo
139
- bar(a) # NoMethodError
140
- baz(a){2} # NoMethodError
141
- end
132
+ It was removed at version 0.4.
133
+ In 0.4.1 or higher, use dsl_accessor block instead.
142
134
 
143
- Foo.new.foo # => 1
144
135
 
145
- This is useful when you have many methods those are one lined methods.
136
+ with block
137
+ ==========
146
138
 
147
- [without auto delared mode]
148
- class Foo
149
- def last
150
- num_pages
139
+ dsl_accessor method accepts block for auto declared mode.
140
+ In this mode, we can define methods like dsl.
141
+
142
+ [NOTE]
143
+ 1. This affects only methods with a block and no other args.
144
+
145
+ class Foo
146
+ dsl_accessor do
147
+ foo {1} # Foo.foo is defined
148
+ bar(a) # NoMethodError
149
+ baz(a) {2} # NoMethodError
150
+ end
151
+ end
152
+
153
+ 2. When :instance is passed with block, it affects instance methods.
154
+
155
+ class Foo
156
+ dsl_accessor :instance do
157
+ foo {1} # Foo#foo is defined
158
+ bar(a) # NoMethodError (same as class)
159
+ end
160
+ end
161
+
162
+ 3. This will damage on your class cause it easily updates existing methods.
163
+
164
+ Foo.name # => 'Foo'
165
+ class Foo
166
+ dsl_accessor do
167
+ name {1}
168
+ end
169
+ end
170
+ Foo.name # => 1
171
+
172
+
173
+ Although there is a risk on above, it helps you when many one-lined methods exist.
174
+
175
+ class Foo
176
+ def last
177
+ num_pages
178
+ end
179
+
180
+ def first?
181
+ page == 1
182
+ end
183
+
184
+ def offset
185
+ model.proxy_options[:offset]
186
+ end
151
187
  end
152
-
153
- def first?
154
- page == 1
188
+
189
+ Refactored with dsl_accessor
190
+
191
+ class Foo
192
+ dsl_accessor :instance do
193
+ last {num_pages}
194
+ first? {page == 1}
195
+ offset {model.proxy_options[:offset]}
196
+ end
155
197
  end
156
198
 
157
- def offset
158
- model.proxy_options[:offset]
159
- end
160
- end
161
199
 
162
- [with auto delared mode]
163
- class Foo
164
- dsl_accessor
165
- last {num_pages}
166
- first? {page == 1}
167
- offset {model.proxy_options[:offset]}
168
- end
200
+ Homepage
201
+ ========
169
202
 
203
+ http://github.com/maiha/dsl_accessor
170
204
 
171
205
 
172
206
  Author
data/Rakefile CHANGED
@@ -1,52 +1 @@
1
- require 'rubygems'
2
- require 'rake/gempackagetask'
3
-
4
- GEM_NAME = "dsl_accessor"
5
- AUTHOR = "maiha"
6
- EMAIL = "maiha@wota.jp"
7
- HOMEPAGE = "http://github.com/maiha/dsl_accessor"
8
- SUMMARY = "This plugin gives hybrid accessor class methods to classes by DSL like definition"
9
- GEM_VERSION = "0.4.0"
10
-
11
- spec = Gem::Specification.new do |s|
12
- s.rubyforge_project = 'asakusarb'
13
- s.executables = []
14
- s.name = GEM_NAME
15
- s.version = GEM_VERSION
16
- s.platform = Gem::Platform::RUBY
17
- s.has_rdoc = true
18
- s.extra_rdoc_files = ["README", "MIT-LICENSE"]
19
- s.summary = SUMMARY
20
- s.description = s.summary
21
- s.author = AUTHOR
22
- s.email = EMAIL
23
- s.homepage = HOMEPAGE
24
- s.require_path = 'lib'
25
- s.add_dependency('optionize', '>= 0.1.0')
26
- s.files = %w(MIT-LICENSE README Rakefile) + Dir.glob("{lib,spec,core_ext}/**/*")
27
- end
28
-
29
- Rake::GemPackageTask.new(spec) do |pkg|
30
- pkg.gem_spec = spec
31
- end
32
-
33
- desc "Install the gem"
34
- task :install do
35
- Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
36
- end
37
-
38
- desc "Uninstall the gem"
39
- task :uninstall do
40
- Merb::RakeHelper.uninstall(GEM_NAME, :version => GEM_VERSION)
41
- end
42
-
43
- desc "Create a gemspec file"
44
- task :gemspec do
45
- File.open("#{GEM_NAME}.gemspec", "w") do |file|
46
- file.puts spec.to_ruby
47
- end
48
- end
49
-
50
- require 'spec/rake/spectask'
51
- desc 'Default: run spec examples'
52
- task :default => 'spec'
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "dsl_accessor/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "dsl_accessor"
7
+ s.version = DslAccessor::VERSION
8
+ s.authors = ["maiha"]
9
+ s.email = ["maiha@wota.jp"]
10
+ s.homepage = "https://github.com/maiha/dsl_accessor"
11
+ s.summary = %q{This plugin gives hybrid accessor class methods to classes by DSL like definition}
12
+ s.description = %q{This plugin gives hybrid accessor class methods to classes by DSL like definition}
13
+
14
+ s.rubyforge_project = "dsl_accessor"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency "optionize", ">= 0.1.0"
22
+ s.add_dependency "blankslate", ">= 2.1.2"
23
+
24
+ s.add_development_dependency "rspec"
25
+ end
data/lib/dsl_accessor.rb CHANGED
@@ -2,6 +2,8 @@ unless Module.new.respond_to?(:delegate)
2
2
  require File.dirname(__FILE__) + "/../core_ext/module/delegation"
3
3
  end
4
4
 
5
+ require File.dirname(__FILE__) + '/dsl_accessor/version'
6
+ require File.dirname(__FILE__) + '/dsl_accessor/auto_declare'
5
7
  require File.dirname(__FILE__) + '/dsl_accessor/accessor'
6
8
  require File.dirname(__FILE__) + '/dsl_accessor/stores'
7
9
 
@@ -1,25 +1,37 @@
1
1
  require 'optionize'
2
2
 
3
3
  module DslAccessor
4
- def dsl_accessor_reader(key, *args)
4
+ def dsl_accessor_reader(key, *args, &block)
5
5
  key = key.to_s
6
- if args.empty?
6
+ if !args.empty? or block_given?
7
+ # setter method
8
+ dsl_accessor_writer(key, *args, &block)
9
+ else
7
10
  # getter method
8
11
  if !dsl_accessor_key?(key)
12
+ # load default value
9
13
  default = dsl_accessor_get("#{key}_default")
10
14
  value = default ? default.call : nil
11
15
  dsl_accessor_writer(key, value)
12
16
  end
13
17
  dsl_accessor_get(key)
14
- else
15
- # setter method
16
- dsl_accessor_writer(key, *args)
17
18
  end
18
19
  end
19
20
 
20
- def dsl_accessor_writer(key, *args)
21
+ def dsl_accessor_writer(key, *args, &block)
21
22
  case args.size
23
+ when 0
24
+ unless block_given?
25
+ raise ArgumentError, "'#{key}=' expected one argument or block, but nothing passed"
26
+ end
27
+ writer = dsl_accessor_get("#{key}_writer")
28
+ value = writer ? writer.call(block) : block
29
+ dsl_accessor_set("#{key}", value)
22
30
  when 1
31
+ if block_given?
32
+ raise ArgumentError, "'#{key}=' got both arg and block, specify only one of them"
33
+ end
34
+
23
35
  writer = dsl_accessor_get("#{key}_writer")
24
36
  value = writer ? writer.call(*args) : args.first
25
37
  dsl_accessor_set("#{key}", value)
@@ -32,8 +44,20 @@ module DslAccessor
32
44
  opts = Optionize.new(args, :name, :default)
33
45
  name = opts.name
34
46
 
35
- if !name and !block
36
- raise "dsl_accessor expects at least one arg"
47
+ if block
48
+ case name
49
+ when :class, NilClass
50
+ AutoDeclare::DefineClassMethod.new(self, &block)
51
+ when :instance
52
+ AutoDeclare::DefineInstanceMethod.new(self, &block)
53
+ else
54
+ raise ArgumentError, "dsl_accessor block expects :class or :instance for arg, but got #{name.inspect}"
55
+ end
56
+ return
57
+ end
58
+
59
+ if !name
60
+ raise ArgumentError, "dsl_accessor expects at least one arg"
37
61
  end
38
62
 
39
63
  writer =
@@ -82,11 +106,11 @@ module DslAccessor
82
106
  end
83
107
 
84
108
  instance_eval <<-EOS
85
- def #{name}(*args)
86
- dsl_accessor_reader("#{name}", *args)
109
+ def #{name}(*args, &block)
110
+ dsl_accessor_reader("#{name}", *args, &block)
87
111
  end
88
- def #{name}=(*args)
89
- dsl_accessor_writer("#{name}", *args)
112
+ def #{name}=(*args, &block)
113
+ dsl_accessor_writer("#{name}", *args, &block)
90
114
  end
91
115
  EOS
92
116
  end
@@ -0,0 +1,41 @@
1
+ require 'blankslate'
2
+
3
+ module DslAccessor
4
+ module AutoDeclare
5
+ class DefineClassMethod < BlankSlate
6
+ def initialize(context, &block)
7
+ @context = context
8
+ instance_eval(&block)
9
+ end
10
+
11
+ private
12
+ def method_missing(name, *args, &block)
13
+ if args.empty? and block
14
+ meta_class = (class << @context; self; end)
15
+ meta_class.class_eval{ define_method(name, &block) }
16
+ else
17
+ @context.__send__(name, *args, &block)
18
+ end
19
+ end
20
+ end
21
+
22
+ class DefineInstanceMethod < BlankSlate
23
+ def initialize(klass, &block)
24
+ @klass = klass
25
+ instance_eval(&block)
26
+ end
27
+
28
+ private
29
+ def method_missing(name, *args, &block)
30
+ if args.empty? and block
31
+ @klass.class_eval{ define_method(name, &block) }
32
+ else
33
+ raise NameError, "undefined local variable or method `#{name}'"
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+
41
+ __END__
@@ -0,0 +1,4 @@
1
+ module DslAccessor
2
+ VERSION = "0.4.1"
3
+ end
4
+
@@ -6,7 +6,6 @@ describe DslAccessor do
6
6
  end
7
7
  end
8
8
 
9
-
10
9
  describe "dsl_accessor(:foo)" do
11
10
  before do
12
11
  @klass = new_class { dsl_accessor :foo }
@@ -42,7 +41,6 @@ describe "dsl_accessor(:foo)" do
42
41
  end
43
42
  end
44
43
 
45
-
46
44
  describe "dsl_accessor(:foo, 1)" do
47
45
  before do
48
46
  @klass = new_class { dsl_accessor :foo, 1 }
@@ -0,0 +1,123 @@
1
+ require File.join( File.dirname(__FILE__), "spec_helper" )
2
+
3
+ describe DslAccessor do
4
+ before do
5
+ Object.send(:remove_const, :Foo) if Object.const_defined?(:Foo)
6
+ Foo = Class.new
7
+ end
8
+
9
+ def dsl_accessor(*args, &block)
10
+ Foo.dsl_accessor(*args, &block)
11
+ end
12
+
13
+ ######################################################################
14
+ ### Class Methods
15
+
16
+ describe "dsl_accessor(&block)" do
17
+ context " should raise NameError when" do
18
+ def dsl_accessor(*args, &block)
19
+ lambda { super }.should raise_error(NameError)
20
+ end
21
+
22
+ it "foo" do
23
+ dsl_accessor { foo }
24
+ end
25
+
26
+ it "foo(1)" do
27
+ dsl_accessor { foo(1) }
28
+ end
29
+
30
+ it "foo(1,2)" do
31
+ dsl_accessor { foo(1,2) }
32
+ end
33
+
34
+ it "foo(1) {}" do
35
+ dsl_accessor { foo(1) {} }
36
+ end
37
+ end
38
+
39
+ context " should define class method 'foo' when" do
40
+ def dsl_accessor(*args, &block)
41
+ super
42
+ Foo.should respond_to(:foo)
43
+ end
44
+
45
+ it "foo {}" do
46
+ dsl_accessor { foo {} }
47
+ end
48
+ end
49
+
50
+ it "should overwrite existing class methods such as 'name'" do
51
+ Foo.dsl_accessor {
52
+ name { 1 }
53
+ }
54
+ Foo.name.should == 1
55
+ end
56
+
57
+ it "should invoke the method in valid context" do
58
+ Foo.should_receive(:bar) { 2 }
59
+ dsl_accessor { foo { bar } }
60
+ Foo.foo.should == 2
61
+ end
62
+ end
63
+
64
+ ######################################################################
65
+ ### Instance Methods
66
+
67
+ describe "dsl_accessor(:instance, &block)" do
68
+ context " should raise NameError when" do
69
+ def dsl_accessor(*args, &block)
70
+ lambda { super }.should raise_error(NameError)
71
+ end
72
+
73
+ it "foo" do
74
+ dsl_accessor(:instance) { foo }
75
+ end
76
+
77
+ it "foo(1)" do
78
+ dsl_accessor(:instance) { foo(1) }
79
+ end
80
+
81
+ it "foo(1,2)" do
82
+ dsl_accessor(:instance) { foo(1,2) }
83
+ end
84
+
85
+ it "foo(1) {}" do
86
+ dsl_accessor(:instance) { foo(1) {} }
87
+ end
88
+ end
89
+
90
+ context " should define instance method 'foo' when" do
91
+ def dsl_accessor(*args, &block)
92
+ super
93
+ Foo.new.should respond_to(:foo)
94
+ end
95
+
96
+ it "foo {}" do
97
+ dsl_accessor(:instance) { foo {} }
98
+ end
99
+ end
100
+
101
+ it "should define instance method" do
102
+ Foo.dsl_accessor(:instance) {
103
+ foo { 'xxx' }
104
+ }
105
+ Foo.new.foo.should == 'xxx'
106
+ end
107
+
108
+ it "should orverwrite existed instance methods even if those are important like 'id'" do
109
+ Foo.new.object_id.should be_kind_of(Integer)
110
+ Foo.dsl_accessor(:instance) {
111
+ id { 'xxx' }
112
+ }
113
+ Foo.new.id.should == 'xxx'
114
+ end
115
+
116
+ it "should invoke the method in valid context" do
117
+ Foo.any_instance.should_receive(:bar) { 2 }
118
+ dsl_accessor(:instance) { foo { bar } }
119
+ Foo.new.foo.should == 2
120
+ end
121
+ end
122
+ end
123
+
@@ -0,0 +1,24 @@
1
+ require File.join( File.dirname(__FILE__), "spec_helper" )
2
+
3
+ describe "dsl_accessor :foo" do
4
+ before do
5
+ @klass = new_class { dsl_accessor :foo }
6
+ end
7
+
8
+ it "should accept foo(1)" do
9
+ @klass.foo 1
10
+ @klass.foo.should == 1
11
+ end
12
+
13
+ it "should reject foo(1, &block)" do
14
+ lambda {
15
+ @klass.foo(2) { 3 }
16
+ }.should raise_error(ArgumentError)
17
+ end
18
+
19
+ it "should accept foo(&block)" do
20
+ @klass.foo { 4 }
21
+ @klass.foo.should be_kind_of(Proc)
22
+ @klass.foo.call.should == 4
23
+ end
24
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "rubygems"
2
- require "spec"
2
+ require "rspec"
3
3
 
4
4
  require File.dirname(__FILE__) + "/../lib/dsl_accessor"
5
5
 
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :dsl_accessor do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsl_accessor
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 13
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 4
8
- - 0
9
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - maiha
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-03-23 00:00:00 +09:00
18
+ date: 2012-05-10 00:00:00 +09:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: optionize
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 27
27
30
  segments:
28
31
  - 0
29
32
  - 1
@@ -31,32 +34,69 @@ dependencies:
31
34
  version: 0.1.0
32
35
  type: :runtime
33
36
  version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: blankslate
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 2
48
+ - 1
49
+ - 2
50
+ version: 2.1.2
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: rspec
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :development
66
+ version_requirements: *id003
34
67
  description: This plugin gives hybrid accessor class methods to classes by DSL like definition
35
- email: maiha@wota.jp
68
+ email:
69
+ - maiha@wota.jp
36
70
  executables: []
37
71
 
38
72
  extensions: []
39
73
 
40
- extra_rdoc_files:
41
- - README
42
- - MIT-LICENSE
74
+ extra_rdoc_files: []
75
+
43
76
  files:
77
+ - Gemfile
44
78
  - MIT-LICENSE
45
79
  - README
46
80
  - Rakefile
47
- - lib/dsl_accessor/stores.rb
48
- - lib/dsl_accessor/accessor.rb
81
+ - core_ext/module/delegation.rb
82
+ - dsl_accessor.gemspec
49
83
  - lib/dsl_accessor.rb
84
+ - lib/dsl_accessor/accessor.rb
85
+ - lib/dsl_accessor/auto_declare.rb
86
+ - lib/dsl_accessor/stores.rb
87
+ - lib/dsl_accessor/version.rb
50
88
  - spec/accessor_spec.rb
51
- - spec/writer_spec.rb
89
+ - spec/auto_declared_spec.rb
90
+ - spec/default_spec.rb
52
91
  - spec/inherit_spec.rb
53
- - spec/module_spec.rb
54
92
  - spec/instance_spec.rb
55
- - spec/default_spec.rb
93
+ - spec/module_spec.rb
94
+ - spec/setter_spec.rb
56
95
  - spec/spec_helper.rb
57
- - core_ext/module/delegation.rb
96
+ - spec/writer_spec.rb
97
+ - tasks/dsl_accessor_tasks.rake
58
98
  has_rdoc: true
59
- homepage: http://github.com/maiha/dsl_accessor
99
+ homepage: https://github.com/maiha/dsl_accessor
60
100
  licenses: []
61
101
 
62
102
  post_install_message:
@@ -65,23 +105,27 @@ rdoc_options: []
65
105
  require_paths:
66
106
  - lib
67
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
68
109
  requirements:
69
110
  - - ">="
70
111
  - !ruby/object:Gem::Version
112
+ hash: 3
71
113
  segments:
72
114
  - 0
73
115
  version: "0"
74
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
+ none: false
75
118
  requirements:
76
119
  - - ">="
77
120
  - !ruby/object:Gem::Version
121
+ hash: 3
78
122
  segments:
79
123
  - 0
80
124
  version: "0"
81
125
  requirements: []
82
126
 
83
- rubyforge_project: asakusarb
84
- rubygems_version: 1.3.6
127
+ rubyforge_project: dsl_accessor
128
+ rubygems_version: 1.3.7
85
129
  signing_key:
86
130
  specification_version: 3
87
131
  summary: This plugin gives hybrid accessor class methods to classes by DSL like definition