better-initialize 0.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d0e7cab2043051d88bd8e5e8758a543357c04977
4
+ data.tar.gz: 36d451b64b9d58218a787f00f3addb80e1d62830
5
+ SHA512:
6
+ metadata.gz: e4deeef9a44ff61e84e687393dbec6b071311fcdee57a971cd288728f1360e9c7945368322a58d86e465147a39e89937f346e5dd727175596a1695c6e229c9e9
7
+ data.tar.gz: fe82171aa4409bd255b3ecfeaa5d0368bf21a47b189c17495e64c922a868dbfc291ccb33a2ca09a8c2168dd2afc9456bc9e81f7a5721cfde0a74ea2a6bc2cf89
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ # ignore logs
2
+ log
3
+
4
+ # ignore bundle
5
+ .bundle
6
+
7
+ # ignore temp files
8
+ .DS_Store
9
+ *~
10
+ *.swp
11
+ tmp
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.0
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,26 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ Better Initialize (0.0.1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ byebug (3.5.1)
10
+ columnize (~> 0.8)
11
+ debugger-linecache (~> 1.2)
12
+ slop (~> 3.6)
13
+ columnize (0.9.0)
14
+ debugger-linecache (1.2.0)
15
+ power_assert (0.2.3)
16
+ slop (3.6.0)
17
+ test-unit (3.0.9)
18
+ power_assert
19
+
20
+ PLATFORMS
21
+ ruby
22
+
23
+ DEPENDENCIES
24
+ Better Initialize!
25
+ byebug
26
+ test-unit
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # better-initialize
2
+
3
+ A friendlier, dependency-free initialize method for ruby objects.
4
+
5
+ ## Usage
6
+
7
+ Gemfile:
8
+
9
+ gem 'better-initialize',
10
+ github: 'huned/better-initialize'
11
+
12
+ Code:
13
+
14
+ require 'better_initialize'
15
+
16
+ class Pizza
17
+ include BetterInitialize
18
+ attr_accessor :size, :toppings
19
+ end
20
+
21
+ # Instantiate with attributes.
22
+ Pizza.new(size: :large, toppings: %i[mushrooms peppers])
23
+
24
+ # Instantiate with attributes and a block.
25
+ Pizza.new(size: :large) do |pizza|
26
+ pizza.toppings = %w[mushrooms peppers]
27
+ Oven.bake!(pizza)
28
+ end
29
+
30
+ ## Development Environment (OSX)
31
+
32
+ brew install rbenv ruby-build
33
+ git clone git@github.com:huned/better-initialize
34
+ rbenv install -k `cat .ruby-version`
35
+ bundle exec ruby test/run.rb
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../lib/better_initialize/version', __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'better-initialize'
5
+ s.version = BetterInitialize::VERSION
6
+ s.summary = 'A better ruby initialize.'
7
+ s.description = File.read('./README.md')
8
+ s.authors = ['Huned Botee']
9
+ s.email = 'huned@734m.com'
10
+ s.homepage = 'https://github.com/huned/better-initialize'
11
+ s.license = 'MIT'
12
+
13
+ s.files = `git ls-files`.split($\)
14
+ s.executables = s.files.grep(%r{^bin/}).map{|f| File.basename(f) }
15
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
+ s.require_paths = ['lib']
17
+
18
+ s.add_development_dependency 'test-unit'
19
+ s.add_development_dependency 'byebug'
20
+ end
@@ -0,0 +1,11 @@
1
+ require_relative 'better_initialize/version'
2
+
3
+ module BetterInitialize
4
+ def initialize(params = {})
5
+ params.each do |k, v|
6
+ m = "#{k}="
7
+ send(m, v) if respond_to?(m)
8
+ end
9
+ yield(self) if block_given?
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module BetterInitialize
2
+ VERSION = '0.0.1'
3
+ end
data/test/run.rb ADDED
@@ -0,0 +1,9 @@
1
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
2
+ lib_dir = File.join(base_dir, 'lib')
3
+ test_dir = File.join(base_dir, 'test')
4
+
5
+ $LOAD_PATH.unshift(lib_dir)
6
+
7
+ require 'test/unit'
8
+
9
+ exit Test::Unit::AutoRunner.run(true, test_dir)
@@ -0,0 +1,23 @@
1
+ require 'better_initialize'
2
+
3
+ class TestBetterInitialize < Test::Unit::TestCase
4
+ class Something
5
+ include BetterInitialize
6
+ attr_accessor :a, :b
7
+ end
8
+
9
+ def test_with_attributes
10
+ @obj = Something.new(a: 1, b: 2)
11
+ assert_equal(1, @obj.a)
12
+ assert_equal(2, @obj.b)
13
+ end
14
+
15
+ def test_with_block
16
+ @obj = Something.new do |obj|
17
+ obj.a = 1
18
+ obj.b = 2
19
+ end
20
+ assert_equal(1, @obj.a)
21
+ assert_equal(2, @obj.b)
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: better-initialize
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Huned Botee
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: test-unit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |
42
+ # better-initialize
43
+
44
+ A friendlier, dependency-free initialize method for ruby objects.
45
+
46
+ ## Usage
47
+
48
+ Gemfile:
49
+
50
+ gem 'better-initialize',
51
+ github: 'huned/better-initialize'
52
+
53
+ Code:
54
+
55
+ require 'better_initialize'
56
+
57
+ class Pizza
58
+ include BetterInitialize
59
+ attr_accessor :size, :toppings
60
+ end
61
+
62
+ # Instantiate with attributes.
63
+ Pizza.new(size: :large, toppings: %i[mushrooms peppers])
64
+
65
+ # Instantiate with attributes and a block.
66
+ Pizza.new(size: :large) do |pizza|
67
+ pizza.toppings = %w[mushrooms peppers]
68
+ Oven.bake!(pizza)
69
+ end
70
+
71
+ ## Development Environment (OSX)
72
+
73
+ brew install rbenv ruby-build
74
+ git clone git@github.com:huned/better-initialize
75
+ rbenv install -k `cat .ruby-version`
76
+ bundle exec ruby test/run.rb
77
+ email: huned@734m.com
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - ".gitignore"
83
+ - ".ruby-version"
84
+ - Gemfile
85
+ - Gemfile.lock
86
+ - README.md
87
+ - better_initialize.gemspec
88
+ - lib/better_initialize.rb
89
+ - lib/better_initialize/version.rb
90
+ - test/run.rb
91
+ - test/unit/test_initialize.rb
92
+ homepage: https://github.com/huned/better-initialize
93
+ licenses:
94
+ - MIT
95
+ metadata: {}
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubyforge_project:
112
+ rubygems_version: 2.4.5
113
+ signing_key:
114
+ specification_version: 4
115
+ summary: A better ruby initialize.
116
+ test_files:
117
+ - test/run.rb
118
+ - test/unit/test_initialize.rb