dun 0.0.1 → 0.1.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.
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