imperator 0.2.0 → 0.2.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 78ba3f973dcf41d4527c6862e2608a746ade3ee0
4
+ data.tar.gz: 32841add73d035cf2e9770ee46339c59a154f1b9
5
+ SHA512:
6
+ metadata.gz: ded15ca1019035a5a89ec5225d3947129e20e13f99fb7811beb519473504046e4c4bfe093c76deb74d86229f1de5e4b7c036873207b8b32fd721050ad0de8204
7
+ data.tar.gz: c55f5a16026e92ebc3a95ed9a7ce19b4b8fdc404012786da8275acb90a432e8e00a62c7b6c1a6d9525a4172d4513173900b969bba644c8bf5219669ef4fb5a0d
data/Gemfile CHANGED
@@ -4,3 +4,7 @@ source "http://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  gem "pry", :group => [:test, :development]
7
+ group :test do
8
+ gem "rspec"
9
+ gem "rspec-mocks"
10
+ end
@@ -19,9 +19,5 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  # specify any dependencies here; for example:
22
- s.add_development_dependency "rspec"
23
- # s.add_runtime_dependency "rest-client"
24
- s.add_runtime_dependency "uuidtools"
25
- s.add_runtime_dependency "activemodel"
26
22
  s.add_runtime_dependency "virtus"
27
23
  end
@@ -1,10 +1,9 @@
1
- require 'uuidtools'
2
1
  require 'active_model'
3
2
  require 'virtus'
4
3
  class Imperator::Command
5
4
  include ActiveModel::Validations
6
5
  extend ActiveModel::Callbacks
7
- include Virtus
6
+ include Virtus.model
8
7
 
9
8
  if defined? ActiveModel::Serializable
10
9
  include ActiveModel::Serializable::JSON
@@ -16,13 +15,11 @@ class Imperator::Command
16
15
 
17
16
  define_model_callbacks :create, :perform, :initialize
18
17
 
19
- attribute :id, String, :default => proc { UUIDTools::UUID.timestamp_create.to_s }
20
-
21
18
  def self.action(&block)
22
19
  define_method(:action, &block)
23
20
  end
24
21
 
25
- alias_method :params, :attributes
22
+ alias params attributes
26
23
 
27
24
  def as_json(*args)
28
25
  attributes.as_json(*args)
@@ -33,13 +30,13 @@ class Imperator::Command
33
30
  end
34
31
 
35
32
  def commit!
36
- raise Imperator::InvalidCommandError.new "Command was invalid" unless valid?
37
- self.commit
33
+ raise Imperator::InvalidCommandError, 'Command was invalid' unless valid?
34
+ commit
38
35
  end
39
36
 
40
37
  def commit
41
- #TODO: background code for this
42
- self.perform
38
+ # TODO: background code for this
39
+ perform
43
40
  end
44
41
 
45
42
  def initialize(*)
@@ -53,7 +50,7 @@ class Imperator::Command
53
50
  end
54
51
 
55
52
  def self.load(command_string)
56
- self.new(JSON.parse(command_string))
53
+ new(JSON.parse(command_string))
57
54
  end
58
55
 
59
56
  def load(command_string)
@@ -61,13 +58,13 @@ class Imperator::Command
61
58
  end
62
59
 
63
60
  def perform!
64
- raise InvalidCommandError.new "Command was invalid" unless valid?
65
- self.perform
61
+ raise InvalidCommandError, 'Command was invalid' unless valid?
62
+ perform
66
63
  end
67
64
 
68
65
  # @abstract
69
66
  def action
70
- raise NoMethodError.new("Please define #action for #{self.class.name}")
67
+ raise NoMethodError, "Please define #action for #{self.class.name}"
71
68
  end
72
69
 
73
70
  def perform
@@ -1,3 +1,3 @@
1
1
  module Imperator
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'imperator'
2
2
  describe Imperator::Command do
3
3
 
4
- describe "#perform" do
4
+ describe "actions" do
5
5
  class CommandTestException < Exception; end
6
6
  context "using DSL " do
7
7
  class DSLTestCommand < Imperator::Command
