tbpgr_utils 0.0.66 → 0.0.67

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -58,6 +58,7 @@ Or install it yourself as:
58
58
  |[AttributesInitializable::ClassMethods.attr_writer init](#attributesinitializableclassmethodsattr_writer_init) |generate attr_writer + initializer |
59
59
  |[EndERB.apply](#enderbapply) |for single template script using __END__ and DATA |
60
60
  |[EvalHelper Object](#evalhelper-object) |enable to use EvalHelper in Object |
61
+ |[EvalHelper#attr_accessor_init_code](#evalhelperattr_accessor_init_code) |create attr_accessor + initialize code, for eval |
61
62
  |[EvalHelper#each_do_code](#evalhelpereach_do_code) |create each do code, for eval |
62
63
  |[EvalHelper#each_brace_code](#evalhelpereach_brace_code) |create each brace single line code, for eval |
63
64
  |[EvalHelper#each_with_index_brace_code](#evalhelpereach_with_index_brace_code) |create eachwith_index_ brace single line code, for eval |
@@ -1383,6 +1384,58 @@ require_code("hoge") # => 'require "hoge"'
1383
1384
 
1384
1385
  [back to list](#list)
1385
1386
 
1387
+ ### EvalHelper#attr_accessor_init_code
1388
+ single case
1389
+
1390
+ ~~~ruby
1391
+ class EvalHelperAttrAccessorInitTest
1392
+ include EvalHelper
1393
+
1394
+ def hoge(args)
1395
+ attr_accessor_init_code(args)
1396
+ end
1397
+ end
1398
+
1399
+ EvalHelperAttrAccessorInitTest.new.hoge('atr1')
1400
+ ~~~
1401
+
1402
+ result
1403
+
1404
+ ~~~ruby
1405
+ attr_accessor :atr1
1406
+
1407
+ def initialize(atr1)
1408
+ @atr1 = atr1
1409
+ end
1410
+ ~~~
1411
+
1412
+ multi case
1413
+
1414
+ ~~~ruby
1415
+ class EvalHelperAttrAccessorInitTest
1416
+ include EvalHelper
1417
+
1418
+ def hoge(args)
1419
+ attr_accessor_init_code(args)
1420
+ end
1421
+ end
1422
+
1423
+ EvalHelperAttrAccessorInitTest.new.hoge(['atr1', 'atr2'])
1424
+ ~~~
1425
+
1426
+ result
1427
+
1428
+ ~~~ruby
1429
+ attr_accessor :atr1, :atr2
1430
+
1431
+ def initialize(atr1, atr2)
1432
+ @atr1 = atr1
1433
+ @atr2 = atr2
1434
+ end
1435
+ ~~~
1436
+
1437
+ [back to list](#list)
1438
+
1386
1439
  ### EvalHelper#each_do_code
1387
1440
  ~~~ruby
1388
1441
  require 'eval_helper'
@@ -2476,6 +2529,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
2476
2529
  https://github.com/tbpgr/tbpgr_utils_snippets
2477
2530
 
2478
2531
  ## History
2532
+ * version 0.0.67 : add EvalHelper#attr_accessor_init_code
2479
2533
  * version 0.0.66 : add EvalHelper#each_with_index_do_code
2480
2534
  * version 0.0.65 : add EvalHelper#each_with_index_brace_code
2481
2535
  * version 0.0.64 : add EvalHelper#each_do_code
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module EvalHelper
4
+ require 'eval_helper/attr_accessor_init_code'
4
5
  require 'eval_helper/each_brace_code'
5
6
  require 'eval_helper/each_do_code'
6
7
  require 'eval_helper/each_with_index_brace_code'
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+
3
+ module EvalHelper
4
+ # create attr_accessor + initialize code, for eval
5
+ #
6
+ # ==== Examples
7
+ #
8
+ # single case
9
+ #
10
+ # class EvalHelperAttrAccessorInitTest
11
+ # include EvalHelper
12
+ #
13
+ # def hoge(args)
14
+ # attr_accessor_init_code(args)
15
+ # end
16
+ # end
17
+ #
18
+ # EvalHelperAttrAccessorInitTest.new.hoge('atr1')
19
+ #
20
+ # result
21
+ #
22
+ # attr_accessor :atr1
23
+ #
24
+ # def initialize(atr1)
25
+ # @atr1 = atr1
26
+ # end
27
+ #
28
+ # multi case
29
+ #
30
+ # class EvalHelperAttrAccessorInitTest
31
+ # include EvalHelper
32
+ #
33
+ # def hoge(args)
34
+ # attr_accessor_init_code(args)
35
+ # end
36
+ # end
37
+ #
38
+ # EvalHelperAttrAccessorInitTest.new.hoge(['atr1', 'atr2'])
39
+ #
40
+ # result
41
+ #
42
+ # attr_accessor :atr1, :atr2
43
+ #
44
+ # def initialize(atr1, atr2)
45
+ # @atr1 = atr1
46
+ # @atr2 = atr2
47
+ # end
48
+ #
49
+ def attr_accessor_init_code(attribute)
50
+ return '' unless [String, Array].include? attribute.class
51
+ atrs = []
52
+ if attribute.is_a? String
53
+ atrs << attribute
54
+ elsif attribute.is_a? Array
55
+ atrs = attribute
56
+ end
57
+
58
+ accessors = atrs.reduce([]) { |ret, v|ret << ":#{v}" }.join(', ')
59
+ init_variables = atrs.reduce([]) { |ret, v|ret << "#{v}" }.join(', ')
60
+ set_variables = atrs.reduce([]) { |ret, v|ret << " @#{v} = #{v}" }.join("\n")
61
+ ret_code = <<-EOS
62
+ attr_accessor #{accessors}
63
+
64
+ def initialize(#{init_variables})
65
+ #{set_variables}
66
+ end
67
+ EOS
68
+ end
69
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.66'
5
+ VERSION = '0.0.67'
6
6
  end
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'eval_helper'
4
+
5
+ describe 'EvalHelper' do
6
+ context :attr_accessor_init_code do
7
+ class EvalHelperAttrAccessorInitTest
8
+ include EvalHelper
9
+
10
+ def hoge(args)
11
+ attr_accessor_init_code(args)
12
+ end
13
+ end
14
+ cases = [
15
+ {
16
+ case_no: 1,
17
+ case_title: 'single case',
18
+ input: 'atr1',
19
+ expected: <<-EOS
20
+ attr_accessor :atr1
21
+
22
+ def initialize(atr1)
23
+ @atr1 = atr1
24
+ end
25
+ EOS
26
+ },
27
+ {
28
+ case_no: 2,
29
+ case_title: 'multi case',
30
+ input: ['atr1', 'atr2'],
31
+ expected: <<-EOS
32
+ attr_accessor :atr1, :atr2
33
+
34
+ def initialize(atr1, atr2)
35
+ @atr1 = atr1
36
+ @atr2 = atr2
37
+ end
38
+ EOS
39
+ },
40
+ ]
41
+
42
+ cases.each do |c|
43
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
44
+ begin
45
+ case_before c
46
+
47
+ # -- given --
48
+ eval_helper = EvalHelperAttrAccessorInitTest.new
49
+
50
+ # -- when --
51
+ actual = eval_helper.hoge(c[:input])
52
+
53
+ # -- then --
54
+ expect(actual).to eq(c[:expected])
55
+ ensure
56
+ case_after c
57
+ end
58
+ end
59
+
60
+ def case_before(c)
61
+ # implement each case before
62
+ end
63
+
64
+ def case_after(c)
65
+ # implement each case after
66
+ end
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.66
4
+ version: 0.0.67
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-14 00:00:00.000000000 Z
12
+ date: 2014-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &21744960 !ruby/object:Gem::Requirement
16
+ requirement: &26371188 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *21744960
24
+ version_requirements: *26371188
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &21744672 !ruby/object:Gem::Requirement
27
+ requirement: &26370900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *21744672
35
+ version_requirements: *26370900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &21744444 !ruby/object:Gem::Requirement
38
+ requirement: &26370672 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *21744444
46
+ version_requirements: *26370672
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &21744120 !ruby/object:Gem::Requirement
49
+ requirement: &26370348 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *21744120
57
+ version_requirements: *26370348
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &21743820 !ruby/object:Gem::Requirement
60
+ requirement: &26370048 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *21743820
68
+ version_requirements: *26370048
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -86,6 +86,7 @@ files:
86
86
  - lib/attributes_initializable.rb
87
87
  - lib/end_erb.rb
88
88
  - lib/eval_helper.rb
89
+ - lib/eval_helper/attr_accessor_init_code.rb
89
90
  - lib/eval_helper/each_brace_code.rb
90
91
  - lib/eval_helper/each_do_code.rb
91
92
  - lib/eval_helper/each_with_index_brace_code.rb
@@ -164,6 +165,7 @@ files:
164
165
  - rubocop-todo.yml
165
166
  - spec/attributes_hashable_spec.rb
166
167
  - spec/attributes_initializable_spec.rb
168
+ - spec/eval_helper/attr_accessor_init_code_spec.rb
167
169
  - spec/eval_helper/each_brace_code_spec.rb
168
170
  - spec/eval_helper/each_do_code_spec.rb
169
171
  - spec/eval_helper/each_with_index_brace_code_spec.rb
@@ -261,6 +263,7 @@ summary: Utilities
261
263
  test_files:
262
264
  - spec/attributes_hashable_spec.rb
263
265
  - spec/attributes_initializable_spec.rb
266
+ - spec/eval_helper/attr_accessor_init_code_spec.rb
264
267
  - spec/eval_helper/each_brace_code_spec.rb
265
268
  - spec/eval_helper/each_do_code_spec.rb
266
269
  - spec/eval_helper/each_with_index_brace_code_spec.rb