activerepresenter 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
+ SHA256:
3
+ metadata.gz: c8354392eb5babef9c68a3429614b1eafa8df676238c5592b5dc7396c04997af
4
+ data.tar.gz: 6fc5f46989127a8fa80d4028087bee4f25c84f052bfc8383e7fab0f58c0c66d6
5
+ SHA512:
6
+ metadata.gz: 41163c4abf51711e7819a39235c5151cf30672d14ad41b1474cdac4a642c8c5f91f73c0eabd298df654f3c58090d8189676fa72d450e64ff00fe7a640d2837e3
7
+ data.tar.gz: 652a47eba3f3a5a81aa0b9d7c177511e46a29a93605b66f7dd5c0dc083e83546df299966cd23e908b3672f67eec26ca3ef178190798689154bc0a980d03d41e7
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rake/testtask"
4
+
5
+ desc "Default Task"
6
+ task default: [ :test ]
7
+
8
+ task :package
9
+
10
+ Rake::TestTask.new { |t|
11
+ t.libs << "test"
12
+ t.pattern = "test/**/*_test.rb"
13
+ t.warning = true
14
+ t.verbose = true
15
+ t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
16
+ }
17
+
18
+ namespace :test do
19
+ task :isolated do
20
+ Dir.glob("test/**/*_test.rb").all? do |file|
21
+ sh(Gem.ruby, "-w", "-Ilib:test", file)
22
+ end || raise("Failures")
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ version = File.read(File.expand_path("../LIGHTRAILS_VERSION", __dir__)).strip
4
+
5
+ Gem::Specification.new do |s|
6
+ s.platform = Gem::Platform::RUBY
7
+ s.name = "activerepresenter"
8
+ s.version = version
9
+ s.date = "2018-10-03"
10
+ s.summary = "Active Representer provides model objects by decorating hash-like objects (part of Lightrails)."
11
+ s.description = "Active Representer provides model objects for web applications by decorating hash-like objects."
12
+
13
+ s.required_ruby_version = ">= 2.2.2"
14
+ s.required_rubygems_version = ">= 1.8.11"
15
+
16
+ s.license = "MIT"
17
+
18
+ s.authors = ["Ryo Hashimoto"]
19
+ s.email = "ryohashimoto@gmail.com"
20
+ s.homepage = "https://github.com/ryohashimoto/lightrails"
21
+
22
+ s.files = `git ls-files`.split($/)
23
+ s.test_files = s.files.grep(/^test/)
24
+
25
+ s.add_dependency "bundler", "~> 1.3"
26
+ s.add_development_dependency "rake", "~> 0"
27
+ end
data/lib/base.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+
3
+ module ActiveRepresenter
4
+ class Base
5
+ attr_reader :wrapped
6
+
7
+ delegate_missing_to :wrapped
8
+
9
+ def initialize(wrapped)
10
+ @wrapped = wrapped
11
+ end
12
+ end
13
+ end
data/test/base_test.rb ADDED
@@ -0,0 +1,15 @@
1
+ require "test/unit"
2
+ require_relative "../lib/base.rb"
3
+
4
+ class BaseTest < Test::Unit::TestCase
5
+ test ".new does not raise error" do
6
+ wrapped = {}
7
+ assert_nothing_raised { ActiveRepresenter::Base.new(wrapped) }
8
+ end
9
+
10
+ test "#wrapped returns original wrapped object" do
11
+ wrapped = {}
12
+ representer = ActiveRepresenter::Base.new(wrapped)
13
+ assert_equal(representer.wrapped, wrapped)
14
+ end
15
+ end
@@ -0,0 +1,40 @@
1
+ require "test/unit"
2
+ require_relative "../lib/base.rb"
3
+ require "ostruct"
4
+
5
+ class UserRepresenter < ActiveRepresenter::Base
6
+ def full_name
7
+ "#{first_name} #{last_name}"
8
+ end
9
+ end
10
+
11
+ class InheritanceTest < Test::Unit::TestCase
12
+ test ".new does not raise error" do
13
+ user = OpenStruct.new(first_name: 'John', last_name: 'Appleseed')
14
+ assert_nothing_raised { UserRepresenter.new(user) }
15
+ end
16
+
17
+ test "#wrapped returns user object" do
18
+ user = OpenStruct.new(first_name: 'John', last_name: 'Appleseed')
19
+ representer = UserRepresenter.new(user)
20
+ assert_equal(representer.wrapped, user)
21
+ end
22
+
23
+ test "#first_name returns John" do
24
+ user = OpenStruct.new(first_name: 'John', last_name: 'Appleseed')
25
+ representer = UserRepresenter.new(user)
26
+ assert_equal(representer.first_name, 'John')
27
+ end
28
+
29
+ test "#last_name returns Appleseed" do
30
+ user = OpenStruct.new(first_name: 'John', last_name: 'Appleseed')
31
+ representer = UserRepresenter.new(user)
32
+ assert_equal(representer.last_name, 'Appleseed')
33
+ end
34
+
35
+ test "#full_name returns John Appleseed" do
36
+ user = OpenStruct.new(first_name: 'John', last_name: 'Appleseed')
37
+ representer = UserRepresenter.new(user)
38
+ assert_equal(representer.full_name, 'John Appleseed')
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activerepresenter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ryo Hashimoto
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
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: Active Representer provides model objects for web applications by decorating
42
+ hash-like objects.
43
+ email: ryohashimoto@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - Rakefile
49
+ - activerepresenter.gemspec
50
+ - lib/base.rb
51
+ - test/base_test.rb
52
+ - test/inheritance_test.rb
53
+ homepage: https://github.com/ryohashimoto/lightrails
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 2.2.2
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.8.11
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.7.6
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Active Representer provides model objects by decorating hash-like objects
77
+ (part of Lightrails).
78
+ test_files:
79
+ - test/base_test.rb
80
+ - test/inheritance_test.rb