Crud actions

There are two primary reasons for using a hash as the argument instead of just variables. First, the method will be more flexible for change. Second, the keys in the hash spell out exactly what the variables are, making it easier to read and understand. 

In terms of flexibility, passing variables as arguments to the method means that anytime we want to add an additional argument to the method, we need to change its corresponding method calls. 

Let's say I want to add an optional field, name, to the initialization:

```ruby
def initialize(email, name)
  email = email
  name = name
end
```

This would cause the following to throw an error:
```
EmailProcessor.new("ryan@launchpadlab.com")
# error: invalid arguments, 1 for 2
```
In order to get the app working again, we would need to do something like

```ruby
EmailProcessor.new("ryan@launchpadlab.com", "Ryan Francis")
```

Having to update this all over the application can be a total nightmare, especially if "Ryan Francis" is optional and only used for very specific use cases in the class. 

Now, let's say we set up the initialize method with a hash like so:
```ruby
def initialize(args = {})
  email = args[:email]
end
```

When we call the method it will look like this:
```ruby
# first time method is called in application
EmailProcessor.new(email: "ryan@launchpadlab.com")

#second time method is called
EmailProcessor.new(email: "kurt@launchpadlab.com")
```

Now, adding name as an argument to the initialize method will not break these two calls:
```ruby
def initialize(args = {})
  email = args[:email]
  name = args[:name]
end

# first call still works even though we didn't add name as an argument
EmailProcessor.new(email: "ryan@launchpadlab.com")

# second call works
EmailProcessor.new(email: "kurt@launchpadlab.com", name: "Kurt Cunningham")
```

You'll also notice that these calls are more readable since the keys work to explain what the pieces of data represent (i.e. email and name).