@@ -29,16 +29,6 @@ describe Imperator::Command do
29
29
  end
30
30
  end
31
31
 
32
- describe "actions" do
33
- context "using DSL" do
34
- class ActionDSLExampleCommand < Imperator::Command
35
- action do
36
-
37
- end
38
- end
39
- end
40
- end
41
-
42
32
  describe "attributes" do
43
33
  class AttributeCommand < Imperator::Command
44
34
  attribute :gets_default, String, :default => "foo"
@@ -66,8 +56,7 @@ describe Imperator::Command do
66
56
 
67
57
  it "will create attributes as json" do
68
58
  command = AttributeCommand.new
69
- command.as_json.should == {"id" => command.id,
70
- "gets_default" => "foo",
59
+ command.as_json.should == { "gets_default" => "foo",
71
60
  "declared_attr" => nil}
72
61
  end
73
62
  end
metadata CHANGED
@@ -1,61 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imperator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Keith Gaddis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-06-11 00:00:00.000000000 -05:00
13
- default_executable:
11
+ date: 2017-06-26 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
- name: rspec
17
- requirement: &70180076248340 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :development
24
- prerelease: false
25
- version_requirements: *70180076248340
26
- - !ruby/object:Gem::Dependency
27
- name: uuidtools
28
- requirement: &70180076247920 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: *70180076247920
37
- - !ruby/object:Gem::Dependency
38
- name: activemodel
39
- requirement: &70180076278720 !ruby/object:Gem::Requirement
40
- none: false
14
+ name: virtus
15
+ requirement: !ruby/object:Gem::Requirement
41
16
  requirements:
42
- - - ! '>='
17
+ - - ">="
43
18
  - !ruby/object:Gem::Version
44
19
  version: '0'
45
20
  type: :runtime
46
21
  prerelease: false
47
- version_requirements: *70180076278720
48
- - !ruby/object:Gem::Dependency
49
- name: virtus
50
- requirement: &70180076278300 !ruby/object:Gem::Requirement
51
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
52
23
  requirements:
53
- - - ! '>='
24
+ - - ">="
54
25
  - !ruby/object:Gem::Version
55
26
  version: '0'
56
- type: :runtime
57
- prerelease: false
58
- version_requirements: *70180076278300
59
27
  description: Imperator is a small gem to help with command objects. The command pattern
60
28
  is a design pattern used to encapsulate all of the information needed to execute
61
29
  a method or process at a point in time. In a web application, commands are typically
@@ -66,7 +34,7 @@ executables: []
66
34
  extensions: []
67
35
  extra_rdoc_files: []
68
36
  files:
69
- - .gitignore
37
+ - ".gitignore"
70
38
  - Gemfile
71
39
  - README.md
72
40
  - Rakefile
@@ -76,30 +44,28 @@ files:
76
44
  - lib/imperator/invalid_command_error.rb
77
45
  - lib/imperator/version.rb
78
46
  - spec/imperator/command_spec.rb
79
- has_rdoc: true
80
47
  homepage: http://github.com/karmajunkie/imperator
81
48
  licenses: []
49
+ metadata: {}
82
50
  post_install_message:
83
51
  rdoc_options: []
84
52
  require_paths:
85
53
  - lib
86
54
  required_ruby_version: !ruby/object:Gem::Requirement
87
- none: false
88
55
  requirements:
89
- - - ! '>='
56
+ - - ">="
90
57
  - !ruby/object:Gem::Version
91
58
  version: '0'
92
59
  required_rubygems_version: !ruby/object:Gem::Requirement
93
- none: false
94
60
  requirements:
95
- - - ! '>='
61
+ - - ">="
96
62
  - !ruby/object:Gem::Version
97
63
  version: '0'
98
64
  requirements: []
99
65
  rubyforge_project:
100
- rubygems_version: 1.6.2
66
+ rubygems_version: 2.6.8
101
67
  signing_key:
102
- specification_version: 3
68
+ specification_version: 4
103
69
  summary: Imperator supports the command pattern
104
70
  test_files:
105
71
  - spec/imperator/command_spec.rb