dun 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/dun.rb +30 -22
  2. metadata +16 -9
  3. checksums.yaml +0 -7
data/lib/dun.rb CHANGED
@@ -2,39 +2,43 @@ module Dun
2
2
  class Activity
3
3
  attr_reader :data
4
4
 
5
- def self.inherited(subclass)
5
+ def self.inherited subclass
6
6
  return if Kernel.method_defined? subclass.name
7
7
 
8
8
  Kernel.class_eval %Q{
9
- def #{subclass.name}(data = {}, &p)
10
- #{subclass.name}.new(data).call(&p)
9
+ def #{subclass.name} data = {}, &p
10
+ #{subclass.name}.new(data).call &p
11
11
  end
12
12
  }
13
13
 
14
14
  rescue SyntaxError, TypeError
15
15
 
16
16
  end
17
-
18
- def self.<<(data = {})
19
- new(data).call
20
- end
21
17
 
22
- def self.data_reader *attrs
23
-
24
- attrs.each do |attr|
25
- define_method attr do
26
- instance_variable_get("@#{attr}") || \
27
- instance_variable_set("@#{attr}", data[attr.to_sym])
18
+ class << self
19
+
20
+ def << data = {}
21
+ new(data).call
22
+ end
23
+
24
+ def data_reader *attrs
25
+
26
+ attrs.each do |attr|
27
+ define_method attr do
28
+ instance_variable_get("@#{attr}") ||\
29
+ instance_variable_set("@#{attr}", data[attr.to_sym] || data[attr.to_s])
30
+ end
28
31
  end
32
+
33
+ end
34
+
35
+ def set attr, value
36
+ define_method(attr) {value}
29
37
  end
30
38
 
31
39
  end
32
40
 
33
- def self.set name, value
34
- define_method(name) { value }
35
- end
36
-
37
- def initialize(data)
41
+ def initialize data
38
42
  @data = data
39
43
  end
40
44
 
@@ -44,11 +48,15 @@ module Dun
44
48
 
45
49
  private
46
50
 
47
- def get_or_set(name)
48
- value = instance_variable_get("@#{name}")
51
+ def get_or_set attr, &p
52
+ value = instance_variable_get "@#{attr}"
49
53
  return value if value
50
- value = yield
51
- instance_variable_set("@#{name}", value)
54
+ value = p.call
55
+ instance_variable_set "@#{attr}", value
56
+ end
57
+
58
+ def default attr, value
59
+ instance_variable_set "@#{attr}", value if send(attr).nil?
52
60
  end
53
61
 
54
62
  end
metadata CHANGED
@@ -1,16 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Kayak Jiang
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-05-19 00:00:00.000000000 Z
12
+ date: 2013-09-02 00:00:00.000000000 Z
12
13
  dependencies: []
13
- description: 帮助程序员以面向过程的方式解决问题
14
+ description: ! 'Dun is a dark color in english, and it is also the pinyin of the chinese
15
+ character 钝 means not sharp.
16
+
17
+ Dun help ruby programers focus on the problem domain directly when programing.
18
+
19
+ '
14
20
  email: kayak.jiang@gmail.com
15
21
  executables: []
16
22
  extensions: []
@@ -19,25 +25,26 @@ files:
19
25
  - lib/dun.rb
20
26
  homepage: https://github.com/baya/dun
21
27
  licenses: []
22
- metadata: {}
23
28
  post_install_message:
24
29
  rdoc_options: []
25
30
  require_paths:
26
31
  - lib
27
32
  required_ruby_version: !ruby/object:Gem::Requirement
33
+ none: false
28
34
  requirements:
29
- - - '>='
35
+ - - ! '>='
30
36
  - !ruby/object:Gem::Version
31
37
  version: '0'
32
38
  required_rubygems_version: !ruby/object:Gem::Requirement
39
+ none: false
33
40
  requirements:
34
- - - '>='
41
+ - - ! '>='
35
42
  - !ruby/object:Gem::Version
36
43
  version: '0'
37
44
  requirements: []
38
45
  rubyforge_project:
39
- rubygems_version: 2.0.3
46
+ rubygems_version: 1.8.25
40
47
  signing_key:
41
- specification_version: 4
42
- summary:
48
+ specification_version: 3
49
+ summary: Dun help ruby programers focus on the problem domain directly when programing.
43
50
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: be96d64a400bd0569f989004e3303656ec7ed4b1
4
- data.tar.gz: eccc63f5429e716e912954106ee1d54c18240057
5
- SHA512:
6
- metadata.gz: b4c87e517a12b827aa9a3723ead7fb89a1e7a03d4fa7d81418ef4aa17ebfcd7402de052d736d52c30855c9d207113033764e4a27af5d6bf495e5f251f387bcf8
7
- data.tar.gz: d3044bfdbdfc7951f42a824f0d26c67130b0b18cfa2ebe3a20e879c1b2dfa0588592ced3b16fc4229a8713b0b7ea3e1ab8858529aa94df9d7acf001d9a589fde